Saltar al contenido
Técnicas Fundamentales
Índice de contenidos

Cracking de Hashes

Recuperar la contraseña a partir de su hash es una tarea constante: hashes de bases de datos, de ZIP/documentos, de Kerberos, de Windows (NTLM)… Esta nota reúne cómo identificar un hash y crackearlo con hashcat y John the Ripper.

Para extraer hashes de servicios ver Fuerza Bruta y, en AD, DCSync.


Paso 1 — Identificar el hash

Antes de crackear necesitas saber qué tipo es:

hashid '<hash>'
hash-identifier          # interactivo
nth --text '<hash>'      # name-that-hash (muy bueno, sugiere modos de hashcat)

Pistas rápidas por formato:

AspectoTipohashcat -m
$1$...MD5-crypt (Unix)500
$6$...SHA512-crypt (Unix, /etc/shadow)1800
$2a$/$2b$bcrypt3200
$y$/$7$yescrypt / scrypt(ver docs)
32 hexMD50
40 hexSHA1100
64 hexSHA2561400
aad3b...:31d6c...NTLM (Windows)1000
$krb5asrep$AS-REP (Kerberos)18200
$krb5tgs$TGS (Kerberoasting)13100
$NT$... / NetNTLMv2NetNTLMv2 (Responder)5600
$P$/$H$phpBB/WordPress (MD5)400

Paso 2a — hashcat (GPU, el más rápido)

# Ataque de diccionario
hashcat -m <modo> -a 0 hash.txt /usr/share/wordlists/rockyou.txt

# Diccionario + reglas (muy efectivo)
hashcat -m <modo> -a 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule

# Fuerza bruta por máscara (ej. 8 caracteres alfanuméricos)
hashcat -m <modo> -a 3 hash.txt '?l?l?l?l?l?l?l?l'

# Ver resultados ya crackeados
hashcat -m <modo> hash.txt --show

Máscaras: ?l minúscula, ?u mayúscula, ?d dígito, ?s símbolo, ?a todo.

Consejo: las reglas (best64.rule, rockyou-30000.rule) multiplican tu diccionario aplicando mutaciones (mayúsculas, añadir números/símbolos). Casi siempre revientan muchas más contraseñas que el diccionario a secas. Úsalas por defecto.


Paso 2b — John the Ripper

# Autodetecta el formato
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

# Especificar formato si no lo detecta
john --format=<formato> --wordlist=rockyou.txt hash.txt

# Con reglas
john --wordlist=rockyou.txt --rules hash.txt

# Ver crackeadas
john --show hash.txt

Utilidades “2john” (extraer el hash de un archivo)

zip2john archivo.zip > hash        # ZIP protegido
rar2john archivo.rar > hash
ssh2john id_rsa > hash             # clave SSH con passphrase
keepass2john base.kdbx > hash      # KeePass
office2john documento.docx > hash  # Office
pdf2john documento.pdf > hash      # PDF

/etc/shadow (combinar passwd + shadow)

unshadow /etc/passwd /etc/shadow > combinado.txt
john --wordlist=rockyou.txt combinado.txt
# o hashcat con el hash $6$ directamente (modo 1800)

Hashes de Windows (SAM / NTDS)

El formato volcado es usuario:RID:LM:NTLM:::. Crackea la parte NTLM (modo 1000):

hashcat -m 1000 -a 0 ntlm_hashes.txt rockyou.txt -r best64.rule

Recuerda: muchos hashes NTLM no hace falta crackearlos, se usan tal cual con Pass-the-Hash (ver Movimiento Lateral).


Herramientas relacionadas

HerramientaDescripción
hashcatCrackeo acelerado por GPU (el más rápido).
johnCrackeo versátil, autodetección y utilidades *2john.
hashid / name-that-hashIdentificar el tipo de hash.
unshadowCombinar /etc/passwd + /etc/shadow.
diccionarios/reglasrockyou.txt, SecLists, best64.rule.

Consejo: el flujo es: identificar (nth/hashid) → elegir el modo correcto → diccionario con reglas (rockyou + best64) → si no cae, máscaras o diccionarios más grandes. Y antes de perder horas crackeando un NTLM, piensa si puedes reutilizarlo directamente con Pass-the-Hash: a veces no necesitas la contraseña en claro.