[HTB] Celestial writeup13 min read

Ben tornati su Exploitnetworking per vedere il writeup della macchina Celestial di Hack The Box. Questa è una semplice macchina divisa in due passaggi: il primo è composto da un servizio web Nodejs exploitabile in un modo facile e diretto. Il secondo step è composto da un semplice trick in python che ci permette di aprire una shell di root.

Iniziamo con la solita scansione nmap:

Copy to Clipboard

Come possiamo vedere c’è solo la porta 3000 aperta con un servizio Node.js Express framework. Apriamo subito il browser per vedere la pagina web:

C’è la stampa di un errore 404, ma ricaricando la pagina vediamo che la scritta cambia:

Copy to Clipboard

Interessante. Proviamo ad aprire Burp per vedere cosa è successo nella richiesta:

Notiamo subito che c’è un cookie chiamato “profile”:

Copy to Clipboard

A primo impatto questa sembra essere una codifica in base64, proviamo a decodificarla per vedere cosa c’è dietro:

Copy to Clipboard

Infatti ci sono alcune informazioni riguardo un account con username “Dummy”. Proviamo a modificare alcuni valori in questo cookie iniziando dallo username:

Copy to Clipboard

La risposta del server web è:

Copy to Clipboard

Uhm, sì, possiamo manipolare la risposta con il cookie. Notiamo che “22” sembra essere una concatenazione di “2”, proviamo a modificare il valore “2” per vedere cosa succede:

Copy to Clipboard

La risposta è:

Copy to Clipboard

Forse c’è qualche trick per la concatenazione del valore “42”. Proviamo con qualche valore differente da un numero:

Copy to Clipboard

Ecco la risposta:

Copy to Clipboard

Yeah, c’è la funzione eval! Con la funzione eval noi possiamo eseguire codice manipolando il cookie! Proviamo a cambiare il cookie inserendo all’interno una reverse shell in javascript:

Copy to Clipboard

Mettiamoci in ascolto sulla porta 2222 con netcat e mandiamo la richiesta:

Copy to Clipboard

Yeah! Abbiamo aperto una reverse shell! Prendiamo la flag in Documents/user.txt e procediamo con la privilege escalation. In Documents c’è un altro file interessante:

Copy to Clipboard

Il contenuto del file script.py è:

Copy to Clipboard

E nella home directory c’è un file chiamato “output.txt” con questo contenuto:

Copy to Clipboard

dove il proprietario di questo file è root. Forse c’è un crontask di root che fa girare lo script per scrivere nel file output.txt. Per vedere se c’è questo cronjob, scriviamo uno script in bash che cerca i nuovi processi che vengono eseguiti nel sistema:

Copy to Clipboard

Facciamo partire lo script:

Copy to Clipboard

dopo alcuni minuti possiamo vedere che c’è un crontask di root che fa partire lo script python e lo rimpiazza con un altro script.py. Ora possiamo semplicemente modificare lo script e inserire all’interno una reverse shell in python. Inseriamo questo codice per aprire una reverse shell:

Copy to Clipboard

Mettiamoci in ascolto sulla porta 2224 con netcat e dopo qualche minuto:

Copy to Clipboard

Recent Tweets

For privacy reasons Twitter needs your permission to be loaded.
I Accept
2018-11-02T10:11:07+00:00

About the Author:

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all’elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Leave A Comment

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.