Força bruta: online e offline
⏱️ Tempo de leitura: ~7 min
Uma senha cai de dois jeitos: tentando ao vivo no login (online) ou quebrando o hash roubado na sua máquina (offline). Aqui você faz os dois.
Pré-requisitos
- Ter feito as páginas anteriores desta aula
nmap,hydraehashcatno Kali, com arockyoupronta (setup no dever da Aula 2)
O alvo: DVWA
Desta vez o alvo é o DVWA (Damn Vulnerable Web Application), outro app feito pra treinar. Suba com Docker:
Acesse http://localhost, entre com admin / password, clique em Create / Reset Database e, na aba DVWA Security, deixe em Low.
Recon primeiro (Nmap)
Antes de atacar, veja o que a caixa expõe:
A porta 80 aparece com um servidor web — é onde mora o login. Num alvo real o Nmap acha várias portas; aqui o ponto é o hábito: escaneie antes de bater na porta.
Dois caminhos pra mesma senha
| Online (Hydra) | Offline (Hashcat) | |
|---|---|---|
| Contra o quê | o login ao vivo | um hash que você roubou |
| Velocidade | lento (rede + servidor) | rápido (sua máquina) |
| Barulho | alto (o servidor loga tudo) | nenhum |
Se dá pra pegar o hash e quebrar offline, é quase sempre o melhor caminho.
Hashcat: quebrar o hash (offline)
O DVWA guarda as senhas como MD5 sem salt (lembra da Aula 2 por que isso é um problema?). Digamos que você dumpou a tabela de usuários — você aprende a fazer isso na Aula 6 — e saiu com estes hashes:
admin:5f4dcc3b5aa765d61d8327deb882cf99
gordonb:e99a18c428cb38d5f260853678922e03
pablo:0d107d09f5bbe40cade3de5c71e9e9b7
Salve as três linhas num hashes.txt e rode (-m 0 = MD5; --username ignora o nome antes dos :):
Hydra: adivinhar ao vivo (online)
Sem o hash, dá pra martelar o login direto. O DVWA tem uma página de treino de brute force em /vulnerabilities/brute/ — um login vulnerável de mentirinha, feito pra você atacar.
Só que essa página fica dentro do DVWA: pra chegar nela, você precisa já estar logado no DVWA. É por isso que o Hydra manda junto o seu cookie de sessão (PHPSESSID) — ele é a prova de que você é o admin logado (o mesmo cookie de sessão da Aula 2). O cookie serve só pra alcançar a sala de treino; num alvo real o login é público e você não precisaria disso.
Pegue o PHPSESSID da sua sessão logada (F12 → aba Application → Cookies) e rode:
hydra -l admin -P /usr/share/wordlists/rockyou.txt localhost \
http-get-form "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:H=Cookie: PHPSESSID=SEU_ID; security=low:F=Username and/or password incorrect."
O Hydra testa a rockyou contra o login e acha admin : password — a mesma senha que o hashcat quebrou, só que ao vivo, sem ter o hash. Repare que é mais lento que o offline, e o servidor registra cada tentativa (nada discreto).
💡 Se em algum momento aparecer "CSRF token is incorrect", é uma defesa do DVWA: um código que muda a cada requisição pra impedir requisições forjadas. Garanta que sua sessão está logada e em Low que o Hydra funciona.
Desafio — Recupere as senhas
Você dumpou os três hashes acima do DVWA. Quebre-os e recupere as senhas — inclusive as que você jamais adivinharia.
💡 Dica
Cada hash tem 32 caracteres hex: é MD5. Jogue o arquivo no hashcat com a rockyou (-m 0 --username).
✅ Solução
O hashcat quebra os três: password (admin), abc123 (gordonb) e letmein (pablo). Teste admin / password no módulo Brute Force (/vulnerabilities/brute/) — aparece "Welcome to the password protected area admin". Você entrou como admin com a senha que quebrou, não adivinhou. E ainda saiu com contas que jamais chutaria: é o preço de guardar hash sem salt — um dump de banco vira acesso total.
Fim da Aula 4
Você mapeou (Nmap + Gobuster), interceptou (Burp) e quebrou credenciais de dois jeitos — offline com Hashcat e ao vivo com Hydra.
A próxima aula sai da técnica pura e entra no elo mais fraco de qualquer sistema: as pessoas. A Aula 5 é sobre ética, engenharia social e phishing.