Simple CTF
Guida alla risoluzione di questo Semplice CTF.
CTF DI TRYHACKME
Risolviamo questo CTF che si trova sul sito TryHackMe.com.
#1 Quanti servizi sono in ascolto nelle porte inferiori alla 1000?
Come sempre per prima cosa eseguiamo uno scan della macchina tramite Nmap:


Dallo scan possiamo vedere che sono due le porte aperte sotto alla 1000: la 21 per FTP e la 80 per un webserver.
#2 Quale servizio è in ascolto sulla porta più alta?
Possiamo rispondere a questa domanda sempre guardando lo scan di Nmap ottenuto prima: SSH sulla porta 2222.
#3 Quale CVE si può utilizzare contro l'applicazione?
Facciamo una visita al webserver, ma non sembra esserci nulla che possa servirci.
Tentiamo l'enumerazione delle cartelle con GoBuster:


Il nostro scan ha rivelato una cartella nascosta chiamata "simple".
Andiamo quindi a darvi un'occhiata:


Se guardiamo bene in basso sulla sinistra possiamo leggere il nome dell'applicazione e la sua versione: CMS Made Simple 2.2.8.
Ora che conosciamo il nostro bersaglio possiamo cercare il CVE in due modi: possiamo cercare sul sito https://www.exploit-db.com/ oppure utilizzare il tool searchsploit (che è sostanzialmente exploit-db.com in versione offline) sulla nostra macchina Kali.
Usiamo il sito e cerchiamo "CMS Made Simple".
Abbiamo molti exploit per diverse versioni, noi dobbiamo cercare quello per la versione 2.2.8.
Scorrendo un po' troviamo quello che fa a caso nostro:


Ora che conosciamo il CVE di questo exploit possiamo rispondere alla terza domanda.
#4 A quale tipo di attacco è vulnerabile l'applicazione?
Guardando l'immagine di prima possiamo vedere che l'applicazione è vulnerabile ad un'iniezione SQL, quindi la risposta è sqli (SQL Injection).
#5 Qual è la password?
Ora che abbiamo l'exploit lo possiamo utilizzare con il seguente comando:
python 46635.py -u http://10.10.95.204/simple --crack -w /usr/share/wordlists/rockyou.txt
Dove:
python: viene utilizzato perché il file è scritto in python (.py)
-u: Serve per specificare l'url dove si trova l'applicazione su di cui vogliamo eseguire l'exploit
--crack: Attiva la modalità di crack dell'exploit
-w: Specifica la wordlist da utilizzare
Facciamo partire l'attacco ed aspettiamo che l'exploit faccia il suo lavoro.
Attenzione: può capitare che l'exploit non funzioni a causa della mancanza del modulo di Python chiamato "termcolor".
Per risolverlo basta installare il suddetto modulo con il comando "pip install termcolor".


Et voilà! Credenziali trovate!
Possiamo ora rispondere alla quinta domanda.
#5 Con quale servizio possiamo effettuare il login con le credenziali appena trovate?
Possiamo effettuare il login con SSH che si trova sulla porta 2222


* Indossa la maschera degli Anonymous (sì lo so, è quella di Guy Fawkes) e alza il cappuccio della felpa *
Siamo dentro!
#6 Qual è la flag dell'utente?
Per rispondere a questa domanda ci basta vedere quali file abbiamo sotto mano (ce n'è solo uno) e leggerlo:
#7 C'è qualche altro utente nella cartella home? Se sì, quale?
Ci spostiamo nella cartella home ed elenchiamo le cartelle presenti:


#8 Cosa si può sfruttare per spawnare una shell con privilegi più alti?
Dopo aver ottenuto l'accesso alla macchina bersaglio tramite SSH, è utile vedere quali comandi possiamo usare con sudo che non richiedono d'inserire la password:
Possiamo utilizzare vim (un editor di testi) per elevare i nostri privilegi, ma come possiamo farlo?
Ci colleghiamo al sito https://gtfobins.github.io/, cerchiamo "vim" e clicchiamo sul pulsante "sudo".
Il sito ci restituisce la seguente pagina:


Il primo comando ci permetterà di spawnare una shell privilegiata.
#9 Qual è la flag di root?
Ci assicuriamo di essere "root" con il comando "whoami" (anche se lo sapevamo già perché il prompt dei comandi è diventato #, mentre prima era $), vediamo quali file sono presenti (di nuovo ne troviamo solo uno) ed apriamo la flag:


Ecco fatto: CTF completato!
Complimenti!



