Hashcat – El recuperador de contraseñas más rápido del mundo con aceleración por GPU
Descripción del programa Hashcat
Hashcat es una herramienta de recuperación de contraseñas de código abierto, reconocida mundialmente como la más rápida del mercado gracias a su capacidad para aprovechar la aceleración por GPU (tarjetas gráficas). Fue creada originalmente por Jens Steube («atom»), con su primera versión lanzada en 2009. Inicialmente era de código cerrado, pero se convirtió en código abierto en diciembre de 2015, lo que impulsó su adopción masiva en la comunidad de seguridad informática.
Su principal fortaleza radica en ser una navaja suiza para la recuperación de contraseñas. Soporta más de 300 algoritmos de hash altamente optimizados y cinco modos de ataque distintos. A diferencia de herramientas más tradicionales como John the Ripper, Hashcat está diseñado para explotar la potencia masiva de las GPUs modernas (NVIDIA CUDA, AMD ROCm, OpenCL) y también puede ejecutarse en CPUs, FPGAs y otros aceleradores hardware.
El 7 de agosto de 2025 se lanzó la versión Hashcat 7.0.0, considerada una de las actualizaciones más importantes en años, introduciendo un «Assimilation Bridge» para integrar recursos externos y un plugin en Python para extender su funcionalidad sin necesidad de tocar el código C original.
¿Necesitas auditar la seguridad de tus contraseñas o recuperar acceso a tus propios archivos utilizando la herramienta de cracking más rápida del planeta?
Características clave de Hashcat
1. Cinco modos de ataque especializados
Hashcat ofrece una gama completa de estrategias de ataque para adaptarse a diferentes escenarios:
- Ataque de Diccionario (
-a 0): Es el modo más común. Compara los hashes contra una lista de palabras predefinida (por ejemplo,rockyou.txt). - Ataque de Combinación (
-a 1): Combina palabras de dos diccionarios diferentes (ej. «password» + «123» = «password123»). - Ataque de Fuerza Bruta con Máscara (
-a 3): Genera todas las combinaciones posibles dentro de un espacio definido. Es extremadamente potente para contraseñas cortas o con un patrón conocido. - Ataque Híbrido (
-a 6y-a 7): Mezcla un diccionario con una máscara. Por ejemplo, toma una palabra de un diccionario y le añade dígitos al final (-a 6), o viceversa (-a 7).
2. Aceleración masiva por GPU
La verdadera revolución es su capacidad para usar la Unidad de Procesamiento Gráfico (GPU). Mientras que los procesadores (CPU) tienen unos pocos núcleos potentes, las GPUs tienen miles de núcleos pequeños ideales para cálculos repetitivos. Esto permite probar miles de millones de contraseñas por segundo, superando con creces a las herramientas basadas exclusivamente en CPU.
La versión 7.0.0 introdujo una característica llamada GPU Partitioning (Particionado de GPU), que permite dividir una sola GPU física en unidades lógicas más pequeñas. Esto posibilita ejecutar múltiples ataques en paralelo en la misma tarjeta gráfica o asignar recursos de cómputo a diferentes tareas simultáneamente.
3. Más de 300 tipos de hash soportados
Hashcat puede descifrar prácticamente cualquier tipo de hash que exista. Los más comunes incluyen:
| Tipo de Hash | Modo (-m) | Uso Común |
|---|---|---|
| MD5 | 0 | Hashing genérico, checksums |
| SHA-256 | 1400 | Firmas digitales, certificados |
| NTLM | 1000 | Contraseñas de Windows |
| sha512crypt | 1800 | Contraseñas de Linux (/etc/shadow) |
| bcrypt | 3200 | Hashing de contraseñas moderno (lento por diseño) |
| Kerberos TGS-REP | 13100 | Autenticación en redes Windows (Golden Ticket) |
La versión 7.0.0 añadió soporte para 58 nuevos tipos de hash, incluyendo Argon2 (el ganador de la competencia de hashing de contraseñas), LUKS2 (cifrado de discos en Linux), MetaMask (wallets de criptomonedas) y OpenSSH (claves privadas).
4. Herramientas de extracción integradas (El ecosistema *2hashcat)
Hashcat no solo descifra, sino que también incluye un ecosistema de utilidades para extraer los hashes de archivos protegidos. Existen herramientas como zip2hashcat para archivos ZIP, rar2hashcat para RAR, pdf2hashcat para documentos PDF, office2hashcat para documentos de Microsoft Office, y bitlocker2hashcat para unidades cifradas con BitLocker. Estas utilidades convierten el archivo cifrado en un «hash» que puede entender y atacar.
5. Sistema de reglas para mutación inteligente
El sistema de reglas es una de las características más avanzadas. En lugar de tener un diccionario gigante que contiene «password», «Password», «password123», etc., puede generar estas variaciones sobre la marcha usando reglas. Por ejemplo, con una sola línea de regla ($1 $2 $3 para añadir «123»), cualquier palabra del diccionario se prueba automáticamente con «123» al final, multiplicando exponencialmente la efectividad del ataque sin ocupar espacio en disco.
6. Novedades de la versión 7.0.0: Python Bridge y Auto-Detección
La versión 7.0.0, lanzada en agosto de 2025, incluye dos innovaciones revolucionarias:
- Auto-Detección de Hash-Mode: Anteriormente, el usuario debía especificar manualmente el tipo de hash con el flag
-m. Ahora, puede detectar automáticamente el algoritmo de hash, eliminando conjeturas y errores humanos. - Python Bridge Plugin: Permite a los desarrolladores escribir lógica de hash personalizada en Python sin necesidad de recompilar el código C. Esto abre la herramienta a una comunidad mucho más amplia de desarrolladores y facilita la integración de nuevos algoritmos.
Explicación detallada de las funcionalidades
La arquitectura de Hashcat está diseñada para ser extremadamente modular y eficiente. El flujo de trabajo típico consta de tres pasos: extracción, ataque y análisis.
Extracción del hash (*2hashcat):
El proceso comienza con la obtención del hash. Si el objetivo es un archivo protegido (como un ZIP o un PDF), se utiliza la herramienta específica para extraer su representación hash. Por ejemplo, para un archivo ZIP:
zip2hashcat documento_secreto.zip > hash.txtEste comando genera un archivo hash.txt que contiene el hash en un formato que Hashcat puede procesar.
Selección del modo de ataque (-a):
Dependiendo de la información que se tenga sobre la contraseña, se elige un modo de ataque. Un ataque de diccionario simple sería:
hashcat -m 0 -a 0 hash.txt rockyou.txtAquí, -m 0 indica que es un hash MD5, -a 0 un ataque de diccionario, y rockyou.txt es la lista de palabras.
Ataque de fuerza bruta con máscara (-a 3):
Si se sabe que la contraseña tiene exactamente 8 caracteres y solo contiene letras minúsculas y números, se puede usar un ataque de máscara:
hashcat -m 0 -a 3 hash.txt '?l?l?l?l?l?l?l?l'En este caso, ?l representa una letra minúscula. Para añadir números, se usaría ?l?l?l?l?l?l?l?d. La potencia del ataque de máscara es que no depende de un diccionario, sino que explora sistemáticamente todo el espacio de combinaciones.
Gestión de sesiones y resultados (--show, --restore):
Hashcat guarda automáticamente las contraseñas ya descifradas en un archivo llamado hashcat.potfile. Para ver los resultados, se usa --show:
hashcat -m 0 hash.txt --showSi el proceso se interrumpe, se puede reanudar exactamente donde se quedó con --restore, una funcionalidad esencial para ataques que pueden durar días o semanas.
Uso de reglas (-r):
Para un ataque más inteligente, se pueden aplicar reglas de mutación al diccionario. Por ejemplo, la regla best64.rule contiene 64 transformaciones comunes (como probar la palabra en mayúsculas, añadir números, etc.). El comando sería:
hashcat -m 1000 -a 0 -r /usr/share/hashcat/rules/best64.rule hashes.txt rockyou.txtEsto es mucho más eficiente que tener un diccionario con todas esas variantes.
Descarga e instalación de Hashcat
- Página oficial: hashcat.net / GitHub
- Versión actual: 7.0.0 (lanzada el 7 de agosto de 2025)
- Tamaño: Variable (unos pocos MB para los binarios; las wordlists pueden ocupar GB).
- Sistemas operativos compatibles: Linux, Windows (binarios precompilados), macOS (Intel y Apple Silicon), Docker.
- Instalación en Kali/Debian/Ubuntu:
sudo apt update && sudo apt install hashcat(versión estable). - Instalación en macOS (Homebrew):
brew install hashcat. - Instalación desde fuente:
git clone https://github.com/hashcat/hashcat.git
cd hashcat
make
sudo make install- Licencia: MIT License – Código abierto y gratuito.
- Soporte técnico: Foros de Hashcat, documentación oficial, canales de Discord/IRC de la comunidad.
Requisitos para aceleración GPU: Para aprovechar la GPU, se necesitan los drivers adecuados:
- NVIDIA: Drivers propietarios + CUDA Toolkit o OpenCL.
- AMD: Drivers ROCm (recomendado) o OpenCL.
- Intel: OpenCL runtime (para gráficos integrados).
Cómo usar Hashcat
⚠️ Advertencia ética: Hashcat es una herramienta de auditoría de seguridad. Solo debe utilizarse contra sistemas de los que se es propietario o se tiene autorización explícita por escrito. El uso no autorizado constituye un delito informático.
Paso 1: Verificar la instalación y los dispositivos
Ejecuta el comando de benchmark para comprobar que Hashcat reconoce tus GPUs/CPUs y para medir su rendimiento:
hashcat -bEsto probará todos los algoritmos de hash en tu hardware y te mostrará la velocidad de cracking (en H/s, hashes por segundo). Un resultado de millones de H/s indica que la GPU está siendo utilizada correctamente.
Paso 2: Extraer el hash del objetivo
Supongamos que tienes un archivo ZIP protegido con contraseña. Utiliza la utilidad específica para extraer su hash:
# Instalar las herramientas de extracción (vienen con Hashcat)
zip2hashcat archivo.zip > hash.txtPara otros formatos, el comando cambia: rar2hashcat, pdf2hashcat, office2hashcat, etc.
Paso 3: Seleccionar el modo de ataque (Ejemplo: Diccionario)
Primero, asegúrate de tener un diccionario. El más famoso es rockyou.txt, que viene en Kali Linux en /usr/share/wordlists/rockyou.txt.gz. Descomprímelo:
sudo gunzip /usr/share/wordlists/rockyou.txt.gzAhora, ejecuta el ataque de diccionario, asumiendo que el hash es MD5 (-m 0):
hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt-m 0: Tipo de hash MD5.-a 0: Modo de ataque de diccionario.hash.txt: Archivo que contiene el hash extraído.rockyou.txt: El diccionario.
Paso 4: Ataque de fuerza bruta con máscara (Ejemplo: PIN de 4 dígitos)
Si sabes que la contraseña es un PIN de 4 dígitos, puedes usar un ataque de máscara en lugar de un diccionario:
hashcat -m 0 -a 3 hash.txt?d?d?d?d-a 3: Modo de fuerza bruta con máscara.?d?d?d?d: Representa cuatro dígitos (del 0000 al 9999). Para contraseñas más complejas, se usan?l(minúscula),?u(mayúscula),?s(símbolos).
Paso 5: Ver los resultados
Una vez que ha encontrado la contraseña, muéstrala con:
hashcat -m 0 hash.txt --showSi la contraseña era «password123», la salida será similar a:
hash.txt:password123Paso 6: Reanudar una sesión
Si el ataque es muy largo (ej. fuerza bruta de 8 caracteres) y necesitas detenerlo, usa Ctrl+C. Para reanudarlo después:
hashcat --restoreHashcat retomará el ataque exactamente por donde lo dejó.
Observaciones sobre el programa Hashcat
Frente a otras herramientas de cracking como John the Ripper, es el rey indiscutible de la velocidad. Los estudios comparativos muestran que es significativamente más rápido en ataques de fuerza bruta gracias a su optimización para GPU. Mientras que John the Ripper es más versátil para tareas de extracción y ataques iniciales con CPU, Hashcat es la herramienta elegida para el «cracking pesado», donde cada segundo de velocidad cuenta.
Para el profesional de seguridad, el beneficio práctico de usarlo es la reducción masiva del tiempo de auditoría. Una contraseña de 8 caracteres que podría tardar meses en romperse con una CPU, puede ser descifrada en días u horas con una GPU moderna de alta gama.
La comunidad de Hashcat es extremadamente activa. La versión 7.0.0 es un testimonio de ello, con contribuciones de 105 desarrolladores, incluyendo 74 que contribuyeron por primera vez. El proyecto tiene más de 900,000 líneas de código y sigue evolucionando a un ritmo acelerado.
En cuanto a las mejoras de rendimiento, la versión 7.0.0 introdujo ganancias espectaculares en algoritmos específicos:
- scrypt: hasta un 320% más rápido.
- NetNTLMv2: hasta un 223% más rápido.
- RAR3: hasta un 54% más rápido.
También se eliminó el antiguo límite de 4GB para la asignación de memoria, lo que permite manejar ataques mucho más grandes y complejos.
Limitaciones importantes
- ❌ Curva de aprendizaje pronunciada: La línea de comandos y la gran cantidad de opciones (
-m,-a, reglas, máscaras) pueden ser abrumadoras para principiantes. - ❌ Dependencia de hardware potente: Aunque funciona en CPU, su verdadero potencial solo se alcanza con GPUs dedicadas de gama alta (NVIDIA RTX, AMD Radeon), cuyo coste es elevado.
- ❌ Generación de calor: El cracking de contraseñas es una actividad extremadamente intensiva que puede llevar las GPUs a su límite térmico, requiriendo una buena refrigeración.
- ❌ Limitado para hashes «lentos»: Algoritmos diseñados específicamente para ser costosos, como bcrypt, Argon2 y scrypt, ralentizan drásticamente el proceso incluso en GPUs, haciéndolo poco práctico para contraseñas largas.
Alternativa recomendada
Si buscas una herramienta más sencilla para empezar o no dispones de GPU, John the Ripper (JtR) es la alternativa clásica. Es más fácil de usar para ataques de diccionario básicos, tiene excelentes utilidades de extracción (unshadow) y funciona bien en CPU, pero es significativamente más lento para fuerza bruta.
Para ataques de fuerza bruta en hashes NTLM de Windows, una alternativa ligera es ophcrack, que utiliza tablas rainbow precomputadas. Sin embargo, es mucho menos versátil que Hashcat.
Hashcat es el estándar de oro en la industria de la seguridad ofensiva. No es una herramienta para principiantes, pero su velocidad, versatilidad y comunidad activa lo convierten en un componente esencial en el arsenal de cualquier auditor de seguridad o profesional forense. Puedes descargarlo desde su página oficial o instalarlo directamente desde los repositorios de tu distribución Linux.
Sección FAQ
¿Hashcat es gratis o de pago?
Es completamente gratuito y de código abierto, publicado bajo la licencia MIT. No tiene versiones de pago ni funcionalidades bloqueadas.
¿Funciona en Linux, macOS, Windows 10 y Windows 11?
Sí, es multiplataforma. Funciona en Linux (todas las distribuciones), Windows (con binarios precompilados), y macOS (Intel y Apple Silicon, con soporte nativo Metal). También está disponible como imagen Docker para despliegues consistentes.
¿Qué diferencia a Hashcat de John the Ripper?
La principal diferencia es la velocidad y la plataforma. Está diseñado para explotar la potencia de la GPU, lo que lo hace órdenes de magnitud más rápido en ataques de fuerza bruta y de diccionario a gran escala. John the Ripper es más versátil para la extracción de hashes y ataques iniciales en CPU, pero es mucho más lento para el cracking pesado.
¿Necesito una GPU para usar Hashcat?
No es estrictamente necesario, pero sí muy recomendable. Puede ejecutarse en CPU usando OpenCL, pero el rendimiento será mucho menor. Para tareas de auditoría profesional o para descifrar hashes modernos (como bcrypt), una GPU dedicada (NVIDIA o AMD) es prácticamente indispensable.
¿Qué es el «potfile» y cómo funciona?
El potfile (generalmente hashcat.potfile) es un archivo donde almacena automáticamente todas las contraseñas que ha logrado descifrar. Cuando ejecutas un ataque, primero verifica este archivo para no perder tiempo volviendo a descifrar contraseñas ya conocidas. Para ver las contraseñas descifradas, se usa el comando hashcat --show. Para eliminar el potfile y empezar de cero, se borra manualmente el archivo.
