Hashcat o John the Ripper: ¿qué cracker usar?
Comparación práctica de hashcat y John the Ripper: fortalezas en GPU y CPU, detección automática, modos -m, formatos jumbo, diccionarios y reglas, con comandos de ejemplo.
Una vez identificado el hash, la siguiente decisión es qué herramienta dirigir contra él. Los dos crackers de contraseñas dominantes son hashcat y John the Ripper. Se solapan mucho, pero cada uno tiene su punto fuerte, y saber cuál usar ahorra mucho tiempo.
En qué se diferencian las dos herramientas
Hashcat prioriza la GPU. Está diseñado para saturar una o varias tarjetas gráficas, y sobre hashes rápidos y sin sal ese rendimiento es enorme. La contrapartida: hashcat es explícito, debes indicarle el algoritmo con un modo numérico -m. No hay detección automática; tú proporcionas el modo obtenido al identificar el hash.
John the Ripper prioriza la CPU y la comodidad. La versión comunitaria «jumbo» admite un catálogo enorme de formatos, muchos que hashcat no cubre, y detecta automáticamente el formato del archivo en la mayoría de los casos. John también incluye las utilidades *2john (zip2john, pdf2john, etc.) que extraen un hash descifrable de un archivo contenedor.
Una regla práctica razonable: usa hashcat cuando dispongas de una GPU y un hash común y rápido como MD5 o SHA-256; usa John cuando estés en CPU, ante un formato inusual, o quieras que la detección automática piense por ti.
Comandos de ejemplo
Un ataque de diccionario directo en hashcat contra un resumen MD5 (modo 0):
hashcat -m 0 -a 0 hash.txt rockyou.txt
Para NTLM solo cambias el modo a 1000; para bcrypt es 3200. El número correspondiente figura en cada página de tipo de hash.
El equivalente en John the Ripper, dejando que detecte el formato, es simplemente:
john --wordlist=rockyou.txt hash.txt
Si quieres fijar el formato de forma explícita —útil cuando la detección duda, por ejemplo entre MD5 en bruto y NTLM— nómbralo:
john --format=nt --wordlist=rockyou.txt hash.txt
Diccionarios y reglas
Ambas herramientas valen tanto como los candidatos que les des. Un diccionario aporta las conjeturas base; las reglas las mutan —añadiendo dígitos, sustituyendo letras por símbolos o alternando mayúsculas— de modo que una sola entrada como password se expande en Password1, p@ssw0rd y miles de variantes. Añade reglas con -r best64.rule en hashcat o --rules en John.
Los algoritmos lentos y con sal como sha512crypt resisten la fuerza bruta por diseño, así que contra ellos un diccionario inteligente guiado por reglas gana siempre a la velocidad bruta. Si la diferencia entre hashes rápidos y lentos te resulta nueva, el siguiente artículo —por qué los hashes rápidos son peligrosos— explica con precisión por qué la elección del algoritmo domina todo el cálculo.