// Penetration Testing — Phase Five

Relatórios
Profissionais

O relatório é o produto final que o cliente paga. Um pentest brilhante com relatório ruim não tem valor. Um relatório claro transforma achados técnicos em ações concretas de remediação — essa é a habilidade que diferencia consultores sêniores.

EXECUTIVE SUMMARY CVSS POC REMEDIAÇÃO CHERRYTREE OBSIDIAN
O relatório é construído durante o teste, não depois. Cada passo crítico precisa ser documentado no momento em que acontece — reconstruir a exploração de memória dias depois é impreciso e doloroso.
Regra de ouro Se você não tem screenshot e o comando salvo, o finding não aconteceu. Clientes podem questionar qualquer achado. Evidências irrefutáveis fazem o relatório indiscutível — e protegem você legalmente.
Evidências

O que capturar em cada finding

Para cada vulnerabilidade encontrada, documente:

Screenshot da exploração — mostrando o payload, a requisição e a resposta
Comando exato executado — copiado do terminal
Output completo — não só a linha relevante
URL ou endpoint afetado
Timestamp — data e hora em UTC
Impacto demonstrado — o que foi acessado ou comprometido

Organização

Estrutura de pastas por engajamento

Mantenha uma estrutura consistente para cada pentest. Facilita encontrar evidências semanas depois e montar o relatório final.

cliente-2024/
├── recon/ (nmap, subfinder, screenshots)
├── exploitation/ (payloads, outputs)
├── post-exploitation/
├── screenshots/ (numerados por finding)
└── report/ (rascunhos e final)
Terminal

Logging automático do terminal

Grave automaticamente tudo que acontece no terminal. O comando script salva sessão completa. tmux pode ser configurado para logging por pane. Nenhum comando se perde.

# Iniciar gravação da sessão
script -a /root/engagement/terminal.log

# Ou via tmux: Ctrl+B → : → pipe-pane -o 'cat >> ~/log.txt'
Timestamps

Por que timestamps importam

Questões legais podem surgir sobre quando uma ação foi executada. Sempre use UTC para evitar confusão de fuso horário. Configure seu terminal para exibir timestamp em cada comando ou use date -u antes de ações críticas.

Em questões legais, timestamps provam que você só agiu dentro da janela autorizada pelo contrato.
Um relatório profissional tem duas audiências distintas: executivos (que não entendem de técnica mas tomam decisões de orçamento) e equipes técnicas (que vão implementar as correções). O relatório precisa servir bem a ambos.
Seções padrão de um relatório profissional
Seção 1

Executive Summary

Uma página, linguagem de negócios, sem jargão técnico. Responde: o que foi testado, o que foi encontrado em termos de risco, qual o impacto para o negócio, e qual a recomendação prioritária. Um CEO que não sabe o que é SQL injection deve entender completamente esta seção.

Esta é a seção mais lida. Escreva ela por último, quando tiver visão completa dos findings.
Seção 2

Escopo e Metodologia

Define exatamente o que foi testado (IPs, domínios, aplicações), o período do teste, as ferramentas utilizadas, e a metodologia seguida (PTES, OWASP). Importante para delimitar responsabilidade — o que não estava no escopo não foi testado.

Seção 3

Resumo dos Findings

Tabela com todos os findings, ordenados por severidade. Inclui: nome do finding, severidade (Critical/High/Medium/Low/Informational), sistema afetado, e status (Open). Permite visão rápida de toda a superfície de risco.

Seção 4

Findings Detalhados

Uma subseção para cada vulnerabilidade, com: descrição do problema, passos de reprodução, evidências (screenshots, outputs), impacto, severidade com CVSS score, e recomendação de remediação. É o coração técnico do relatório.

Seção 5

Recomendações Gerais

Além das correções específicas de cada finding, recomendações de postura de segurança: programa de patch management, treinamento de desenvolvedores, implementação de WAF, política de senhas, processo de vulnerability disclosure.

Seção 6

Apêndices

Outputs completos de ferramentas (Nmap, Nuclei), lista de IPs testados, metodologia detalhada, glossário de termos técnicos (útil para executives). Mantém o corpo do relatório limpo sem perder completude.

Tom e linguagem por audiência

Para o Executive

"Um atacante externo conseguiu acessar o banco de dados de clientes contendo 50.000 registros, incluindo dados pessoais e financeiros, sem necessidade de credenciais. O impacto inclui risco regulatório (LGPD) e dano reputacional."

Para o Técnico

"O parâmetro id no endpoint GET /api/users/{id} não valida se o usuário autenticado tem permissão para acessar o recurso solicitado (IDOR — CWE-639). Payload: alterar id=1337 para qualquer valor retorna dados do usuário correspondente."

Remediação Clara

Toda remediação precisa ser acionável: não escreva "melhorar a segurança". Escreva "implementar verificação de autorização no endpoint /api/users/{id} para confirmar que o id solicitado pertence ao usuário autenticado antes de retornar os dados."

Classificar corretamente a severidade de um finding é uma habilidade crítica. Super-classificar tudo como Critical perde credibilidade. Sub-classificar esconde riscos reais. O CVSS fornece um framework objetivo, mas o contexto do ambiente sempre importa.
Escala de Severidade
CRITICAL
9.0–10.0
RCE sem autenticação, SQLi com dump de banco, acesso a dados altamente sensíveis. Requer ação imediata.
HIGH
7.0–8.9
Escalada de privilégios, IDOR com dados sensíveis, XSS Stored em página de alto tráfego.
MEDIUM
4.0–6.9
CSRF, XSS Reflected, informações sensíveis em resposta, headers de segurança ausentes.
LOW
0.1–3.9
Informações de versão expostas, cookies sem Secure flag, configurações subótimas de baixo impacto.
INFO
0.0
Observações sem risco imediato: práticas não recomendadas, melhorias de hardening.
Fatores CVSS que mais influenciam o score
FatorImpacto no ScoreExemplo High vs Low
Attack VectorNetwork = alto · Physical = baixoSQLi via web (N) vs acesso físico ao server room (P)
Attack ComplexityLow = alto · High = baixoExploit público funcional (L) vs requer condição de race (H)
Privileges RequiredNone = alto · High = baixoSem autenticação (N) vs requer admin (H)
User InteractionNone = alto · Required = baixoRCE direto (N) vs XSS exige clique da vítima (R)
Confidentiality ImpactHigh = dados sensíveis expostosDump de banco completo (H) vs versão de software (N)
Integrity ImpactHigh = dados podem ser alteradosSQLi com UPDATE (H) vs read-only (N)
Availability ImpactHigh = sistema pode ser derrubadoDoS via exploit (H) vs lentidão mínima (N)
Contexto sempre supera o score Um finding com CVSS 5.0 (Medium) em um sistema de controle industrial pode ser mais crítico para o negócio do que um CVSS 9.0 em um servidor de teste. Sempre adicione uma nota de contexto quando o impacto real difere do score calculado.
Cada finding segue uma estrutura consistente. Abaixo um exemplo real de como um IDOR seria documentado num relatório profissional — do título até a remediação.
FINDING #001 — EXEMPLO DE MODELO HIGH · CVSS 8.1

Título: Insecure Direct Object Reference (IDOR) na API de Perfil de Usuário

Severidade: High (CVSS 8.1 — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N)

CWE: CWE-639 — Authorization Bypass Through User-Controlled Key

Endpoint: GET /api/v1/users/{id}/profile

Descrição: O endpoint de consulta de perfil de usuário não verifica se o ID solicitado pertence ao usuário autenticado. Qualquer usuário com uma conta válida pode acessar os dados pessoais de qualquer outro usuário simplesmente alterando o parâmetro id na URL.

Passos de Reprodução:
1. Autenticar com uma conta de usuário padrão e obter o token JWT
2. Realizar uma requisição GET para /api/v1/users/1337/profile
3. Alterar o valor de 1337 para 1338 no endpoint
4. Observar que os dados do usuário 1338 são retornados com HTTP 200

Evidências: [Screenshot da requisição no Burp Suite mostrando o parâmetro alterado e a resposta com dados do outro usuário — Figura 1.1]

Impacto: Um atacante autenticado pode enumerar e exfiltrar dados pessoais de todos os usuários da plataforma, incluindo nome completo, endereço de email, CPF e endereço físico. O sistema possui aproximadamente 45.000 usuários cadastrados. A exposição configura violação do Art. 46 da LGPD.

Remediação: Implementar verificação de autorização no backend para confirmar que o user_id extraído do token JWT corresponde ao id solicitado no path da requisição antes de retornar os dados. Considerar o uso de UUIDs em vez de IDs sequenciais para dificultar enumeração.

Referências: OWASP API Security Top 10 — API1:2023 Broken Object Level Authorization

O que torna um finding excelente Passos de reprodução claros o suficiente para que o time de desenvolvimento consiga reproduzir e confirmar a correção. Impacto escrito em termos de negócio, não só técnico. Remediação específica e acionável — não "melhore a validação". Evidências que provam além de dúvida razoável que a vulnerabilidade existe.
Boas ferramentas de documentação reduzem o tempo de escrita do relatório pela metade. O objetivo é capturar tudo durante o teste de forma organizada, para que montar o relatório seja apenas reformatar o que já foi documentado.
Notas

CherryTree

Editor de notas hierárquico, muito usado em pentest. Permite organizar por cliente → fase → finding, com suporte a texto rico, código com syntax highlighting, e tabelas. Salva tudo em um único arquivo .ctb. Templates prontos disponíveis no GitHub (TCM Security, hwk3r).

Crie um node por finding assim que descobrir. Nunca deixe para documentar depois.
Notas

Obsidian

Editor de notas baseado em Markdown com linking entre notas. Ideal para construir uma base de conhecimento pessoal de técnicas, ferramentas e referências ao longo do tempo. Plugins como Kanban e Calendar ajudam no gerenciamento de engajamentos.

Screenshots

Flameshot (Linux)

Ferramenta de screenshot com anotações integradas — setas, destaques, texto, blur para dados sensíveis. Essencial para capturar evidências com anotações durante o teste. Atalho: configurar para Print Screen no Kali.

Relatório

Templates Prontos

Não crie do zero. TCM Security disponibiliza templates de relatório gratuitos no GitHub. O PNPT exige entrega de relatório real — praticar com o template oficial é preparação direta para o exame. PentesterLand agrega samples de relatórios públicos de bug bounty como referência.

github.com/hmaverickadams/TCM-Security-Sample-Pentest-Report
Referência

Plextrac / Writehat

Plataformas de gerenciamento de relatórios de pentest. Permitem criar bibliotecas de findings reutilizáveis, gerar PDFs formatados automaticamente, e gerenciar múltiplos clientes. Plextrac tem versão gratuita. Writehat é open-source.

Referência

HackTricks & PentesterLand

Para referências técnicas durante a escrita: HackTricks tem descrições prontas de cada tipo de vulnerabilidade. PentesterLand tem links para writeups de bug bounty reais — excelente para ver como outros documentam findings similares aos seus.

Marque conforme for avançando. O progresso fica salvo no navegador.
Documentação & Estrutura
Configurei CherryTree ou Obsidian com template de pentestEstrutura de nodes por fase e finding pronta antes de começar
Configurei Flameshot com atalho de teclado no KaliScreenshots com anotações em um clique
Fiz log automático de terminal com script ou tmuxToda sessão gravada automaticamente em arquivo
Li ao menos 3 relatórios de pentest públicosTCM templates, HackerOne reports, ou PentesterLand
Escrita de Findings
Escrevi um finding completo seguindo o modelo (título, desc, passos, impacto, remediação)Para uma vulnerabilidade real encontrada em laboratório
Calculei o CVSS score de ao menos 3 findings diferentesUsando o CVSS calculator em nvd.nist.gov
Escrevi um Executive Summary para um pentest simuladoUma página, sem jargão, compreensível para não-técnico
Entreguei um relatório completo em um lab do TryHackMe ou HackTheBoxDo recon até o relatório final com todos os findings documentados
Obtive a certificação PNPT (que exige relatório real como parte do exame)Meta final da Fase 5