Realizar un Ataque Híbrido en Hashcat

Kali LinuxBeginner
Practicar Ahora

Introducción

Hashcat es una herramienta de recuperación de contraseñas reconocida y potente, ampliamente utilizada para descifrar hashes de contraseñas. Una de sus características más flexibles es el ataque híbrido, que combina la velocidad de un ataque de diccionario (wordlist attack) con la exhaustividad de un ataque de fuerza bruta (brute-force) o de máscara (mask attack). Este método es particularmente efectivo contra contraseñas que se basan en una palabra común pero modificadas con caracteres añadidos al principio o al final, como números o símbolos.

En este laboratorio, aprenderá a utilizar las capacidades de ataque híbrido de Hashcat. Explorará los dos modos híbridos principales: diccionario+máscara (wordlist+mask) y máscara+diccionario (mask+wordlist). Al final de este laboratorio, tendrá experiencia práctica en la configuración y ejecución de estos ataques para descifrar hashes de contraseñas de ejemplo.

Diferenciar entre Wordlist+Mask e Mask+Wordlist Híbridos

En este paso, aprenderá la diferencia teórica entre los dos modos principales de ataque híbrido en Hashcat. Comprender esta distinción es crucial para elegir la estrategia correcta para un patrón de contraseña dado.

Wordlist+Mask Híbrido (Modo de Ataque 6)

Este modo, especificado con la bandera -a 6, toma cada palabra de su diccionario (wordlist) y le añade caracteres basándose en una máscara definida. Es ideal para contraseñas donde los usuarios añaden un sufijo a una palabra base, como añadir un año o caracteres especiales al final.

  • Ejemplo: Si su diccionario contiene password y su máscara es ?d?d, Hashcat intentará candidatos como password00, password01, password02, y así sucesivamente, hasta password99.

Mask+Wordlist Híbrido (Modo de Ataque 7)

Este modo, especificado con la bandera -a 7, hace lo contrario. Añade caracteres definidos por una máscara al principio de cada palabra de su diccionario. Esto es útil cuando los usuarios añaden un prefijo a una palabra base.

  • Ejemplo: Si su diccionario contiene password y su máscara es ?d?d, Hashcat intentará candidatos como 00password, 01password, 02password, y así sucesivamente, hasta 99password.

No se necesitan comandos para este paso. Su objetivo es comprender estos dos conceptos fundamentales antes de aplicarlos en los próximos pasos.

Crear un Hash de Ejemplo y un Diccionario Base

En este paso, creará los archivos necesarios para nuestro ataque: un hash de contraseña de ejemplo y un diccionario simple. Todas las operaciones se realizarán en el directorio ~/project.

Primero, necesitamos un hash objetivo para descifrar. Para este laboratorio, usaremos un hash MD5. Supongamos que la contraseña es labex2024. El hash MD5 para esta cadena es 2d3c839a453c68206911871584a5f70f.

Cree un archivo llamado hash.txt y guarde el hash en él.

echo "2d3c839a453c68206911871584a5f70f" > ~/project/hash.txt

Puede verificar el contenido del archivo usando el comando cat:

cat ~/project/hash.txt

Debería ver la siguiente salida:

2d3c839a453c68206911871584a5f70f

A continuación, necesitamos un diccionario que contenga la palabra base de nuestra contraseña objetivo. Dado que la contraseña es labex2024, la palabra base es labex. Creemos un archivo de diccionario llamado wordlist.txt que contenga solo esta palabra.

echo "labex" > ~/project/wordlist.txt

Verifique el contenido de su nuevo diccionario:

cat ~/project/wordlist.txt

La salida debería ser:

labex

Ahora tiene un hash objetivo y un diccionario base, listos para el ataque.

Ejecutar un Ataque Híbrido Añadiendo Dígitos a Palabras

En este paso, realizará un ataque híbrido utilizando el modo wordlist+mask (-a 6) para descifrar el hash que creó. Nuestra hipótesis es que la contraseña consta de la palabra labex seguida de cuatro dígitos.

Construiremos el comando hashcat con los siguientes componentes:

  • -m 0: Especifica el tipo de hash, que es MD5.
  • -a 6: Selecciona el modo de ataque híbrido wordlist+mask.
  • ~/project/hash.txt: El archivo que contiene nuestro hash objetivo.
  • ~/project/wordlist.txt: Nuestro diccionario base.
  • ?d?d?d?d: La máscara a añadir. ?d representa un solo dígito.

Ahora, ejecute el siguiente comando en su terminal:

hashcat -m 0 -a 6 ~/project/hash.txt ~/project/wordlist.txt ?d?d?d?d

Hashcat se inicializará y comenzará el proceso de descifrado. Es posible que vea una advertencia sobre el rendimiento en un entorno virtualizado, lo cual es normal. Después de un corto tiempo, Hashcat encontrará la contraseña.

La salida se verá similar a esto (algunos detalles pueden variar):

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 2d3c839a453c68206911871584a5f70f
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (~/project/wordlist.txt)
Guess.Mod........: Mask (?d?d?d?d)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  ... H/s (...)
Recovered........: 1/1 (100.00%) Digests
Progress.........: 10000/10000 (100.00%)
Rejected.........: 0/10000 (0.00%)
Restore.Point....: 1/1 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: labex1000 -> labex9999
Hardware.Mon.#1..: Temp: ...

2d3c839a453c68206911871584a5f70f:labex2024

Started: ...
Stopped: ...

Hashcat ha descifrado con éxito el hash y ha encontrado la contraseña: labex2024.

Puede ver la contraseña descifrada en cualquier momento utilizando la opción --show:

hashcat -m 0 --show ~/project/hash.txt

Esto mostrará el par hash-contraseña descifrado directamente:

2d3c839a453c68206911871584a5f70f:labex2024

Ejecutar un Ataque Híbrido Anteponiendo Dígitos a Palabras

Ahora, probemos el otro modo híbrido: mask+wordlist (-a 7). En este paso, intentará descifrar un nuevo hash donde el patrón se antepone.

Supongamos que nuestra nueva contraseña objetivo es 2024labex. El hash MD5 para esta cadena es b68137c355d785422120884212515e86.

Primero, cree un nuevo archivo de hash llamado hash2.txt con este nuevo hash.

echo "b68137c355d785422120884212515e86" > ~/project/hash2.txt

Para este escenario, necesitamos usar el modo de ataque -a 7 para anteponer la máscara de cuatro dígitos a nuestra palabra base. La estructura del comando es similar, pero el modo de ataque es diferente.

Ejecute el siguiente comando:

hashcat -m 0 -a 7 ~/project/hash2.txt ~/project/wordlist.txt ?d?d?d?d

Hashcat comenzará de nuevo. Dado que hemos elegido el modo de ataque correcto para esta estructura de contraseña, encontrará rápidamente la contraseña.

La salida mostrará la contraseña descifrada:

...
Session..........: hashcat
Status...........: Cracked
...
b68137c355d785422120884212515e86:2024labex
...

Ha descifrado con éxito el segundo hash utilizando el modo mask+wordlist.

Como antes, puede usar la opción --show para ver el resultado:

hashcat -m 0 --show ~/project/hash2.txt

Salida:

b68137c355d785422120884212515e86:2024labex

Comparar la Efectividad de Ambos Modos Híbridos

En este último paso práctico, verá qué sucede cuando utiliza el modo híbrido incorrecto para un patrón de contraseña dado. Esto resaltará la importancia de elegir la estrategia de ataque correcta.

Primero, intentemos descifrar nuestro hash original (hash.txt, para labex2024) utilizando el modo mask+wordlist (-a 7). Este modo antepone dígitos, lo cual es incorrecto para esta contraseña.

hashcat -m 0 -a 7 ~/project/hash.txt ~/project/wordlist.txt ?d?d?d?d

Hashcat se ejecutará, pero intentará candidatos como 0000labex, 0001labex, etc. Dado que la contraseña correcta es labex2024, este ataque fallará. Después de verificar las 10,000 posibilidades, el proceso finalizará con el estado Exhausted (Agotado), lo que significa que probó todas las combinaciones sin éxito. Puede esperar a que termine o presionar q para salir.

A continuación, intentemos descifrar nuestro segundo hash (hash2.txt, para 2024labex) utilizando el modo wordlist+mask (-a 6). Este modo añade dígitos al final, lo cual también es incorrecto para esta contraseña.

hashcat -m 0 -a 6 ~/project/hash2.txt ~/project/wordlist.txt ?d?d?d?d

De manera similar, este ataque intentará candidatos como labex0000, labex0001, etc., y también fallará, finalizando con el estado Exhausted.

Este experimento demuestra un punto crítico: el éxito de un ataque híbrido depende completamente de identificar correctamente la estructura de la contraseña. Usar el modo incorrecto desperdiciará tiempo y recursos sin obtener la contraseña correcta.

Resumen

En este laboratorio, adquirió experiencia práctica con la potente función de ataque híbrido de Hashcat. Ha aprendido a combinar listas de palabras (wordlists) y máscaras para descifrar eficientemente contraseñas que siguen un patrón predecible.

Específicamente, aprendió:

  • La diferencia fundamental entre los dos modos de ataque híbrido: wordlist+mask (-a 6) para añadir patrones y mask+wordlist (-a 7) para anteponer patrones.
  • Cómo prepararse para un ataque creando un archivo de hash objetivo y una lista de palabras base.
  • Cómo ejecutar ambos tipos de ataques híbridos para descifrar contraseñas con éxito.
  • La importancia crítica de seleccionar el modo de ataque correcto basándose en la estructura sospechada de la contraseña, ya que usar el modo incorrecto conducirá al fracaso.

Los ataques híbridos son una técnica esencial en el conjunto de herramientas de cualquier auditor de contraseñas, ofreciendo un equilibrio inteligente entre métodos dirigidos y fuerza bruta.