Pular para o conteúdo

Como fazer um pentest completo


Este guia é a espinha de um teste de intrusão do começo ao fim: o que fazer em cada fase, com que ferramenta, e o que precisa estar escrito antes de você tocar em qualquer coisa.

Leia projetos/00-regras.md primeiro. Testar sistema de terceiros sem autorização escrita é crime no Brasil — Lei 12.737/2012 e Art. 154-A do Código Penal. Nenhuma técnica aqui muda isso.

Onde praticar: tudo neste guia se treina em labs/red-team-ctf.md e em repositorios/labs-vulneraveis.md. Máquina que é sua, ou plataforma que autoriza por escrito.


As sete fases

Um pentest não é "rodar o scanner e mandar o PDF". A ordem importa porque cada fase alimenta a seguinte, e pular uma custa achado.

Fase O que você produz Tempo típico
0. Escopo e autorização Contrato, regras de engajamento, janela de teste Antes de tudo
1. Reconhecimento passivo Superfície de ataque sem tocar no alvo 10–20%
2. Reconhecimento ativo Portas, serviços, versões 10%
3. Enumeração Usuários, compartilhamentos, endpoints, tecnologias 25–30%
4. Exploração Acesso inicial comprovado 15%
5. Pós-exploração Escalada, movimentação lateral, impacto demonstrado 20%
6. Relatório O entregável. É o único artefato que o cliente lê 20–25%

A distribuição surpreende quem começa: enumeração e relatório juntos são metade do trabalho, e exploração é a menor fatia. Quem passa o tempo todo tentando explorar geralmente não enumerou o suficiente.


Fase 0 — Escopo e autorização

Nada começa sem isto por escrito e assinado.

O que o documento precisa dizer:

Item Por que importa
Alvos exatos: IPs, faixas CIDR, domínios, aplicações "A rede da empresa" não é escopo, é convite a problema
O que está fora do escopo Terceiros, produção crítica, sistemas de saúde ou industriais
Janela de teste: datas e horários Testar fora da janela é acesso não autorizado
Tipo de teste: caixa preta, cinza ou branca Define se você recebe credenciais e documentação
Técnicas proibidas Negação de serviço, engenharia social, ataque físico
Contatos de emergência dos dois lados Para quando algo cair
Quem pode autorizar uma pausa Alguém tem de poder dizer "pare agora"
Tratamento de dado sensível achado O que fazer se você encontrar dado pessoal ou credencial real

Armadilha comum: o alvo tem um IP que na verdade pertence a um provedor de nuvem ou hospedagem. Você precisa da autorização do dono do sistema e verificar a política do provedor. AWS, Azure e GCP têm regras próprias para teste de intrusão.

Referência de metodologia: o PTES define essa fase como Pre-engagement Interactions e traz uma lista de perguntas pronta.


Fase 1 — Reconhecimento passivo

Você coleta sem enviar um pacote ao alvo. Tudo aqui vem de fonte pública ou de terceiros.

Subdomínios e superfície DNS

# subdomínios de fontes passivas (certificados, arquivos, APIs públicas)
subfinder -d example.com -all -silent > subs.txt
amass enum -passive -d example.com

# transparência de certificado, sem tocar no alvo
curl -s "https://crt.sh/?q=%25.example.com&output=json" | jq -r '.[].name_value' | sort -u

# registros DNS e histórico
dig example.com ANY +noall +answer
dig -t TXT example.com          # SPF e DMARC revelam provedores e terceiros

Ferramentas: subfinder · amass · crt.sh

O que mais procurar

Fonte O que entrega
Shodan e Censys Serviços expostos, banners, certificados, sem você escanear
Wayback Machine Endpoints e parâmetros que saíram do ar mas continuam válidos
GitHub e GitLab Segredo comitado, chave de API, arquivo de configuração
LinkedIn e site institucional Nomes para montar lista de usuários e padrão de e-mail
Have I Been Pwned Se credenciais do domínio já vazaram
Ofertas de emprego da empresa Diz a pilha de tecnologia que eles usam, de graça

Busca por segredo em repositório:

# num repositório que você clonou legitimamente
trufflehog git file://./repo --only-verified
gitleaks detect --source ./repo

trufflehog · gitleaks

Padrão de e-mail

Descobrir o formato (nome.sobrenome@, inicial+sobrenome@) permite montar lista de usuários a partir dos nomes que você achou. É a base de password spraying na fase 4 — quando o escopo permite.


Fase 2 — Reconhecimento ativo

Agora você toca no alvo. Cada pacote seu pode aparecer num log, e isso é esperado num teste autorizado.

# descoberta de host na faixa
nmap -sn 10.0.0.0/24 -oA descoberta

# varredura completa de portas TCP, rápida, sem detecção
nmap -p- --min-rate 5000 -T4 -Pn 10.0.0.5 -oA portas

# só as portas abertas, agora com versão e script padrão
nmap -p 22,80,443,445,3389 -sCV -Pn 10.0.0.5 -oA servicos

# UDP nas portas que realmente valem (UDP é lento; não varra tudo)
nmap -sU --top-ports 20 -Pn 10.0.0.5 -oA udp

Por que dois passos: a primeira varredura acha portas rápido; a segunda investiga só o que existe. Rodar -sCV -p- de uma vez leva horas e entrega o mesmo.

Alternativas mais rápidas para faixas grandes: masscan e naabu, sempre seguidos de nmap -sCV nas portas encontradas.

Cuidado real: -T5, --min-rate muito alto ou masscan sem limite derrubam equipamento de rede frágil. Isso conta como negação de serviço, e normalmente está proibido no contrato.


Fase 3 — Enumeração

A fase mais longa e a que decide o resultado. Aqui você transforma "porta 445 aberta" em "usuário X tem acesso de escrita ao compartilhamento Y".

Web (80, 443, 8080, 8443)

# tecnologias, cabeçalhos, framework
whatweb -a 3 https://example.com
curl -sI https://example.com

# diretórios e arquivos
feroxbuster -u https://example.com -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -x php,txt,bak,old,zip

# vhosts por cabeçalho Host
ffuf -u https://example.com -H "Host: FUZZ.example.com" -w subs.txt -fs 0

# parâmetros escondidos
arjun -u https://example.com/

Ferramentas: feroxbuster · ffuf · SecLists · Arjun

Para aplicação web, a referência completa de teste é o OWASP Web Security Testing Guide — ele lista o que testar em cada categoria, e é o que separa "achei um XSS" de "cobri autenticação, sessão, autorização, entrada, lógica de negócio".

SMB e Windows (139, 445)

# enumeração geral: compartilhamentos, usuários, política de senha
netexec smb 10.0.0.5 -u '' -p '' --shares --users --pass-pol
enum4linux-ng -A 10.0.0.5

# listar e baixar de compartilhamento
smbclient -L //10.0.0.5 -N
smbmap -H 10.0.0.5 -u usuario -p senha

NetExec (sucessor do CrackMapExec) · enum4linux-ng

Active Directory

# coleta completa para análise de caminho de ataque
bloodhound-python -d dominio.local -u usuario -p senha -c All -ns 10.0.0.1

# usuários com Kerberos pre-auth desabilitado (AS-REP Roasting)
GetNPUsers.py dominio.local/ -usersfile usuarios.txt -no-pass

# contas de serviço com SPN (Kerberoasting)
GetUserSPNs.py dominio.local/usuario:senha -request

BloodHound · Impacket

BloodHound é o que transforma uma lista de objetos do AD num grafo de caminhos até Domain Admin. Aprender a ler o grafo vale mais que decorar comando.

Outros serviços que costumam entregar acesso

Porta Serviço Primeiro passo
21 FTP Tentar login anônimo
25 SMTP VRFY e EXPN para validar usuários
161 SNMP snmpwalk com community public
389/636 LDAP Consulta anônima para listar objetos
1433 MSSQL netexec mssql com credencial achada
2049 NFS showmount -e e montar o que estiver aberto
3306 MySQL Credencial padrão e usuário sem senha
5985 WinRM evil-winrm com credencial achada
6379 Redis Sem autenticação por padrão em instalação antiga

Consulta de referência para qualquer porta: HackTricks tem uma página por serviço com o que enumerar e como explorar.


Fase 4 — Exploração

Você só chega aqui com um alvo específico e uma razão. Disparar exploit no escuro é o oposto de pentest.

O ciclo correto

  1. Identifique versão e produto exatos na fase 3.
  2. Procure a vulnerabilidade conhecida. Como fazer isso está em docs/guia-cve.md.
  3. Leia o exploit antes de rodar. Exploit público contém backdoor com frequência, e um que não bate com sua versão derruba o serviço.
  4. Teste no seu lab primeiro, quando o alvo é produção.
  5. Documente na hora: comando, saída, horário, evidência.
# buscar exploit conhecido para a versão
searchsploit "apache 2.4.49"
searchsploit -m 50383          # baixa uma cópia local para você LER

As vias que mais funcionam na prática

Via Onde aparece
Credencial padrão ou reusada Painel administrativo, banco, dispositivo de rede
Credencial vazada em repositório ou arquivo de configuração Achada na fase 1 ou 3
Injeção em aplicação web SQLi, upload sem validação, SSTI, deserialização
CVE conhecida sem correção Serviço exposto com versão antiga
Serviço mal configurado Redis, NFS, Jenkins, Docker socket expostos
Password spraying Uma senha provável contra muitos usuários

Sobre spraying: uma senha contra muitas contas, não muitas senhas contra uma conta. O segundo bloqueia contas e queima o teste. Confira a política de bloqueio (--pass-pol) antes.

Ferramentas

  • Metasploit — exploits com payload e sessão prontos
  • sqlmap — injeção SQL, com --batch e nível controlado
  • Burp Suite — a edição Community basta para aprender; interceptar e repetir requisição é o núcleo do teste web
  • Exploit-DB — base de exploits, acessível também por searchsploit

Fase 5 — Pós-exploração

Acesso inicial não é resultado. O resultado é impacto demonstrado.

Escalada de privilégio

# Linux: enumeração automatizada
./linpeas.sh | tee linpeas.txt

# o que checar na mão, sempre
sudo -l                                    # o que você roda como root
find / -perm -4000 -type f 2>/dev/null     # binários SUID
cat /etc/crontab; ls -la /etc/cron.*       # tarefa agendada gravável
getcap -r / 2>/dev/null                    # capabilities
# Windows: enumeração automatizada
.\winPEASx64.exe

# o que checar na mão
whoami /priv                               # privilégios do token
systeminfo                                 # versão e patches
Get-ChildItem -Path C:\ -Include *.kdbx,*.config -Recurse -EA 0

PEASS-ng (linPEAS e winPEAS) · GTFOBins para abusar de binário Unix · LOLBAS para o equivalente em Windows

Movimentação lateral

# reutilizar credencial ou hash pela rede
netexec smb 10.0.0.0/24 -u usuario -H <hash_ntlm>
evil-winrm -i 10.0.0.7 -u usuario -H <hash_ntlm>
psexec.py dominio/usuario@10.0.0.7 -hashes :<hash_ntlm>

O objetivo é mostrar o caminho: de onde você entrou até onde conseguiu chegar, e o que isso significa para o negócio.

Limpeza

Anote tudo que você criou e desfaça: usuário, arquivo, tarefa agendada, chave de SSH, shell. Deixar artefato para trás é falha profissional, e às vezes cláusula de contrato.


Fase 6 — Relatório

É o único artefato que a maioria das pessoas do cliente vai ler. Use o modelo pronto em projetos/templates/relatorio-pentest.md.

Estrutura

Seção Para quem O que tem de conter
Sumário executivo Diretoria Risco em linguagem de negócio, sem jargão, em uma página
Escopo e metodologia Auditoria O que foi e o que não foi testado, quando, como
Achados Time técnico Um por vulnerabilidade, com severidade e evidência
Plano de remediação Quem vai corrigir Ordenado por risco sobre esforço
Anexos Quem for refazer Saída de ferramenta, comandos, capturas

O que faz um achado ser bom

  • Reproduzível: o passo a passo funciona na mão de outra pessoa.
  • Com impacto explicado: não "SQLi no parâmetro id", mas "leitura da tabela de clientes, 40 mil registros, incluindo CPF".
  • Com severidade justificada: use CVSS e mostre o vetor, para a nota ser auditável.
  • Com correção concreta: "usar consulta parametrizada em app/models/user.py:88", não "validar entrada".
  • Com evidência mínima suficiente: captura de tela com dado sensível mascarado.

Erro clássico

Despejar a saída do scanner como se fosse achado. Um relatório de 200 páginas gerado por ferramenta vale menos que dez achados verificados à mão, com falso positivo removido.


Os erros que mais custam

Erro Consequência
Começar sem autorização escrita Crime, independentemente da intenção
Enumerar pouco e tentar explorar muito Você não acha o caminho fácil que existia
Rodar exploit sem ler Derruba serviço, ou executa backdoor do autor
Não anotar durante o teste Na hora do relatório você não reproduz o que fez
Testar fora da janela ou fora do escopo Quebra de contrato
Entregar saída de ferramenta como relatório O cliente não sabe o que corrigir
Esquecer de limpar Artefato seu vira achado do próximo teste

Como treinar cada fase, legalmente

Fase Onde praticar
1. Recon passivo Seu próprio domínio, ou os alvos de TryHackMe
2–3. Recon ativo e enumeração Hack The Box, VulnHub, Metasploitable
4. Exploração web PortSwigger Web Security Academy — gratuito e é o melhor material que existe de web
4–5. Exploração e escalada OverTheWire, exploit.education
5. Active Directory GOAD no seu lab
6. Relatório Refaça um alvo de CTF e escreva o relatório como se fosse cliente — é o projeto P13

Fontes


← Voltar ao índice