Décryptez la Sécurité des Mots de Passe avec John the Ripper

John the Ripper est un outil puissant pour tester la robustesse de vos mots de passe. Conçu pour les experts en cybersécurité et les curieux, il vous aide à détecter les faiblesses avant que les hackers ne le fassent

Mise en situation :

En tant que consultant en sécurité, j’utilise John the Ripper pour auditer les mots de passe des utilisateurs d’une entreprise de développement de logiciels, en combinant des attaques par dictionnaire et de force brute pour identifier les mots de passe faibles et recommander des améliorations de sécurité.

La Syntaxe de JOHN :

john [options] <fichier_de_hachage>

Les options disponibles : 

Options générales :
-h, –help Affiche l’aide et les options disponibles.
–test Teste les performances des hachages et des optimisations.

Options de chargement de hachage :
–format=TYPE Spécifie le format du hachage.
–save-memory=LEVEL Spécifie le niveau de sauvegarde de la mémoire.
–node=MIN-MAX Spécifie la plage des nœuds.

Options de hachage :
–mask=STRING Utilise le masque donné pour les attaques.
–incremental[=MODE] Active l’attaque par force brute incrémentielle.
–external=MODE Active l’utilisation de processus externes.

Options de cassage de mot de passe :
–wordlist=FILE Utilise le fichier de liste de mots donné.
–rules Utilise des règles pour générer des mots de passe alternatifs.
–stdout Affiche les mots de passe cibles au format cible.
–single Arrête après la première sortie.

Options de débogage :
–debug-flags=FLAGS Active les indicateurs de débogage.
–status=FILE Envoie des informations sur l’état à FILE.

--test:  Effectue un test de performance des hachages et des optimisations. Cela permet de vérifier les performances du programme sans lancer une attaque réelle.

--format=TYPE:  Spécifie le format du hachage des mots de passe dans le fichier de hachage. Par exemple, MD5, SHA-1, etc.

--save-memory=LEVEL:  Spécifie le niveau de sauvegarde de la mémoire. Cela peut être utile pour limiter la consommation de mémoire, notamment lors du craquage de gros fichiers de hachage.

--node=MIN-MAX:  Spécifie la plage des nœuds. Cette option contrôle le nombre de nœuds de travail utilisés par John the Ripper pour l’attaque.

--mask=STRING:  Utilise le masque donné pour les attaques. Cela permet de spécifier un modèle de mot de passe à tester lors de l’attaque par force brute.

--incremental[=MODE]:  Active l’attaque par force brute incrémentielle. Cette option permet de générer et de tester toutes les combinaisons possibles de caractères de manière systématique.

--external=MODE:  Active l’utilisation de processus externes. Cela peut améliorer les performances en utilisant des ressources de calcul externes pour le craquage des mots de passe.

--wordlist=FILE:  Utilise le fichier de liste de mots donné pour l’attaque par dictionnaire. John the Ripper testera chaque mot de ce fichier pour voir s’il correspond à un mot de passe.

--rules:  Utilise des règles pour générer des mots de passe alternatifs. Les règles peuvent inclure des transformations telles que l’ajout de chiffres, de caractères spéciaux, etc.

--stdout:  Affiche les mots de passe cibles au format cible. Cette option permet d’afficher les mots de passe craqués sur la sortie standard plutôt que de les enregistrer dans un fichier.

--single:  Arrête après la première sortie. Lorsque cette option est activée, John the Ripper s’arrête après avoir trouvé le premier mot de passe correspondant.

--debug-flags=FLAGS:  Active les indicateurs de débogage. Cette option est utile pour obtenir des informations détaillées sur le fonctionnement interne de John the Ripper à des fins de débogage.

--status=FILE:  Envoie des informations sur l’état à FILE. Cette option permet de spécifier un fichier dans lequel seront enregistrées des informations sur l’état de l’attaque en cours.

Quelques exemples de commande :

Attaque par dictionnaire avec un format de hachage spécifié :

  • john –wordlist=dictionary.txt --format=md5 hashes.txt

Cette commande utilise un fichier de dictionnaire nommé dictionary.txt pour lancer une attaque par dictionnaire sur les hachages de mots de passe stockés dans le fichier hashes.txt. L’option --format=md5 spécifie que les hachages de mots de passe sont au format MD5.

Attaque par force brute incrémentielle avec des règles :

  • john –incremental --rules hashes.txt

Cette commande lance une attaque par force brute incrémentielle sur les hachages de mots de passe stockés dans le fichier hashes.txt. L’option --rules est utilisée pour activer l’utilisation de règles de transformation, ce qui permet de tester des variations de mots de passe en utilisant des règles prédéfinies.

Utilisation d’un masque pour une attaque spécifique :

  • john –mask=?l?d?l?d hashes.txt

Cette commande utilise un masque pour spécifier un modèle de mot de passe à tester lors de l’attaque. Dans ce cas, le masque ?l?d?l?d signifie que chaque caractère du mot de passe doit alterner entre une lettre minuscule (?l) et un chiffre (?d). Cette approche est utile pour cibler des mots de passe qui suivent un modèle spécifique.