Zafiyetli makinenin linki ;
https://www.vulnhub.com/entry/basic-pentesting-2,241/
netdiscover -r <hedef ip aralığı>
Arp taraması yapıp ip adresini belirledikten sonra nmap taramama başlıyorum.
nmap -sT -sV -sC -O -p- <hedef ip> -o Basic_Pentesing_2
80 ve 8080 portlarında http servislerinin çalıştığını görüp ziyaret ediyorum.
Nmap taramasından da görebileceğimiz gibi 8080 portunda Tomcat sunucusu çalışıyor.
Eğer yönetici uygulamasından giriş yapabilirsem sunucu içerisine kendi payload ‘ımı yükleyip, makineden shell alabilirim diye düşünüyorum.Bu yüzden metasploit’i açıp Tomcat için varsayılan kullanıcı adı ve parolaları tarayan modülü kullanıyorum.
Tarama sonucu kullanıcı adı ve parolanın varsayılan ayarlarda bırakılmadığını görüp başka çözüm yolları aramaya başlıyorum.Dizinleri taramak için fuzzing yapıyorum.
gobuster -w usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.0.2.7
Development dizinini ziyaret ediyorum.
Karşıma iki adet text dosyası çıkıyor.
dev.txt ‘ye girdiğimde iki geliştiricinin birbirlerine bıraktığı notlar görüyorum.Bu notlardan sitede apache struts’ın 2.5.12 sürümünün kullanıldığını öğreniyorum.
Aslında bu iki text dosyası bize iki farklı çözümün ipucunu veriyor.Şimdi de j.txt ye bakalım.
Burada K amca J amcaya parolasının zayıf olduğunu ve acilen değiştirmesi gerektiğini söylüyor. Yani J’nin tam kullanıcı adını bulup (enum4linux ile yapabilirsiniz) bunun üzerinden kaba kuvvet saldırısı yapabiliriz.Siz çözümünüzde bu yöntemi kullanabilirsiniz ben ilk yöntemden devam ediyorum.
dev.txt ‘den elde ettiğim bu bilgiyle metasploit veri tabanını arattığımda bu sürümde RCE(uzaktan kod çalıştırma) zafiyetinin olduğunu görüyorum.
~#msfconsole
> use exploit/multi/http/struts2_rest_xstream
> set RHOST <hedef ip>
> set TARGETURI /struts2-rest-showcase-2.5.12/orders/3
> run
Exploiti çalıştırıp hedeften shell alıyorum.
Shell alıp dosya ve dizinlerde gezindikten sonra, /home/kay
dizini altında ssh anahtarı buluyorum. Eğer kay kullanıcısına ait oturuma ssh üzerinden erişebilirsek , bizim yani tomcat9 kullanıcısının yetkili olmadığı dosyaları okuyabiliriz.
Ssh anahtarı : Basitçe ssh sunucusuyla kimlik doğrulaması yapmamızı sağlar. Parola ile kimlik doğrulaması yapmaya göre daha güvenlidir. Çünkü parola hiçbir zaman ağ üzerinden gönderilmez bu da ortadaki adam saldırılarını engeller. Ayrıca kaba kuvvet saldırılarının başarı oranını büyük oranda düşürür.
Ssh anahtarı;
Bu anahtarı kaydedip john
ile kırabileceğim bir formata dönüştürüyorum.
~#ssh2john 'sshkey' key > 'con'
~#john con
Anahtarı kırdıktan sonra bu anahtarla makineye giriş yapıyorum.
~#ssh -i ssh_key [email protected]<hedef-ip>
Artık jan kullanıcısı ile yetkili olmadığım dosyaları okuyabilirim.pass.bak
Dosyasını okuyup, bulduğum parola ile root yetkisine eriştim.