Metasploit permite generar un payload o shellcode, ejecutandose en una máquina virtual victima, permitiendo obtener una shell.

Pasos básicos para explotar vulnerabilidades.

Como una secuencia finita de pasos, deben:

  1. Elegir y configurar el exploit (el código que permite explotar la vulnerabilidad de un sistema).
  2. Confirmar si el objetivo es susceptible al exploit elegido (opcional).
  3. Elegir y configurar el payload (código que se ejecutará una vez explotada la vulnerabilidad).
  4. Elegir la técnica de codificación para el payload, para no ser detectado por los elementos de seguridad del equipo (opcional aunque recomendable).

Luego de configurar, debe ejecutar el exploit, utilizando las herramientas incluidas:

  • msfconsole: Línea de comandos de Metasploit.
  • msfcli: Interfaz que lanzará un módulo específico.
  • msfgui: Interfaz gráfica de Metasploit.
  • msfd: servicio en modo escucha, esperando la conexión para lanzar una línea de comandos remota.
  • msfbinscan: permite realizar búsquedas en ejecutables de instrucciones de salto, etc.
  • msfpescan: permite realizar un análisis de DLLs y obtener la dirección de retorno deseada para que la shellcode se ejecute.
  • msfpayload: permite generar payloads en diferentes lenguajes de programación, permitiendo embeberlos en ejecutables Windows o binarios de UNIX.
  • msfencode: permite ofuscar el código del payload.
  • msfvenom: la unión de msfpayload y msfencode.
  • msfupdate: utilizado para actualizar el framework.

Prueba de concepto.

El objetivo es generar un payload, luego de ser ejecutado en la máquina víctima, generará una shell meterpreter en la máquina atacante. El siguiente escenario será el laboratorio:

  • Máquina Victima.
    • Sistema Operativo Windows 7.
    • Dirección IP: 192.168.0.202.
    • Antivirus desactivado, por lo que no realizaremos la fase de encode.
  • Máquina Atacante.
    • Kali Linux.
    • Direccion IP: 192.168.0.192.

Comenzando el reconocimiento, ejecutar

Metasploit consta de:

  • 1496 exploits.
  • 862 auxiliary.
  • 251 post.
  • 432 payloads.
  • 37 encoders.
  • 8 nops.

En un principio, interesan listar los payloads disponibles, ejecutar el siguiente comando:

Luego de listar todos los exploits disponibles, existen payloads para windows, linux, java, php, etc.

Como el objetivo utiliza Windows, será el caso de estudio; éste laboratorio utilizará windows/meterpreter/reverse_tcp.

Lanzando el ataque.

La herramienta a utilizar para generar el payload es msfvenom sin utilizar la opción de encoder. La siguiente imagen, permite observar el comando utilizado para generar dicho payload:

Las opciones utilizadas son:

  • -p: Permite indicar el payload a utilizar.
  • -f: Permite indicar el tipo de extensión de salida a generar, el laboratorio utilizará .exe.
  • LHOST: Se bede indicar la dirección contra la que se tiene que efectuar la conexión; el equipo atacante.
  • LPORT: Puerto al que tiene  que ir dirigida la conexión realiza desde el equipo víctima.

Con tales parámetros obtendrá un ejecutable para Windows.  Luego de lanzar el ejecutable en la máquina victima, debe configurar la recepción de la consola en Metasploit. Una vez iniciada la consola de Metasploit, utilizar el comando

Donde debe configurar la consola meterpreter.

A continuación,  debe setear el payload a hacer uso,  windows/meterpreter/reverse_tcp

El comando show options, permite ver las características a modificar. Interesa modificar el LHOST y el LPORT (por defecto es 4444).  Ejecutando set LHOST Dirección_IP permite modificar la dirección donde se conectará la máquina víctima.

Configurando Metasploit para recibir la conexión.

Ahora queda lanzar el exploit (o exploit -j para ejecutar en segundo plano) y experar que la conexión se realice.

Al ejecutar el payload, el equipo Atacante recibe una sesión de meterpreter, permitiendo realizar diferentes acciones. El comando help, permite visualiar las diferentes opciones de meterpreter.

Gracias a la comunidad de Underc0de y a sunplace solutions.