← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 20 → Seviye 21

Teknik Not

Bağlam

Bu seviyede elimizde suconnect adında bir SUID programı var. Bu program şunu yapıyor:

  1. Kendisine argüman olarak verilen porta bağlanıyor.
  2. Karşı taraftan bir şifre bekliyor.
  3. Eğer gönderilen şifre doğruysa (Bandit 20’nin şifresi), bize bir sonraki seviyenin şifresini gönderiyor.

Yani şimdiye kadar hep sunuculara bağlanan bizdik; şimdi ise sunucu olup onun bağlanmasını bekleyen biz olacağız.

Hedef

Localhost’ta bir portu dinlemeye başlayıp, suconnect programının bu porta bağlanmasını sağlamak ve ona şifreyi göndermek.

Çözüm

Bunu yapmanın en kolay yolu iki terminal kullanmaktır ama biz “Hacker” gibi hissedip tek terminalde, Job Control (İş Yönetimi) kullanarak halledeceğiz.

Adım 1: Sunucuyu Kur (Arka Planda)

Netcat (nc) ile bir portu (mesela 12345) dinlemeye başlayalım (-l). Ancak dinlerken, ona Bandit 20 şifresini (GbKks...) gönderelim (echo). Ve en önemlisi, bu işlemi terminali kilitlememesi için arka plana atalım (&).

echo -n "GbKksEFF4yrVs6il55v6gwY5aVje5f0j" | nc -l -p 12345 &

Komutun Analizi:

  • echo -n "...": Şifreyi yazdır (sonuna yeni satır eklemeden).
  • | nc -l -p 12345: Bu çıktıyı al ve 12345 portunu dinleyen Netcat’e ver. Biri bağlanırsa bunu ona gönder.
  • &: Bu işlemi arka planda çalıştır. Terminali bana geri ver.

Çıktı olarak [1] 12345 gibi bir işlem numarası (PID) göreceksiniz. Bu, sunucumuzun arka planda çalıştığını gösterir.

Adım 2: Müşteriyi (Client) Çalıştır

Şimdi suconnect programına, az önce açtığımız porta bağlanmasını söyleyelim:

./suconnect 12345

Adım 3: Sonuç

Program bağlanacak, bizim nc şifreyi gönderecek, suconnect bunu doğrulayacak ve… Bingoo!

Read: GbKksEFF4yrVs6il55v6gwY5aVje5f0j
Password matches, sending next password
gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr
[1]+  Done                    echo -n ... | nc -l -p 12345

Alternatif Yöntem: İki Terminal Eğer arka plan işlemleri ( & ) kafanızı karıştırdıysa, basitçe iki tane SSH bağlantısı açın.

  1. Terminalde: echo "Şifre" | nc -l -p 12345
  2. Terminalde: ./suconnect 12345

Öğrendiklerimiz

  1. Job Control (&): Bir komutu arka plana atarak terminali kullanmaya devam etmemizi sağlar.
  2. Reverse Connection (Ters Bağlantı): Bazen hedefe saldırmak yerine, hedefin bize bağlanmasını sağlarız (Bind Shell vs. Reverse Shell mantığı).