Utilizar la opción --rules con reglas personalizadas
En este paso, explorará la opción --rules, que permite a John the Ripper aplicar un conjunto de reglas predefinidas o personalizadas a las palabras de una lista de palabras (wordlist). Las reglas son transformaciones potentes que se pueden aplicar a las palabras, como añadir números, cambiar mayúsculas/minúsculas o duplicar caracteres, lo que aumenta significativamente las posibilidades de descifrar contraseñas que son variaciones de palabras comunes.
John viene con varios conjuntos de reglas integrados, como Wordlist (por defecto), Single y Jumbo. Puede enumerar los conjuntos de reglas disponibles utilizando:
john --list=rules
Este comando mostrará una lista de conjuntos de reglas.
Ahora, usemos un archivo de reglas personalizado. Creamos un archivo de reglas personalizado simple llamado custom_rules.txt en la configuración, que contiene reglas como :$[0-9] (añadir un dígito) y Az (capitalizar la primera letra).
Intentemos descifrar user1 de nuevo, pero esta vez usando nuestras reglas personalizadas. Supongamos que la contraseña de user1 era Password123 (P mayúscula, luego 123). Nuestra lista de palabras solo contiene password. La regla Az capitalizará la primera letra y :$[0-9] añadirá un dígito.
john --wordlist=/home/labex/project/wordlist.txt --rules=/home/labex/project/custom_rules.txt /home/labex/project/passwords.txt --format=sha512crypt
Este comando aplicará las reglas de custom_rules.txt a cada palabra en wordlist.txt antes de intentar descifrarlas contra los hashes. Por ejemplo, password podría convertirse en Password, password0, password1, etc., y luego Password0, Password1, etc.
También puede combinar reglas con la opción --stdout (que cubriremos en el siguiente paso) para ver qué palabras se generan con sus reglas:
john --wordlist=/home/labex/project/wordlist.txt --rules=/home/labex/project/custom_rules.txt --stdout
Este comando imprimirá todas las palabras generadas al aplicar custom_rules.txt a wordlist.txt en su terminal. Esto es útil para depurar sus conjuntos de reglas.
La opción --rules es una característica potente para extender la efectividad de los ataques de lista de palabras generando variaciones comunes de contraseñas.