🔐 Introducción a Hashcat
Hashcat es una herramienta popular para descifrar contraseñas en Linux, Windows y macOS. Desde 2009 hasta 2015 fue propietario, y ahora es código abierto. Tiene un gran soporte para GPU y múltiples modos de ataque.
🖥️ Sintaxis básica
hashcat -a <modo_de_ataque> -m <tipo_hash> <hashes> [wordlist, rule, mask, ...]
-
-a→ Modo de ataque -
-m→ Tipo de hash -
<hashes>→ Hash(es) a descifrar -
[wordlist, rule, mask...]→ Opciones según el ataque
🔢 Tipos de hash
Primero debemos saber a que tipo de hash nos enfretamos
Hashcat soporta cientos de tipos de hash, cada uno con un ID único.
Ejemplo:
hachcat --help
Algunos IDs comunes:
-
0→ MD5 -
100→ SHA1 -
1400→ SHA2-256 -
500→ MD5 Crypt -
1700→ SHA2-512
💡 Consejo: Usa hashID para identificar hashes automáticamente:
hashid -m '$1$FNr44XZC$wQxY6HHLrgrGX0e1195k.1'
🏹 Modos de ataque
1️⃣ Ataque de diccionario (-a 0)
👉 Usa listas de palabras conocidas (ej. rockyou.txt):
hashcat -a 0 -m 0 hash.txt /usr/share/wordlists/rockyou.txt
⚙️ Con reglas (rules) que modifican palabras automáticamente:
hashcat -a 0 -m 0 hash2.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule
📌 best64.rule → 64 modificaciones típicas (agregar números, reemplazar letras por "leet", etc.)
2️⃣ Ataque con máscara (-a 3)
👉 Se define un patrón de caracteres para probar combinaciones más específicas.
| Symbol | Charset |
|---|---|
| ?l | abcdefghijklmnopqrstuvwxyz |
| ?u | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| ?d | 0123456789 |
| ?h | 0123456789abcdef |
| ?H | 0123456789ABCDEF |
| ?s | «space»!"#$%&'()*+,-./:;<=>?@[]^_`{ |
| ?a | ?l?u?d?s |
| ?b | 0x00 - 0xff |
| Ejemplo: contraseña con mayúscula, 4 minúsculas, un número y un símbolo: |
hashcat -a 3 -m 0 hash3.txt '?u?l?l?l?l?d?s'
