Hashcat: Descifrando Contraseñas

1. Introducción a Hashcat

Hashcat es la navaja suiza del descifrado de contraseñas. Como herramienta de código abierto, permite recuperar contraseñas a partir de hashes usando métodos como fuerza bruta, diccionarios y reglas personalizadas. Es esencial para pentesters, equipos rojos y defensores que buscan evaluar la robustez de las credenciales en sus sistemas.

1.1. ¿Por qué importa?

  • Pruebas de penetración: Si obtienes un hash durante una evaluación, Hashcat te ayuda a convertirlo en texto plano.
  • Seguridad proactiva: Identifica contraseñas débiles en tus sistemas antes de que un atacante lo haga.
  • Flexibilidad: Soporta más de 300 algoritmos de hash, desde MD5 hasta bcrypt.

2. Hashing vs. Cifrado: Conceptos Clave

2.1. Hashing (Unidireccional)

  • Ejemplo
echo -n "p@sswOrd" | md5sum0f359740bd1cda994f8b55330c86d845
  • Características:
    • No reversible.
    • Misma longitud para cualquier entrada (ej: SHA-256 siempre genera 64 caracteres).
    • Algoritmos comunes: MD5, SHA-1, bcrypt, Argon2.

2.2. Cifrado (Bidireccional)

  • Ejemplo con XOR:
from pwn import xor xor("p@ssw0rd", "secret") → b'\x03%\x10\x01\x12D\x01\x01'
  • Tipos:
    • Simétrico: Misma clave para cifrar/descifrar (AES, Blowfish).
    • Asimétrico: Clave pública y privada (RSA, ECDSA).

3. Identificando Hashes con HashID

Antes de atacar, debes saber qué tipo de hash tienes. HashID es tu aliado:

pip install hashid  
hashid '$6$vb1tlY1qiY$M.1ZCqKtJBxBIZm1gRi8Bbkn39KU0YJW...'  

Salida:

[+] SHA-512 Crypt  

4. Tipos de Ataques en Hashcat

4.1. Ataque de Diccionario (-a 0)

Uso básico:

hashcat -a 0 -m 1400 sha256_hash.txt rockyou.txt  

Ejemplo práctico:

  • Generar hash SHA-256 de «lacademy»:
echo -n 'lacademy' | sha256sum > hash.txt
  • Descifrar:
hashcat -a 0 -m 1400 hash.txt /usr/share/wordlists/rockyou.txt

4.2. Ataque Combinado (-a 1)

Combina dos listas de palabras:

hashcat -a 1 -m 0 combinacion.txt lista1.txt lista2.txt  

Ejemplo:

  • Si lista1.txt tiene [«super», «world»] y lista2.txt tiene [«hello», «2023»], genera:
superhello world2023 ...

4.3. Ataque de Máscara (-a 3)

Adivina contraseñas con patrones. Marcadores útiles:

  • ?l = letras minúsculas
  • ?d = dígitos
  • ?s = caracteres especiales

Ejemplo: Para contraseñas tipo «MIEMPRESA2023»:

hashcat -a 3 -m 0 hash.txt 'MIEMPRESA?d?d?d?d'  

4.4. Modo Híbrido (-a 6 o -a 7)

Combina listas con máscaras. Ejemplo: Añadir «123» al final de cada palabra:

hashcat -a 6 -m 0 hash.txt rockyou.txt '?d?d?d'  

5. Creando Listas de Palabras Personalizadas

5.5. Herramientas Esenciales

  • Crunch: Genera palabras por patrones.
bashCopyDownloadcrunch 8 8 -t password%%% >> custom_list.txt
  • CUPP: Basado en ingeniería social (nombres, fechas, etc.).
python3 cupp.py -i
  • CeWL: Extrae palabras de sitios web.
cewl -d 5 -m 6 https://empresa.com -w palabras_empresa.txt

6. Reglas de Modificación en Hashcat

Transforma palabras de una lista con operaciones como:

  • Mayúsculasu → «pass» → «PASS».
  • Sustituciónsai@ → «password» → «p@ssword».
  • Añadir números$1 $2 → «hola» → «hola1», «hola2».

Ejemplo de regla personalizada:

c $1 $3 $5  

Aplica mayúscula al primer carácter y añade «135» al final.


7. Descifrando Hashes Comunes

7.1. Hashes de Linux (/etc/shadow)

Ejemplo SHA-512:

$6$salt$hash  

Comando:

hashcat -a 0 -m 1800 shadow_hash.txt rockyou.txt  

7.2. NTLM (Windows)

Ejemplob4b9b02e6f09a9bd760f388b67351e2b
Comando:

hashcat -a 0 -m 1000 ntlm_hash.txt rockyou.txt  

7.3. Archivos ZIP Protegidos

Extrae el hash con zip2john:

zip2john archivo.zip > zip_hash.txt  

Descifrar:

hashcat -a 0 -m 17200 zip_hash.txt rockyou.txt  

8. Wireless: Crackeando WPA/WPA2

8.1. Paso 1: Capturar Handshake

Usa airodump-ng para capturar un handshake de 4 vías.

8.2. Paso 2: Convertir a Formato HCCAPX

hcxpcapngtool -o handshake.hc22000 captura.pcap  

8.3. Paso 3: Ataque con Hashcat

hashcat -a 0 -m 22000 handshake.hc22000 rockyou.txt  

Ejemplo de éxito:

SESSION STATUS: CRACKED  
HASH: cc:40:d0:a4:d0:96:ESSID:CORP-WIFI  
PASSWORD: rockyou1  

9. Conclusión

Hashcat es una herramienta poderosa, pero con gran poder viene gran responsabilidad. Úsala éticamente, siempre con permiso, y fortalece tus propias contraseñas. ¿Listo para convertirte en un maestro del descifrado? ¡El primer paso es experimentar!

Comparte esta Publicación en Redes Sociales