Descifrado de hashes con Hashcat para comparación
Aunque John the Ripper es una herramienta excelente, es una buena práctica familiarizarse con alternativas como Hashcat. Hashcat es famoso por su velocidad, especialmente en sistemas con GPUs. Aquí, realizaremos el mismo ataque de diccionario utilizando Hashcat.
Hashcat prefiere un archivo limpio que contenga solo los valores de los hashes. Utiliza el comando awk para extraer el segundo campo (el hash) de sample_hashes.txt y guárdalo en un nuevo archivo, clean_hashes.txt.
awk -F':' '{print $2}' /root/sample_hashes.txt > /root/clean_hashes.txt
Verifica el contenido del nuevo archivo.
cat /root/clean_hashes.txt
La salida debería contener solo las cadenas de los hashes:
$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0
$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/
Ahora, ejecuta Hashcat. Debes especificar el modo de hash (-m 1800 para SHA-512 crypt) y el modo de ataque (-a 0 para un ataque de diccionario directo).
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
Hashcat iniciará la sesión de descifrado. Dado que nuestra lista de palabras contiene las contraseñas correctas (password y 123456), Hashcat debería descifrar estos hashes muy rápidamente. Una vez que termine, visualiza las contraseñas descifradas ejecutando el mismo comando con el parámetro --show.
hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt --show
Si el ataque tiene éxito, Hashcat mostrará el hash seguido de la contraseña descifrada, separados por dos puntos:
$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0:password
$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/:123456
Este paso te ha presentado a Hashcat como una potente alternativa para el descifrado de contraseñas. En el paso final, aprenderás a documentar adecuadamente tus hallazgos.