Implementar fuerza bruta con patrones específicos
En este paso, explorarás los ataques de fuerza bruta utilizando el modo incremental de John the Ripper. El modo incremental permite a John generar contraseñas basándose en conjuntos de caracteres (por ejemplo, minúsculas, mayúsculas, dígitos, símbolos) y longitud, realizando efectivamente un ataque de fuerza bruta.
Primero, crearemos un nuevo hash de contraseña que no esté en nuestra lista de palabras simple. Usaremos testuser:testpass (el hash MD5 de testpass es 5d41402abc4b2a76b9719d911017c592).
echo "testuser:5d41402abc4b2a76b9719d911017c592" > /home/labex/project/brute_passwords.txt
Ahora, usaremos John the Ripper en modo incremental. Para simplificar y acelerar, limitaremos el conjunto de caracteres y la longitud de la contraseña. Usaremos el modo digits para descifrar una contraseña que consista únicamente en dígitos.
Supongamos que tenemos una contraseña de 4 dígitos, por ejemplo, 1234. El hash MD5 para 1234 es 81dc9bdb52d04dc20036dbd8313ed055.
echo "digituser:81dc9bdb52d04dc20036dbd8313ed055" > /home/labex/project/digit_passwords.txt
Ahora, ejecuta John the Ripper en modo incremental, apuntando específicamente a los dígitos:
john --format=raw-md5 --incremental=digits digit_passwords.txt
Este comando intentará todas las combinaciones de dígitos hasta que encuentre la contraseña. Esto puede tardar un momento dependiendo de la longitud de la contraseña.
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (MD5 [MD5]) is not supported.
Will run John the Ripper in single-threaded mode.
Press 'q' or Ctrl-C to abort, almost any other key for status.
1234 (digituser)
1g 0:00:00:00 DONE (2023-10-27 08:05) 100.0g/s 100.0p/s 100.0c/s 100.0C/s 1234
Una vez descifrado, puedes mostrar el resultado:
john --show digit_passwords.txt
digituser:1234
1 password hash cracked, 0 left
Esto demuestra cómo se puede usar la fuerza bruta cuando la estructura de la contraseña se conoce o es limitada.