Merhaba, Siber güvenliğe yeni başlayanların ofansif yeteneklerini geliştirebileceği TryHackMe platformunda yer alan, başlangıç seviyesi olan Tartarus adlı makinanın çözümünden bahsedeğim. Hatalı yada ilave açıklama gerektiren yerler için yorum bırakabilirsiniz. Keyifli okumalar...
1. Keşif Aşaması
Nmap ile makinenin açık portları ve portlarda çalışan servisleri tespit edilir.
sudo nmap -sV -sC 10.10.236.165
Tarayıcı ile web servisine istek atılır. Apache yazılımına ait varsayılan web sayfası açılmaktadır.
Web dizininde yer alan dosyalar ve klasörlerin tespiti için gobuster kullanılır.
gobuster dir -u http://10.10.236.165 -w /usr/share/wordlists/dirb/common.txt
Gobuster sonucunda robots.txt dosyası dikkat çekmektedir. Robots.txt, arama motoru örümcekleri sitenizin hangi bölümlerini dizine ekleyebileceğini, hangi dizini taraması gerektiğini, hangi arama motoru yazılımının giriş izni olduğunu veya olmadığını söylemeye yarayan basit bir komut dosyasıdır. Dosya içeriği okunur.
Arama motorları tarafından indexlenmesi engellenen /admin-dir dizine giriş yapılır. Dizinde muhtemel kullanıcı adı ve parola listeleri yer almaktadır. Listeler indirilir. Ftp servisinde anonim olarak erişime açık olan test.txt dosyası incelenir.
ftp dizininde dolaşılarak araştırmaya devam edilir. {…} dizini dikkat çekmektedir. Dizin içerisindeki yougotgoodeyes.txt isimli dosya indirilir ve içeriği okunur.
İçerisinde bir dizin adı yer almaktadır.
Tarayıdan giriş yapıldığında bir login ekranı çıkmaktadır. Elde edilen bilgiler ile burpsuite aracı kullanılarak kaba kuvvet saldırısı yapılır.
iki adet parametre ve iki ayrı liste olduğundan intruder -> Payload Options -> Cluster Bomb seçilerek kaba kuvvet saldırısı için ayarlamalar yapılır. Ayrıntılı bilgi için aşağıdaki linke bakılabilir.
https://portswigger.net/support/using-burp-to-brute-force-a-login-page
Username ve Password parametleri işaretlenir.
Username ve Password parametleri için denenecek verilerin olduğu listeler yüklenir.
Saldırı sonucunda kullanıcı adı ve parola bilgisi elde edilir.
Elde edilen oturum bilgileri ile giriş yapılır. Dosya yükleme sayfası gelmektedir. Reverse shell almak için bir php sayfası upload edilir.
Gobuster aracı ile /sUp3r-s3cr3t dizini altında dosyanın upload edildiği yeri bulmak için dizin taraması yapılır. Tarama sonucunda image dizini tespit edilir. Bu dizin içerisinde de yükleninen php dosyası bulunmamaktadır. /sUp3r-s3cr3t/images dizini altında da tarama yapılır ve uploads dizini tespit edilir.
2. Erişim Sağlanması
Localhosttan netcat ile 4444 portu dinlenmeye başlanır. Daha sonra http://10.10.236.156/sUp3r-s3cr3t/images/uploads/reverse.php adresine gidilir ve terminal bağlantısı sağlanır.
Düşük kullanıcı ile shell alındığından user.txt dosyasını okumak için yetki yükselmek gereklidir.
sudo -l
komutu girilir.
Thirtytwo adlı kullanıcı için var/www/gbd uygulaması parola gerektirmeden çalıştırılabildiği tespit edilmektedir. Aşağıda yer alan komut ile kullanıcı bağlanır ve gdb istismar edilerek thirtytwo kullanıcısına giriş yapılır.
sudo -u thirtytwo /var/www/gdb -nx -ex '!sh' -ex quit
Python pty modülü kullanılarak interaktif shelle geçilir.
python -c 'import pty; pty.spawn("/bin/bash")'
Home dizininde yer alan diğer kullanıcı dizininde yer alan user.txt dosyası okunur.
3. Yetki Yükseltme
Yetki yükseltme aşamasında crontab da zamanlanmış görevlere bakıldığında root yetkisi ile cleanup.py dosyasının her iki dakikada bir çalıştırıldığı görülmektedir.
Dosyanın yetkilerine bakıldığında içeriğinin değiştirilebileceği görülmektedir.
Cleanup.py dosyasının içeriği aşağıdaki gibi değiştirilir.
Netcat ile 5555 numaralı port dinlenir. Zamanlanmış görev çalıştığında root yetkisi ile reverse shell bağlantısı sağlanmış olur.
Root dizini altında yer alan root.txt dosyası okunurak makina tamamlanır.