hashcat
Hashcat
Section titled “Hashcat”Hashcat es el cracker de contraseñas más rápido disponible gracias a su aceleración por GPU mediante OpenCL/CUDA. Su diseño está optimizado para cracking en volumen: soporta más de 300 tipos de hash y permite combinar modos de ataque con reglas, máscaras y wordlists de forma extremadamente flexible.
Instalación
Section titled “Instalación”sudo apt install hashcat # Kali/Debianhashcat --versionhashcat --example-hashes # ver ejemplos de hash por tipoSintaxis general
Section titled “Sintaxis general”hashcat -m <hash_type> -a <attack_mode> <hashfile> [wordlist/mask]Tipos de hash (-m) más usados
Section titled “Tipos de hash (-m) más usados”-m |
Algoritmo |
|---|---|
0 |
MD5 |
100 |
SHA-1 |
1000 |
NTLM |
5600 |
Net-NTLMv2 |
5500 |
Net-NTLMv1 |
1800 |
SHA-512crypt (Linux $6$) |
3200 |
bcrypt |
13400 |
KeePass |
22000 |
WPA-PBKDF2-PMKID+EAPOL |
18200 |
AS-REP (Kerberos 5) |
13100 |
TGS-REP (Kerberoasting) |
Modos de ataque (-a)
Section titled “Modos de ataque (-a)”-a |
Modo | Descripción |
|---|---|---|
0 |
Dictionary | Wordlist sin modificar |
1 |
Combination | Combina dos wordlists |
3 |
Brute-force/Mask | Prueba todas las combinaciones de una máscara |
6 |
Hybrid wordlist+mask | Wordlist con máscara al final |
7 |
Hybrid mask+wordlist | Máscara al principio + wordlist |
Ejemplos prácticos
Section titled “Ejemplos prácticos”# Dictionary attack — NTLM con rockyouhashcat -m 1000 -a 0 ntlm.txt rockyou.txt
# Dictionary + reglashashcat -m 1000 -a 0 ntlm.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
# Mask attack — 8 chars, mayúscula + 6 minúsculas + dígitohashcat -m 1000 -a 3 ntlm.txt '?u?l?l?l?l?l?l?d'
# Hybrid — wordlist + 3 dígitos al finalhashcat -m 1000 -a 6 ntlm.txt rockyou.txt '?d?d?d'
# Kerberoasting TGShashcat -m 13100 -a 0 tgs.txt rockyou.txt
# AS-REP Roastinghashcat -m 18200 -a 0 asrep.txt rockyou.txtMáscaras — caracteres de posición
Section titled “Máscaras — caracteres de posición”| Símbolo | Conjunto |
|---|---|
?l |
Minúsculas a-z |
?u |
Mayúsculas A-Z |
?d |
Dígitos 0-9 |
?s |
Símbolos especiales |
?a |
Todos los anteriores (?l?u?d?s) |
?b |
0x00-0xff |
Se pueden definir conjuntos personalizados con -1, -2, -3, -4:
hashcat -m 1000 -a 3 -1 '?l?d' ntlm.txt '?1?1?1?1?1?1?1?1'Reglas
Section titled “Reglas”Las reglas son ficheros de texto donde cada línea define una transformación. Hashcat incluye un amplio catálogo en /usr/share/hashcat/rules/:
best64.rule— 64 reglas de alta efectividadrockyou-30000.rule— 30.000 reglas derivadas del dataset de RockYoud3ad0ne.rule— reglas orientadas a contraseñas corporativas
hashcat -m 1000 -a 0 hashes.txt rockyou.txt -r best64.rule --forceOpciones útiles
Section titled “Opciones útiles”--show # mostrar contraseñas ya crackeadas en el potfile--username # si el fichero tiene formato usuario:hash--force # ignorar warnings de driver (útil en VM)--status # mostrar progreso en tiempo real-O # optimized kernels (más rápido, límite de longitud ~32)-w 3 # workload profile (1=bajo, 4=máximo)--session nombre # guardar sesión para reanudar--restore # reanudar sesión guardadaEn máquinas virtuales hashcat puede fallar sin
--forcepor problemas de driver OpenCL. En CTF y labs añadir--forcees habitual, pero en producción conviene ejecutarlo en metal desnudo.
El potfile (
~/.hashcat/hashcat.potfile) almacena todos los hashes crackeados. Si un hash ya está en el potfile, hashcat no lo vuelve a procesar; eliminar el potfile o usar--potfile-disablepara forzar re-cracking.