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: [vurgu color=”#dd3333″]cluFn7wTiGryunymYOu4RcffSxQluehd[/vurgu]
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 [email protected] -p 2220 -i private.key
Flag: [vurgu color=”#dd3333″]Karşı makineden aldığınız private key[/vurgu]
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: [vurgu color=”#dd3333″]kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd[/vurgu]
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: [vurgu color=”#dd3333″]IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x[/vurgu]
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: [vurgu color=”#dd3333″]GbKksEFF4yrVs6il55v6gwY5aVje5f0j[/vurgu]
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: [vurgu color=”#dd3333″]gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr[/vurgu]
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: [vurgu color=”#dd3333″]Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI[/vurgu]
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: [vurgu color=”#dd3333″]jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n[/vurgu]