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.
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.
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).
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.
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
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.
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.
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.
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)
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.
| Diretório | O que contém | Relevância em Pentest |
|---|---|---|
| /etc | Arquivos de configuração do sistema | /etc/passwd (usuários), /etc/shadow (hashes de senha), /etc/crontab (tarefas agendadas) |
| /home | Diretórios dos usuários | Chaves SSH em ~/.ssh/, histórico em ~/.bash_history, credenciais em dotfiles |
| /var | Dados variáveis (logs, emails, web) | /var/log/ (logs de autenticação), /var/www/html (arquivos web) |
| /tmp | Temporários (qualquer usuário pode escrever) | Local padrão para dropar exploits e payloads — sempre com permissão de escrita |
| /proc | Informações dos processos em execução | /proc/net/tcp (conexões ativas), /proc/self/environ (variáveis de ambiente do processo) |
| /usr/bin, /bin | Binários do sistema | Binários com SUID são alvo de privesc. find / -perm -4000 2>/dev/null |
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
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
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
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.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
Automação
Scripts automatizam recon repetitivo. Você vai escrever scripts para varrer ranges de IP, testar credenciais em lista, e parsear outputs do Nmap.
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.
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.
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.
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.
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)
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.
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 — 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.
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
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.
| # | Categoria | Em poucas palavras | Exemplo prático |
|---|---|---|---|
| A01 | Broken Access Control | Usuário acessa recursos que não deveria | IDOR: mudar /perfil/123 para /perfil/124 e ver dados de outro usuário |
| A02 | Cryptographic Failures | Dados sensíveis sem criptografia adequada | Senhas em MD5, HTTP sem TLS, chaves hardcoded no código |
| A03 | Injection | Input do usuário executado como código | SQL: ' OR 1=1-- · XSS: <script>alert(1)</script> · Command injection |
| A04 | Insecure Design | Falhas de design arquitetural — não apenas código | Falta de rate limiting, ausência de verificação de email, lógica de negócio quebrada |
| A05 | Security Misconfiguration | Configurações padrão inseguras, headers ausentes | CORS aberto, server_tokens on, debug habilitado em produção, admin/admin |
| A06 | Vulnerable Components | Dependências desatualizadas com CVEs públicos | Log4Shell, Spring4Shell — frameworks populares com CVE crítico |
| A07 | Authn & Identity Failures | Problemas em autenticação e gerência de sessão | JWT sem assinatura, tokens previsíveis, sem 2FA, logout não invalida sessão |
| A08 | Software Integrity Failures | Código/dependências sem verificação de integridade | Supply chain attacks — pacotes npm maliciosos, CI/CD sem verificação |
| A09 | Security Logging Failures | Ausência de logs ou monitoramento insuficiente | Logins falhos sem alerta, ações críticas sem registro |
| A10 | SSRF | Servidor faz requisição para URL controlada pelo atacante | URL field que aceita http://169.254.169.254 → AWS metadata |
🔴 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.
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.
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.
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 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.