JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

Hashcat: Descripción, funcionamiento y uso

¿Te preguntas cómo los expertos en ciberseguridad prueban la solidez de las contraseñas? Para ello, es necesario entender qué es un hash: una huella única, ilegible, que protege las contraseñas sin almacenarlas en texto claro. Pero cuando estas huellas caen en malas manos, software especializado puede intentar romperlas… Es aquí donde entra en juego Hashcat, una herramienta poderosa, legal y extremadamente eficaz para auditar tus sistemas de seguridad.

¿Qué es Hashcat?

Definición de un hash y su papel en la seguridad

Antes de entender Hashcat, primero hay que definir qué es un hash. Cuando una contraseña se almacena en un servidor, rara vez se conserva en texto claro. En su lugar, una función de hash transforma esta contraseña en una huella única e irreversible, llamada hash. Esto permite proteger las contraseñas reemplazándolas por una huella ilegible, al tiempo que permite al sistema verificar su validez sin necesidad de conocer o mostrar la contraseña original.

Sin embargo, si un atacante logra obtener estas huellas, puede intentar recuperar las contraseñas originales probando miles de combinaciones gracias a potentes herramientas de descifrado. Es precisamente este tipo de tarea la que permite Hashcat, dentro de un marco legal y controlado.

Hashcat: Una herramienta de ethical hacking orientada a pentest

Hashcat es una herramienta de recuperación de contraseñas, poderosa, rápida y ampliamente utilizada en ciberseguridad. Su objetivo no es piratear, sino probar la robustez de tus sistemas en el marco de un pentest realizado por un experto o un Certified Ethical Hacker.

Su uso es totalmente legal, siempre que tengas la autorización explícita del propietario del sistema. Fuera de este marco, su uso puede considerarse como una infracción, o incluso un intento de intrusión.

¿Por qué usar Hashcat? Casos de uso comunes

Ya sea que seas auditor en ciberseguridad, analista SOC, pentester o simplemente apasionado por la seguridad informática, Hashcat es una herramienta imprescindible para comprender y probar la robustez de las contraseñas. Diseñada para realizar ataques de fuerza bruta o de diccionario de alto rendimiento, te permite simular escenarios de compromiso realistas y evaluar la seguridad de los sistemas de hashing. Utilizada en un marco legal y ético, Hashcat te ayuda a identificar las debilidades en las políticas de contraseñas, a fortalecer las medidas de protección y es un aliado poderoso en cualquier esfuerzo de prueba de penetración o de auditoría de seguridad.

Se usa comúnmente para:

  • Auditar la solidez de las contraseñas internas de una empresa,

  • Realizar pentests (pruebas de intrusión simuladas),

  • Formar perfiles técnicos en el marco de programas de ciberseguridad o ethical hacking.

Hashcat te permite simular ataques realistas, y así fortalecer tus políticas de seguridad.

¿Cómo funciona Hashcat?

Los diferentes tipos de ataques (brute-force, diccionario, combinado…)

Tipo de ataque Descripción Ventajas Desventajas
Fuerza bruta Prueba todas las combinaciones posibles hasta encontrar la contraseña. Método exhaustivo, garantiza un resultado si la contraseña es corta o simple. Muy lento para contraseñas largas o complejas; requiere mucha potencia.
Diccionario Utiliza una lista preexistente de contraseñas comunes. Rápido, especialmente con diccionarios bien diseñados. Eficacia limitada si la contraseña es original o rara.
Combinado Combina dos o más palabras de uno o varios archivos de diccionario. Permite generar combinaciones más complejas a partir de palabras simples. Más lento que un ataque simple; requiere una buena base de datos.
Híbrido Agrega prefijos o sufijos a palabras del diccionario (ej: "password2024"). Refleja los hábitos humanos (adición de números, años, símbolos). Menos efectivo si la contraseña no sigue patrones predecibles.

¿Qué algoritmos son compatibles?

Donde Hashcat impresiona es en su compatibilidad con más de 300 algoritmos:

  • Los clásicos como MD5, SHA-1, SHA-256,

  • Los más robustos, como bcrypt o PBKDF2,

  • Pero también los protocolos relacionados con la seguridad Wi-Fi (WPA/WPA2) o las criptomonedas.

No importa tu necesidad, Hashcat te ofrece una versatilidad rara, esencial para auditar cualquier tipo de entorno.

¿Cómo instalar Hashcat?

Requisitos técnicos (GPU, sistema, etc.)

Antes de sumergirte en la instalación, es esencial comprender lo que necesitas para hacer funcionar Hashcat en buenas condiciones. Hashcat explota principalmente la potencia de tu GPU para acelerar el proceso de recuperación de contraseñas. Cuanto más potente sea tu tarjeta gráfica, más rápido y eficiente será el software.

Si utilizas una tarjeta NVIDIA, deberás instalar los controladores CUDA adecuados. Para AMD, se requieren los controladores OpenCL. Asegúrate también de tener un sistema de 64 bits actualizado, con un terminal o línea de comandos funcional.

Pasemos ahora a la instalación según tu sistema operativo.

Instalar Hashcat en Windows

En Windows, la instalación es bastante simple. Comienza por visitar el sitio oficial de Hashcat para descargar la última versión estable. Una vez que se haya descargado el archivo comprimido, extráelo en un artículo dedicado utilizando WinRAR o 7-Zip. Después de extraer los archivos, abre la línea de comandos, ve al directorio de instalación con el comando cd y luego ejecuta hashcat.exe para verificar si todo funciona correctamente.

Instalar Hashcat en macOS

En macOS, la instalación requiere un poco más de cuidado. Dado que Apple limita el acceso de bajo nivel a la GPU, el rendimiento puede ser menor, pero la herramienta sigue siendo funcional.

Comienza por descargar la versión para macOS desde el sitio oficial. Luego, utiliza la Terminal para extraer y navegar en el artículo de instalación. Si obtienes un mensaje de error relacionado con permisos, autoriza la ejecución a través de las Preferencias del Sistema > Seguridad y privacidad. Finalmente, ejecuta ./hashcat desde la terminal para iniciar el software.

Instalar Hashcat en Linux

En Linux, Hashcat se instala fácilmente si sigues los pasos correctos. Después de descargar el archivo desde el sitio oficial, utiliza el comando tar -xvf para extraer el contenido.

Una vez que los controladores estén instalados, ve al artículo de instalación y simplemente ejecuta ./hashcat para iniciar la herramienta. Estás listo para el siguiente paso.

¿Cómo usar eficazmente Hashcat?

Pasemos al paso crucial: el uso. Hashcat es poderoso, pero debes saber cómo usarlo. No te preocupes, una vez que domines lo básico, todo se vuelve fluido.

Comandos básicos a conocer

Comando Descripción
hashcat -h Muestra la ayuda integrada y la lista completa de opciones disponibles.
hashcat -a 0 -m 0 hash.txt rockyou.txt Realiza un ataque de diccionario (modo 0) en hashes MD5 (tipo 0) utilizando la lista de palabras rockyou.txt.
hashcat -a 3 -m 0 hash.txt ?a?a?a?a?a?a Realiza un ataque de fuerza bruta (modo 3) en hashes MD5, probando todas las combinaciones posibles de 6 caracteres.
hashcat -a 6 -m 0 hash.txt rockyou.txt ?d?d?d Realiza un ataque híbrido (modo 6) combinando cada palabra del diccionario con tres dígitos al final, simulando contraseñas como "admin123".

Cada opción tiene su lógica. El -a define el modo de ataque (0 para diccionario, 3 para fuerza bruta, 6 para híbrido), el -m designa el tipo de hash (MD5, SHA1, bcrypt…), y el resto configura los archivos a utilizar.

Ejemplos concretos de uso

Tomemos un caso típico. Recuperas un archivo que contiene hashes MD5 extraídos de una base de datos durante una auditoría. Deseas verificar si se han utilizado contraseñas débiles.

Lanzas el siguiente comando:

hashcat -a 0 -m 0 hash.txt rockyou.txt

Hashcat comparará cada hash con las palabras del archivo rockyou.txt. Si se encuentra una coincidencia, obtendrás la contraseña en texto claro. Es una manera simple de demostrar que una política de contraseñas laxa puede poner en riesgo todo un sistema.

Otro ejemplo: sospechas que los usuarios añaden su año de nacimiento a su contraseña. Puedes probar:

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

Este ataque híbrido es particularmente efectivo en entornos profesionales donde las prácticas son previsibles.

Optimizar el rendimiento con la GPU

Si deseas mejorar la rapidez, la optimización de la GPU es imprescindible. Primer paso: asegúrate que tu tarjeta gráfica sea reconocida correctamente por Hashcat. Para verificarlo, utiliza el comando hashcat -I (mayúscula), que muestra los dispositivos disponibles.

También puedes ajustar la carga de trabajo con la opción -w. Por ejemplo, el comando:

hashcat -w 3 -a 0 -m 0 hash.txt rockyou.txt

indica a Hashcat que funcione con una intensidad elevada, ideal si utilizas una estación dedicada al ataque. Cuanto más alto sea el valor de -w (de 1 a 4), más empujado es el rendimiento, pero esto también puede afectar la estabilidad de tu máquina si es multitarea.

Finalmente, asegúrate de monitorear la temperatura de tu tarjeta gráfica. Un sobrecalentamiento podría ralentizar o incluso interrumpir tu sesión. Usa herramientas como nvidia-smi o watch sensors para mantener un ojo en el hardware.

¿Cuáles son las alternativas a Hashcat?

Aunque Hashcat es una referencia en el cracking de contraseñas, no es la única herramienta en el mercado. Otras soluciones efectivas merecen tu atención, especialmente cuando se trata de escenarios específicos o restricciones técnicas. Entre ellas, John the Ripper y THC Hydra ocupan un lugar destacado.

Criterios Hashcat John the Ripper THC Hydra
Tipo de ataque Principalmente fuera de línea Fuera de línea En línea
Soporte GPU Amplio Limitado No aplicable
Formatos de hash Amplia variedad Amplia variedad Protocolos de red variados
Facilidad de uso Interfaz de línea de comandos, requiere curva de aprendizaje Interfaz de línea de comandos, requiere curva de aprendizaje Interfaz de línea de comandos, requiere comprensión de protocolos
Casos de uso Descifrado de hashes recuperados Auditoría de contraseñas en varios sistemas Pruebas de penetración en servicios de red activos

Conclusión

Ya sea que desees analizar un archivo de hash local, auditar contraseñas en diferentes sistemas o si estás involucrado en pruebas de penetración en un entorno real, asegúrate de utilizar estas herramientas en un marco legal, ético y profesional, asegurándote de tener la autorización explícita de la organización objetivo. El objetivo nunca es hacer daño, sino proteger identificando las fallas antes de que lo haga un tercero malintencionado.

¿No está disponible?

Déjenos su dirección de correo electrónico para que podamos enviarle los nuevos artículos cuando se publiquen.