Comparar el rendimiento de los ataques de máscara frente a los ataques de diccionario
En este paso final, compararemos el ataque de máscara que acaba de realizar con un ataque de diccionario tradicional para comprender sus respectivas fortalezas.
Un ataque de diccionario (-a 0) es muy rápido si la contraseña está en la lista de palabras (wordlist). Tenemos un pequeño archivo de diccionario llamado dict.txt que contiene la contraseña del paso anterior.
Ejecutemos un ataque de diccionario contra pattern_hash.txt:
hashcat -a 0 -m 1000 pattern_hash.txt dict.txt
Debido a que labex está en dict.txt, Hashcat lo encuentra casi instantáneamente.
hashcat (v6.2.5) starting
OpenCL API (OpenCL 2.0 pocl 1.8 Linux, None+Asserts, RELOC, LLVM 11.1.0, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
=====================================================================================================================================
* Device #1: pthread-Intel(R) Xeon(R) Platinum 8575C, 6808/13680 MB (2048 MB allocatable), 4MCU
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256
INFO: All hashes found in potfile! Use --show to display them.
Started: Sat Oct 11 16:05:20 2025
Stopped: Sat Oct 11 16:05:20 2025
Hashcat nos informa que el hash ya fue encontrado y almacenado en el potfile. Para ver la contraseña descifrada, podemos usar la opción --show:
hashcat -a 0 -m 1000 pattern_hash.txt dict.txt --show
Salida:
2bf7d33ec706798e0308f5df34bc7d2f:labex
Entonces, ¿cuándo tiene ventaja un ataque de máscara? Un ataque de diccionario solo tendrá éxito si la contraseña exacta existe en la lista de palabras. Si la contraseña fuera testx en su lugar, y esa no estuviera en nuestro diccionario, el ataque fallaría.
Sin embargo, el ataque de máscara del Paso 4 (?l?l?l?l?l) seguiría teniendo éxito porque genera y prueba sistemáticamente todas las contraseñas que se ajustan al patrón, independientemente de si están en un diccionario. Probaría labex, testx, hello, y así sucesivamente.
Conclusión:
- Ataque de Diccionario (
-a 0): El mejor para descifrar contraseñas comunes o cuando se dispone de una lista de palabras dirigida y de alta calidad. Es rápido pero limitado por el contenido del diccionario.
- Ataque de Máscara (
-a 3): El mejor cuando se conoce la estructura o el patrón de la contraseña (por ejemplo, a partir de una política de contraseñas conocida). Es mucho más exhaustivo que un ataque de diccionario e infinitamente más eficiente que un ataque de fuerza bruta puro.