03.-Password cracking
La técnica de Password Cracking consiste en utilizar los hashes de contraseñas para intentar recuperar su versión en texto claro.
Por definición, un hash es una representación irreversible de una contraseña, lo que significa que no existe un algoritmo que permita calcular directamente la contraseña original a partir de su hash.
La única forma de descubrir la contraseña original es probar combinaciones de contraseñas y aplicar el mismo algoritmo de hash utilizado en el sistema. Si el hash generado coincide con el original, significa que la contraseña ha sido descifrada correctamente.
Herramientas para Password Cracking¶
Existen diversas herramientas especializadas en la recuperación de contraseñas a partir de hashes. Las más utilizadas son:
🔹 JohnTheRipper
🔹 Hashcat
A continuación, se detallan las características y el uso de cada una.
1. JohnTheRipper (JtR)¶
JohnTheRipper es una herramienta de cracking de contraseñas que permite recuperar contraseñas encriptadas mediante diferentes algoritmos de hash.
📌 Características:
- Existen dos versiones:
- Versión estándar
- Versión Jumbo (Community) con soporte para más algoritmos de hashing.
- Permite paralelización de procesos, asignando múltiples núcleos de CPU al proceso de cracking.
- Admite permutaciones sobre una contraseña base, aplicando reglas para generar variantes de la misma.
Ejemplo de uso en Linux:¶
# Crackear hashes NTLM usando el diccionario rockyou.txt
john --format=NT --rules -w=/usr/share/wordlists/rockyou.txt hashfile.txt
# Uso de reglas específicas (korelogic) para transformar contraseñas del diccionario
john --format=NT --rules=korelogic --wordlist=/usr/share/wordlists/rockyou.txt
🔗 Página oficial de JohnTheRipper:
https://www.openwall.com/john/
2. Hashcat¶
Hashcat es una herramienta de cracking de contraseñas que ofrece mayor flexibilidad y rendimiento que JohnTheRipper.
📌 Características:
- Compatible con más algoritmos de hashing que JtR.
- Soporta procesamiento en GPU, lo que lo hace significativamente más rápido que los ataques basados en CPU.
- Permite utilizar diferentes modos de ataque, como fuerza bruta y ataques basados en reglas.
Ejemplo de uso en Linux:¶
# Descifrar hashes NTLM usando un diccionario
./hashcat -m 1000 hash.ntlm.txt dictionary.txt
# Uso de una máscara personalizada para probar combinaciones de caracteres
./hashcat -m 1000 hash.ntlm.txt -a3 ?d?d?d?d?s?l?l?l?l
🔗 Página oficial de Hashcat:
https://hashcat.net/hashcat/