La semana pasada me tocó ayudar en una auditoría de seguridad donde necesitábamos verificar la fortaleza de las contraseñas en una base de datos comprometida. El cliente tenía los hashes MD5 de las contraseñas de sus usuarios, y necesitaba saber qué tan vulnerables estaban realmente. Ahí es donde Hashcat se convierte en tu mejor amigo.
Disclaimer importante: Este tutorial está dirigido a profesionales de seguridad, auditores, y investigadores forenses que trabajen en casos legítimos y autorizados. Usar estas técnicas sin autorización explícita es ilegal y puede meterte en serios problemas. No soy responsable del mal uso de esta información.
¿Qué es Hashcat y por qué es tan poderoso?
Hashcat es probablemente la herramienta más avanzada para recuperación de contraseñas que existe. No es como esos programas que ves en las películas donde hackean la NASA en 30 segundos. Es una herramienta seria, con capacidades serias, para profesionales serios.
Lo que hace Hashcat especial es su capacidad de usar GPU para acelerar los ataques. Mientras tu CPU puede probar tal vez 100,000 hashes por segundo, una GPU moderna puede probar millones. La diferencia es abismal.
Durante mis años estudiando seguridad informática, vi muchas herramientas. Pero Hashcat es esa herramienta que te hace sentir como Tony Stark la primera vez que se pone el traje de Iron Man. Es poderosa, elegante, y un poco intimidante.
Instalación: más fácil de lo que parece
En Linux (que es donde realmente deberías estar haciendo esto), la instalación es directa:
# Ubuntu/Debian
sudo apt update
sudo apt install hashcat
# Para usar GPU (NVIDIA)
sudo apt install nvidia-opencl-dev
# Verificar instalación
hashcat --version
En Windows también funciona, pero hermano, si vas a hacer investigaciones forenses en serio, aprende a usar Linux. Te va a ahorrar muchos dolores de cabeza.
Configuración de GPU
Si tienes una GPU NVIDIA o AMD moderna, Hashcat puede aprovecharla. La diferencia de velocidad es brutal:
# Ver dispositivos disponibles
hashcat -I
# Benchmark para ver qué tan rápido va tu hardware
hashcat -b
Mi GTX 1660 procesa MD5 a unos 8 billion hashes por segundo. Con solo CPU llegaría tal vez a 200 million. Es como comparar un Tsuru con un Tesla.
Tipos de hash más comunes en investigaciones
En investigaciones forenses te vas a encontrar principalmente con estos tipos de hash:
- MD5 (modo 0): Viejo, rápido de romper, todavía muy común
- SHA1 (modo 100): Un poco mejor que MD5, pero también vulnerable
- SHA256 (modo 1400): Más seguro, pero no imposible
- bcrypt (modo 3200): Diseñado para ser lento, más difícil de crackear
- NTLM (modo 1000): Usado en Windows, moderadamente seguro
Para identificar el tipo de hash, puedes usar el comando hashcat --example-hashes
o herramientas online como hash-identifier.
Metodología de ataque: del más simple al más complejo
Ataque de diccionario: el punto de partida
Siempre empiezo con ataques de diccionario. Es sorprendente cuántas contraseñas "seguras" están en diccionarios comunes:
# Descarga rockyou.txt (el diccionario más popular)
wget https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# Ataque básico de diccionario
hashcat -m 0 -a 0 hashes.txt rockyou.txt
# Con reglas para variaciones comunes
hashcat -m 0 -a 0 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
En una auditoría reciente, crackeé el 40% de los hashes MD5 solo con rockyou.txt. Contraseñas como "password123", "admin2022", "empresa123" siguen siendo deprimentemente comunes.
Ataque de fuerza bruta: cuando el diccionario no es suficiente
Para contraseñas más complejas, necesitas fuerza bruta. Pero ojo, esto puede tomar tiempo. MUCHO tiempo:
# Fuerza bruta con caracteres específicos
hashcat -m 0 -a 3 hashes.txt ?l?l?l?l?d?d?d?d
# Donde:
# ?l = letra minúscula
# ?u = letra mayúscula
# ?d = dígito
# ?s = símbolo especial
Un ataque de fuerza bruta para contraseñas de 8 caracteres con letras y números puede tomar días. Para 10 caracteres con símbolos, pueden ser años. La matemática es despiadada.
Ataque híbrido: combinando estrategias
Los ataques híbridos combinan diccionarios con fuerza bruta. Son especialmente efectivos contra contraseñas como "password2023" o "admin!123":
# Diccionario + números al final
hashcat -m 0 -a 6 hashes.txt rockyou.txt ?d?d?d?d
# Números al inicio + diccionario
hashcat -m 0 -a 7 hashes.txt ?d?d?d rockyou.txt
Casos de uso en investigaciones forenses
Análisis de bases de datos comprometidas
Cuando una empresa sufre una brecha de datos, es crucial evaluar el impacto real. No es lo mismo que roben hashes bcrypt que hashes MD5. Con Hashcat puedes determinar:
- Qué porcentaje de contraseñas son fácilmente crackeables
- Qué usuarios tienen contraseñas débiles
- Si los atacantes podrían acceder a cuentas específicas
Auditorías de seguridad proactivas
En auditorías preventivas, Hashcat te ayuda a identificar usuarios con contraseñas débiles antes de que sea tarde. Es como un examen médico para la seguridad de contraseñas.
Análisis de evidencia digital
En investigaciones criminales, a menudo necesitas acceder a dispositivos protegidos por contraseña. Hashcat puede ayudar a recuperar contraseñas de archivos ZIP, documentos Office, o bases de datos cifradas.
Optimización y trucos avanzados
Usar múltiples GPUs
Si tienes varias GPUs, Hashcat puede usarlas todas:
# Usar todas las GPUs disponibles
hashcat -m 0 -a 0 hashes.txt rockyou.txt -d 1,2,3
Manejo de sesiones
Para ataques que pueden tomar días, las sesiones son cruciales:
# Crear una sesión
hashcat -m 0 -a 0 hashes.txt rockyou.txt --session=audit2023
# Reanudar sesión
hashcat --session=audit2023 --restore
# Ver progreso
hashcat --session=audit2023 --status
Filtros y optimizaciones
Para acelerar el proceso, puedes filtrar candidatos improbables:
# Solo contraseñas de 8+ caracteres
hashcat -m 0 -a 0 hashes.txt rockyou.txt --pw-min=8
# Rechazar contraseñas muy largas que ralentizan el proceso
hashcat -m 0 -a 0 hashes.txt rockyou.txt --pw-max=15
Aspectos éticos y legales
No puedo enfatizar esto suficiente: Hashcat es una herramienta poderosa que debe usarse responsablemente. Algunas reglas básicas:
- Solo en sistemas autorizados: Siempre ten autorización escrita
- Respeta la privacidad: Los datos obtenidos son confidenciales
- Documenta todo: Mantén registros de qué hiciste y cuándo
- Limita el acceso: No compartas contraseñas recuperadas innecesariamente
En mis proyectos, siempre firmo acuerdos de confidencialidad y mantengo los datos en sistemas aislados. La reputación profesional vale más que cualquier curiosidad técnica.
Herramientas complementarias
Hashcat es poderoso, pero trabaja mejor con otras herramientas:
- John the Ripper: Para casos donde Hashcat no es suficiente
- Hashcat-utils: Scripts útiles para manipular wordlists
- Crunch: Para generar wordlists personalizadas
- Mentalist: GUI para crear reglas de ataque complejas
Limitaciones y realidades
Hashcat no es mágico. Hay contraseñas que simplemente no se pueden crackear en tiempo razonable. Una contraseña aleatoria de 12 caracteres con letras, números y símbolos puede tomar décadas, incluso con hardware potente.
También, algunos algoritmos como bcrypt están diseñados específicamente para ser lentos. Mientras puedes hacer billions de intentos por segundo contra MD5, contra bcrypt tal vez solo hundreds.
La clave está en entender cuándo vale la pena el esfuerzo y cuándo es mejor buscar otras vías de investigación.
¿Has usado Hashcat en investigaciones legítimas? ¿Qué resultados has obtenido en auditorías de seguridad? Me interesa conocer experiencias reales con esta herramienta, especialmente en entornos corporativos latinoamericanos.
Comentarios
Comparte tu opinión
No hay comentarios aún
Sé el primero en compartir tu opinión sobre este artículo.