Benché si pensi che il successo di un attacco sia una questione che coinvolge complesse tecnologie, raffinate tecniche informatiche al limite del mistero, gran parte di questi attacchi ha successo perché le persone sono distratte, pigre, disattente, anche quando si tratta di creare un web-server per la propria azienda.
In questa nuova guida vedremo come un amministratore poco attento ha lasciato in giro tracce utili per poter violare la sua macchina.
- Link: https://tryhackme.com/room/ignite
- Obbiettivi : flag.txt, root.txt
Come di consueto iniziamo con una scansione delle porte della macchina da attaccare attraverso il tool “nmap”:
- -sT è la scansione di default;
- -A ci permette di recuperare informazioni riguardanti la versione dei servizi e del sistema operativo;
- -p- estende la scansione a tutte le porte.

Il risultato non è molto incoraggiante; si tratta di una macchina con sistema operativo linux e l’unica porta aperta è la 80/tcp che indica l’utilizzo del protocollo HTTP per ospitare un Web-Server.
Apriamo il nostro browser e visitiamo la pagina all’indirizzo da attaccare. La pagina pubblica le note informative per l’utilizzo del CMS, Fuel. Un CMS, Content Management System, è un applicazione che rende più semplice la gestione dei contenuti in un sito web evitando al gestore della pagina di avere approfondite conoscenze in fatto di programmazione.

Essendo un’applicazione che interagisce profondamente con la macchina sulla quale è installata, è spesso un buon punto sul quale porre la propria attenzione da parte di un attaccante e un elemento che gli amministratori di sistema devono rendere il più sicuro possibile. Purtroppo non sembra questo il caso; senza nemmeno la necessità di analizzare la sorgente della pagina balzano all’occhio due elementi interessanti. In primis vengono citati i percorsi di alcuni file che potrebbero contenere informazioni importanti come username e password.

Al momento non abbiamo accesso alla macchina, ma in seguito potrebbe essere un’informazione fondamentale nel nostro percorso d’attacco; ma soprattutto incredibilmente si possono leggere in chiaro le credenziali di default per accedere alla pagina di gestione del CMS. Per onestà va detto che le credenziali di default sono disponibili sul web proprio perché devono essere conosciute a tutti, ma vista la distrazione dell’amministratore è probabile che queste siano ancora valide e in effetti possiamo fare login con successo; purtroppo curiosando tra le opzioni, non sembra esserci alcuna opzione sfruttabile.

Al momento siamo bloccati, quindi proviamo a cercare sul sito exploit-db.com, se è presente qualche exploit che ci possa aiutare a violare la macchina. Un exploit è un programma che sfrutta le vulnerabilità in una applicazione/sistema per raggiungere un certo obbiettivo. Nel nostro caso il risultato è incoraggiante; sono presenti molti exploit che sfruttano vulnerabilità del CMS Fuel e in particolare tre permettono una RCE, Remote Code Execution, in altre parole attraverso questi exploit si può interagire direttamente con il sistema operativo della macchina attaccata.

Scarichiamo sulla nostra macchina il più recente; è un programma scritto in python che una volta avviato, specificando con l’opzione -u l’indirizzo del web server che stiamo attaccando, ci da un accesso molto limitato al nostro obbiettivo. A questo punto dobbiamo cercare di conquistare un accesso completo; quindi apriamo sulla nostra macchina una sessione di ascolto con “nc” e poi dalla macchina conquistata una reverse shell sempre in “nc”.

Ed ecco il nostro accesso completo alla macchina. Per facilitarci la vita facciamo l’upgrade della shell con python e poi andiamo a leggere il contenuto del file flag.txt nella directory “home” dell’utente violato.

E’ arrivato il momento di tentare una Privilege Escalation.
Curiosando tra le cartelle non sembra esserci nessuno script e nessun programma da poter sfruttare, anche il comando “sudo -l” che di norma ci darebbe qualche informazione utile richiede una password che non abbiamo. Visto che siamo bloccati seguiamo le tracce lasciate dal nostro amministratore e controlliamo il contenuto del file citato nella pagina web che potrebbe contenere informazioni interessanti e in effetti contiene sorprendentemente in chiaro la password dell’utente root(amministratore).

Per diventare utente “root” usiamo il comando “su root” e quando richiesto forniamo la password. Ora possiamo accedere alla cartella root, al file root.txt e il gioco è fatto.

Missione compiuta!