Durante la mia preparazione per la certificazione OSCP inizierò a testare un pò di macchine di Vulnhub per esercitarmi e cercare di violare quanti più sistemi possibili per imparare il più possibile, questa è solo la prima della lista!
Come sempre, per chi fosse la prima volta che legge un Walkthrough di questo genere, consiglio Kioptrix 1, in cui vengono elencati i passi fondamentali da compiere per violare un dispositivo di questo tipo.
Dopo aver identificato l’indirizzo IP della macchina virtuale eseguendo
┌─[mrtouch@parrot]─[~/Desktop/RedTeam/vulnhub/hidden]
└──╼ $sudo netdiscover -i wlan0
eseguo una scansione tramite nmap, per identificate tutte le porte aperte
┌─[✗]─[mrtouch@parrot]─[~/Desktop/RedTeam/vulnhub/hidden]
└──╼ $nmap -p- -sT --script vuln,discovery 192.168.1.130
Nmap scan report for 192.168.1.130
Host is up (0.0032s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE
1337/tcp open waste
|_banner: SSH-2.0-OpenSSH_7.7
31337/tcp open Elite
Vediamo che sulla 1337 è presente un servizio SSH, mentre per verificare cosa c’è sulla 31337 provo con un browser.
Visto che la pagina non ci dice molto, provo a guardare il codice sorgente, trovando un utilissima informazione
Andando ad intuizione, provo a navigare sul path presente nel commento e trovo un’immagine decisamente criptica..
Dopo essere impazzito cercando di cambiare le tonalità dei colori o cercando stringhe nascoste all’interno della stessa, mi è venuto in mente che potesse contenere un messaggio stenografato!
Visto che tempo fa avevo pure scritto un articolo per guidare all’analisi di stringhe nascoste all’interno di file con un processo di steganalisi, provo ad utilizzare il tool steghide, inserendo come password l’unica parola colorata della pagine web: h1dd3n
Ammetto che la stringa inizialmente mi ha bloccato completamente, non avevo la più pallida idea di come decodificarla..dopo un po' di ricerche sono incappato nel grandioso linguaggio Brainfuck, e tramite il sito El Brainfuck sono riuscito a decodificarlo.
Visto che sono una coppia di credenziali, la prima cosa che mi viene in mente è quella di utilizzarle per connettermi alla porte 1337, sulla quale è presente un servizio ssh.
Dopo aver eseguito qualche comando, inizio a pensare che qualcosa non andasse, poichè la maggior parte dei comandi era bloccata..
Stampando la tipologia di shell, capisco che non è una shell normale ma rbash, ossia una shell ristretta che non permette di eseguire certe tipologie di comandi definiti su una serie di regole.
Dopo aver provato alcuni dei classici metodi per eseguire una shell, come:
ho provato tramite vi. Vi, uno dei più famosi editor di testo di Unix, permette di eseguire comandi di shell utilizzando il comando !/bin/bash -i.
Una volta ottenuta una shell bash, provo a vedere se l’utente con cui mi sono loggato ha il permesso di eseguire comandi con permessi di amministrazione, tramite il comando
bash-4.4$ /usr/bin/sudo -l
User ud64 may run the following commands on unknowndevice64_v1:
(ALL) NOPASSWD: /usr/bin/sysud64
Per capire che tipo di programma è, lo eseguo effettuando un redirect a un file, in quanto la shell bash che ho ottenuto non è completa e certi comandi ancora non posso eseguirli
bash-4.4$ /usr/bin/sysud64 -h > help
Strace è un utility di Linux che permette di tracciare le system call di un programma, una sorta di debugger in sostanza. Visto che posso eseguirlo con i permessi di root, gli attacco una shell con il comando
/usr/bin/sudo /usr/bin/sysud64 -f -D /bin/bash
dove l’opzione -f serve per seguire eventuali fork, mentre -D per staccare il processo avviato da strace
Penso sia stata una delle macchine di vulnhub più fantasiose che abbia mai visto, ma è stata una sfida interessante, specialmente per quanto riguarda l’immagina steganografata e il decoding della stringa econdata in Brainfuck. Speriamo che la prossima sia più simile alle macchina dell’OSCP!