Quebrando Hashes com Hashcat para Comparação
Embora o John the Ripper seja uma ferramenta excelente, é uma boa prática estar familiarizado com alternativas como o Hashcat. O Hashcat é renomado por sua velocidade, especialmente em sistemas com GPUs. Aqui, realizaremos o mesmo ataque de dicionário usando o Hashcat.
O Hashcat prefere um arquivo limpo contendo apenas os valores de hash. Use o comando awk para extrair o segundo campo (o hash) de sample_hashes.txt e salvá-lo em um novo arquivo, clean_hashes.txt.
awk -F':' '{print $2}' /root/sample_hashes.txt > /root/clean_hashes.txt
Verifique o conteúdo do novo arquivo.
cat /root/clean_hashes.txt
A saída deve conter apenas as strings de hash:
$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0
$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/
Agora, execute o Hashcat. Você precisa especificar o modo de hash (-m 1800 para SHA-512 crypt) e o modo de ataque (-a 0 para um ataque de dicionário direto).
hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1800 (sha512crypt $6$, SHA512 (Unix))
Hash.Target......: /root/clean_hashes.txt
Time.Started.....: Mon Sep 1 06:33:21 2025 (0 secs)
Time.Estimated...: Mon Sep 1 06:33:21 2025 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/root/custom_wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 226 H/s (5.08ms) @ Accel:8 Loops:1024 Thr:1 Vec:8
Recovered........: 2/2 (100.00%) Digests (total), 1/2 (50.00%) Digests (new), 2/2 (100.00%) Salts
Progress.........: 6/12 (50.00%)
Rejected.........: 0/6 (0.00%)
Restore.Point....: 0/6 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:4096-5000
Candidate.Engine.: Device Generator
Candidates.#1....: password -> password123
O Hashcat iniciará a sessão de quebra. Como nossa wordlist contém as senhas corretas (password e 123456), o Hashcat deve quebrar esses hashes muito rapidamente. Depois que terminar, visualize as senhas quebradas executando o mesmo comando com a flag --show.
hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt --show
Se o ataque for bem-sucedido, o Hashcat exibirá o hash seguido pela senha quebrada, separados por dois pontos:
$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0:password
$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/:123456
Esta etapa apresentou o Hashcat como uma alternativa poderosa para a quebra de senhas. Na etapa final, você aprenderá a documentar adequadamente suas descobertas.