Vulnhub’da karşıma çıkan sar:1 makinasının çözümü ile karşınızdayım. İlk olarak hedef makinemizin ip adresini bularak başlayalım.
İp adresimizi bulduk şimdi sıra ip adresimize nmap taraması yapalım. Hangi portlar açık ve hangi servisler çalışıyor.
Tarama çıktısı geldi gördüğünüz gibi 80 portumuz üzerinde default olarak http servisi çalışıyor versiyonu da “Apache httpd 2.4.29” olduğunu fark ettim . Hemen ip adresimizi tarayıcı üzerinden sitemize bakalım.
Web sayfamızda bir sonuca varamadık hemen bir dizin taraması yapalım linkimize
Karşımıza robots.txt çıktı hemen bakalım içinde ne varmış diye.
Robots.txt dizinine gittiğimizde karşımıza sar2HTML yazısı çıkıyor.Hemen sar2HTML dizinine bakıyoruz tarayıcımızdan .
Bu şekilde bir ekran çıktı karşımıza sol üstte “sar2HTML Ver 3.2.1” yazıyoruz hemen exploiti varmi bakalım. Exploit-db üzerinden exploitini bulduk
Burada nasıl kullanacağımızı gösteriyor. Sitemize geri dönelim
Şeklinde linkimizi düzenlediğimizde komut çalıştırabileceğimizi söylüyor deniyelim.
Mademki burada komut çalıştırabiliyoruz o zaman reverse shell ile bağlantı kurabiliriz diye umuyorum deniyelim .
Yukarıdaki komutumuz ile webshellimize ulaşıyoruz . Metin düzenliyicimiz sayesinde ip adresimizi düzenliyoruz.
Local ağda işlem yaptığımız için local ip adresimi girdim ve bir port numarası verdik.Ardından python ile web sunucumuzu aktif hale getirmeliyizki hedef makine üzerinden dosyamızı indirme şansımız olsun.
Web sunucumuz aktif şimdi hedef sistemimizin url kısmında get komutu ile hedef sisteme php dosyamızı indirmek için komutumuzu girelim.
Gördüğünüz gibi ls komutu ile baktığımızda kernelblog.php dosyamızın hedef sistemde olduğunu görüyoruz.Hatırlarsanız php dosyamızda 3647 portunu yazmıştık şimdi sırada o portu dinlemek var .
Portumuzu dinlemeye başladık şimdi sırada hedef makinada php dosyamızı çalıştırmak.
Gördüğünüz gibi bağlantı sağladık . id komutu ile yetkimize bakalım .Verilen çıktıda “uid=33(www-data) gid=33(www-data) groups=33(www-data)” yetkisiz bir kullanıcı olduğumuz gördük şimdi sırada yetki yükseltme için çabalamakta
CTF’lerde bu gibi yetkisiz kullanıcı olduğumuzu farkettiğizde kritik bir dosya veya crontab dosyayı varmıdır diye bakarız crontab dosyaları zamanlanmış dosyalardır
etc dizinine girip crontab dosyası varmı diye ve o dosyaya üzerinde ne tür yetkimiz var diye bakıyoruz.
Gördüğünüz gibi dosyayı okumaya yetkimiz var . Cat komutu ile dosyayı okuyalım .
En alt satırda hepimizinde gördüğü gibi “var/www/html/ && sudo ./finally.sh” diye bir komut var en başında 5 dakikada bir belirttiği dizindeki finally dosyasını root yetkisiyle çalıştırdığı söylüyor .Şimdi gösterdiği dizine gidelim ve “ls -la ” ile dizindeki dosyalara bakalım
Belirttiği dizine geldik ve finally.sh dosyasını okuyabildiğimizi gördük hemen cat ile dosyanın içine bakalım.
finally.sh dosyamızı açtığımızda içinde write.sh dosyasını çalıştırdığını görüyoruz ve yukarıda “ls -la ” kodunu yazdığımızda write.sh dosyasına yazma iznimizin olduğunu gördük . finally.sh root yetkisi ile çalışıyor bu yüzden write.sh da root yetkisiyle açılır biz eğer write.sh ile shell çalıştırabilirsek yetki yükseltmiş oluruz.O yuzden shell dosyamızı bu dizinede indiriyoruz
Komutumuz ile php dosyamızı dizine indirdik .
Yeni dosyamızda port numarası olarak 555 ayarladık o yüzden 555 portunu dinlemeye alıyourz
Şimdi write.sh dosyamıza php dosyamızı çalıştırması için gerekli komutu yazalım
Cat komutu ile dosyamızın içine bakalım
Şimdi 555 portumuzu dinliyorduk 5 dakikada bir çalışan kodumuzu bekliyelim .
Gördüğünüz gibi artık sistemde root olduk şimdi flagi bulmalıyız.
Gördüğünüz gibi root.txt içinde flagimize ulaştık
Bir sonraki yazıda görüşmek üzere.
Makineyi indirmek için : Sar 1 indir