Siber Güvenlik 0

Bandit WriteUP – Part:2

Daha önce yarısına geldiğimiz sinir makine banditi çözmeye devam edelim.

Önceki çözümleri okumak için: https://caglar-celik.com/siber-guvenlik/bandit-writeup-part1/

bandit15

Bir sonraki seviyeye ait anahtar, mevcut seviyenin anahtarının, SSL şifrelemesi kullanılarak localhost’taki port 30001’e göndererek alınabilir.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Yardımcı Kaynaklar

Çözüm:

Openssl ile localhosta bağlanıyorum. Bu bölüme giriş yaptığım anahtarı vererek sonraki seviyeye ulaşıyorum.

openssl s_client -quiet -connect localhost:30001

Flag: cluFn7wTiGryunymYOu4RcffSxQluehd

bandit16

Bir sonraki seviyeye ait anahtar, mevcut seviyenin anahtarının, SSL şifrelemesi kullanılarak localhost’taki port 30001’e göndererek alınabilir.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Yardımcı Kaynaklar

Çözüm:

Sırf chmod olayını bilmediğim için acı çektiğim soru. Önce, hangi portta SSL mevcut bulmak için bir nmap taraması atıyorum. Ve aradığımı da buluyorum. 31790 portundan giriş yapabilirim.

nmap -sV -sT localhost -p 31000-32000

Daha sonra openssl ile bağlanmayı deniyorum ve beni bir key karşılıyor.

Aslında bütün olay bu kadardı. Daha sonra kendi makinenize bu keyi kopyalıyorsunuz ve bu key ile sonraki soruya bağlanmayı deniyorsunuz. Ben uzun süre makine içinde yazma izni olan yer aradım durdum, haliyle bulamadım ve sonra çark etti 🙂 Ancak o da hata verecektir. Bu durumda da key dosyanızın izinlerini değiştirmelisiniz.

chmod 600 private.key

ssh bandit17@bandit.labs.overthewire.org -p 2220 -i private.key

Flag: Karşı makineden aldığınız private key

bandit17

Ana dizinde iki dosya yer alıyor. Bir sonraki seviyeye ait anahtar password.new içerisinde yer alıyor ve password.new ve password.old arasındaki farkı bulmanız gerekiyor.

Not: “byebye” mesajı ile karşılaşırsanız bu seviyeyi geçtiniz demektir. Ancak bu seviye, bandit19 ile alakalı.

Çözüm için kullanabileceğiniz komutlar:

cat, grep, ls, diff

Çözüm:

İki dosyayı karşılaştırıp farklı olan satırı bulmam gerekiyor. Bunun için diff kullanıyorum. Ortaya çıkan ilk satır benim anahtarım oluyor.

Flag: kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd

bandit18

Bir sonraki seviyeye ait anahtar, ana dizindeki readme dosyası içerisinde. Ancak .bashrc dosyası, bir ssh bağlantısı yapıldığında oturumu kapatması için ayarlandı.

Çözüm için kullanabileceğiniz komutlar:

ssh,ls,cat

Çözüm:

Evet, giriş yaptığımda bağlantı kopuyor ancak ben de başka bir çözüm bulurum. SSH bağlantısı ile beraber readme dosyasının içini okurum.

Flag: IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x

bandit19

Bir sonraki seviyeye erişmek için, ana dizindeki setuid binary değerini kullanmalısınız. Nasıl kullanılacağını bulmak için argümanlar olmadan yürütün. Setuid ikilisini kullandıktan sonra, bu seviye için şifre  (/ etc / bandit_pass) bulunabilir.

Yardımcı Kaynaklar:

Çözüm:

bandit20-do isminde bir dosya var. Bu dosya çalıştırılabilir binary dosyası ancak erişmek için setuid değeri ile oynamam gerekiyor. Soru karşıma çıkana kadar ben de bilmiyordum ancak yardımcı kaynak ve internetteki diğer kaynaklara bakarak olayı anladım. Daha sonra soruda da verilen dosyayı setuid değeri olarak okutuyorum. Sonraki seviyenin anahtarı karşıma çıkıyor.

Flag: GbKksEFF4yrVs6il55v6gwY5aVje5f0j

bandit20

Ana dizindeki binary dosyası şunları yapıyor:

Localhostta belirtilen bağlantı noktası ile bağlantı kurar. Daha sonra bağlantıdan gelen metin satırını okur ve bunu önceki seviyenin anahtarı ile karşılaştırır. Eğer verilen anahtar doğru ise sonraki seviyeye ait anahtarı verir.

Çözüm için kullanabileceğiniz komutlar

ssh, nc, cat, bash, screen, tmux, Unix ‘job control’ (bg, fg, jobs, &, CTRL-Z, …)

Çözüm:

içeride suconnect isminde bir dosya var. ./suconnect dediğimde localhost üzerinde açılan bir porttan bağlanılması gerektiği ve diğer taraftan doğru anahtar gelirse yeni anahtarı vereceğini söylüyor. Ben de yeni bir SSH bağlantısı yapıp nc -l -p 12345 komutu ile 12345 portunu açıyorum. Önceki bağlantımdan ise ./suconnect 12345 yazarak bağlantıyı sağlıyorum. Yeni bağlantıya tekrar geçip önceki bölümün anahtarını gönderiyorum ve yeni anahtar karşıma çıkıyor. Kabul ediyorum biraz karışıktı. Ancak ekran görüntüleri ile daha anlaşılır olacak.

Flag: gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr

bandit21

Bir program, zamana bağlı iş zamanlayıcısı olan cron’dan düzenli aralıklarla otomatik olarak çalışıyor. Yapılandırma için /etc/cron.d/ adresine bakın ve hangi komutun yürütülmekte olduğunu görün.

Çözüm için kullanabileceğiniz komutlar

cron, crontab, crontab(5) (use “man 5 crontab” to access this)

Çözüm:

etc/cron.d dizinine gidiyorum ve içindekileri listelediğimde cronjob_bandit22 isminde bir dosya görüyorum. Onun da içini okuduğumda usr/bin dizininde cronjob_bandit22.sh isminde bir dosyaya yönlendiriyor. O dosyanın içini okuduğumda da /tmp dizininde t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv isminde bir dosyaya yönlendiriyor. E onu da okuduğumda anahtar karşımda.

Flag: Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI

bandit22

Bir program, zamana bağlı iş zamanlayıcısı olan cron’dan düzenli aralıklarla otomatik olarak çalışıyor. Yapılandırma için /etc/cron.d/ adresine bakın ve hangi komutun yürütülmekte olduğunu görün.

Çözüm için kullanabileceğiniz komutlar

cron, crontab, crontab(5) (use “man 5 crontab” to access this)

Çözüm:

Yine etc/cron.d dizinine gidiyorum ve içindekileri listelediğimde cronjob_bandit23 isminde bir dosya görüyorum. Onun da içini okuduğumda usr/bin dizininde cronjob_bandit23.sh isminde bir dosyaya yönlendiriyor. Dosya içini okuduğumda bash scriptin neler yaptığını anlıyorum.

Scripti bir de çalıştırıp görmek istedim. $myname bandit22 olarak çıkıyor. (whoami komutu ile almıştık)Tmp içinde bir dosya oluşturuyor Tmp içinde bir dosya oluşturuyor  ve  “I am user bandit22” metnini md5 ile şifreleyerek o dosyanın adı olarak belirliyor.

Oluşan dosyayı okuduğumda bandit22’ye ait anahtarı alıyorum.E o zaman myname kısmı yerine bandit23 yazarsam onun anahtarına erişebilirim belki.

Flag: jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.