Logiciel open-source, conçu à l'origine pour identifier les mots de passes utilisateurs faibles sur les systèmes Unix en essayant de les décrypter. Il supporte aujourd'hui un grand nombre de hachages et de chiffrements. Il peut être utilisé pour éprouver la sécurité de fichiers chiffrés divers.
On clone le dépôt git officiel:
sudo mkdir /opt/johnTheRipper sudo chown user:user /opt/johnTheRipper git clone https://github.com/magnumripper/JohnTheRipper.git /opt/johnTheRipper/
On génère les binaires, consulter doc/INSTALL pour les prérequis et les options:
# le paquet libssl-dev contient les entêtes openssl nécessaires à la compilation sudo apt-get install libssl-dev cd src ./configure make
Les binaires sont placés dans le répertoire ./run, le path de l'utilisateur peut être mis à jour:
export PATH=$PATH:/opt/johnTheRipper/run
alias john='/opt/johnTheRipper/run/john'
En seul argument, john a besoin du fichier contenant le hachage ou la version chiffrée du mot de passe. Plusieurs fichiers peuvent être spécifiés. Sans options supplémentaires, si les fichiers sont valides, john consulte le fichier john.conf et applique le comportement par défaut.
john hash.txt
Dans ce cas, le fichier est soumis à la wordlist déclarées dans le fichier de configuration (password.lst). Si aucune correspondance n'est trouvée, john passe en mode incrémental, il essaie toutes les combinaisons. Son exécution se poursuivra jusqu’à ce qu'il trouve ou soit interrompu.
La tentative de décryptage basée sur les wordlists est la première étape. C'est la plus efficace pour identifier rapidement les mots de passe faibles. La section ressources propose quelques liens. Une fois les wordlists téléchargées et décompressées, on les utilise via l'option --wordlist.
john --wordlist=/path/to/wordlist hash.txt
Le wiki cracker un fichier MS Office illustre l'utilisation de john pour décrypter un fichier MS Excel.
--rules | Permet d'utiliser des règles de transformations s'appliquant sur chaque entrée de la wordlist. |
---|---|
--verbosity | Modifier la verbosité des messages de 1 à 5. |
--progress-every | Afficher périodiquement l'état d'avancement. |
Les attaques en force brute s'appuient sur des wordlists: