Saltar a contenido

05.-Herramienta `msfvenom`

La herramienta msfvenom es una herramienta incluida en la suite Metasploit que se utiliza para generar los payloads utilizados por el propio Metasploit. También es posible generar estos payloads por separado y en numerosos formatos de salida:

  • Formato binario:
    Ejecutable .exe o una librería .dll, un fichero compilado de Java .jar o salida en un.
  • Formato interpretado:
    Script en Python, PowerShell, ShellScript, VBScript.

Tanto Metasploit como msfvenom se encuentran preinstalados en la distribución de Linux Kali. Sin embargo, dado que se encuentra desarrollado bajo el lenguaje de programación Ruby, se puede instalar en cualquier sistema que disponga de un motor de Ruby instalado (incluso en Microsoft Windows).

Podremos invocar la ayuda de msfvenom con el parámetro -h:

msfvenom -h

Opciones de msfvenom

Como podemos comprobar en el output anterior, msfvenom dispone de varias opciones de configuración para generar un payload. Desde las opciones de selección y configuración del exploit hasta la configuración del formato de salida. Si nos fijamos, los payloads de Metasploit y de msfvenom son los mismos. Esto es debido a que Metasploit utiliza msfvenom para generar el payload.

A continuación, se muestran las opciones de configuración del payload y el comando para obtener el listado de las mismas:

  • Listar los payloads disponibles: bash msfvenom -l payloads

  • Listar las plataformas soportadas para la generación del payloads: bash msfvenom -l platforms

  • Listar todas las arquitecturas soportadas para la generación del payload: bash msfvenom -l archs

  • Listar todos los formatos de salida en los que se puede generar el payload: bash msfvenom -l formats

  • Listar todos los encoders disponibles:
    Si queremos aplicar algún tipo de codificación al payload para tratar de pasar desapercibido:
    bash msfvenom -l encoders

Generar el payload con msfvenom

A la hora de generar el payload, msfvenom dispone de distintos operadores para indicar cada opción de generación del exploit.

Por ejemplo, el siguiente comando genera un payload “bind reverse Shell” para un sistema Windows con una arquitectura de 32 bits, le aplica el encoder shikata_ga_nai tres veces y excluye el badchar “null” (x00 en hexadecimal). Por último, el resultado de salida es un script en el lenguaje Python:

msfvenom -p windows/shell_bind_tcp -a x86 --platform windows -e x86/shikata_ga_nai -i 3 -b "\x00" -f python

Para saber más

En el siguiente enlace Metasploit Unleashed podéis obtener más información sobre las capacidades y uso de la herramienta msfvenom. En el siguiente enlace podéis ver un video en el que se muestra el uso básico de la herramienta msfvenom.

Autoevaluación

msfvenom es una herramienta externa a Metasploit con unos payloads totalmente diferentes

  • Respuesta: Falso
  • Explicación: La herramienta msfvenom forma parte de la suite Metasploit. De hecho, dispone de los mismos payloads, dado que Metasploit utiliza msfvenom de manera transparente al usuario para configurar y generar los payloads.

En la herramienta Metasploit sólo hay módulos de Explotación y Payloads

  • Respuesta: Falso
  • Explicación: En Metasploit existen también otros módulos como:
    • Los módulos "Auxiliares", que permiten realizar tareas propias de la fase de reconocimiento y escaneo.
    • Los módulos de "Postexplotación", que facilitan la realización de ciertas tareas sobre los equipos previamente comprometidos.