Introduction
John the Ripper est un outil populaire et open-source de cassage de mots de passe. Lors de la réalisation d'audits de mots de passe ou de tentatives de cassage, il est crucial de comprendre sa sortie et son statut pour suivre la progression, identifier les mots de passe cassés et résoudre les problèmes. Ce laboratoire vous guidera dans l'interprétation des différents messages de sortie de John the Ripper, la vérification de son statut de cassage en temps réel, la visualisation des résultats d'une session de cassage, la compréhension de ses statistiques de performance et l'enregistrement de sa sortie pour une analyse ultérieure.
Interpréter les messages de sortie de John the Ripper
Dans cette étape, vous apprendrez à comprendre les différents messages que John the Ripper affiche pendant une session de cassage. Ces messages donnent un aperçu de sa progression, du mode de cassage et des éventuels problèmes rencontrés.
Tout d'abord, lançons une session de cassage simple à l'aide d'une liste de mots. Nous utiliserons le fichier passwords.txt créé lors de la configuration et un petit fichier wordlist.txt.
Exécutez la commande suivante dans votre terminal :
john --wordlist=wordlist.txt passwords.txt
Vous verrez une sortie similaire à celle-ci :
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts to the same type of crypt (sha512crypt, crypt(3) $6$)
Remaining 3 password hashes with no different salts
Press 'q' or Ctrl-C to abort, almost any other key for status
user1 (user1)
user2 (user2)
user3 (user3)
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed
Décomposons les parties clés de cette sortie :
Using default input encoding: UTF-8: Indique l'encodage des caractères utilisé par John.Loaded 3 password hashes...: Indique combien de hachages ont été chargés à partir du fichier d'entrée.Press 'q' or Ctrl-C to abort, almost any other key for status: C'est une invite importante. Elle vous indique comment interagir avec John pendant une session.user1 (user1): Il s'agit d'un mot de passe cassé.user1est le nom d'utilisateur (ou l'identifiant du hachage), et(user1)est le mot de passe cassé. John affichera chaque mot de passe cassé au fur et à mesure qu'il le trouve.3g 0:00:00:00 DONE ...: C'est la ligne de résumé.3g: Nombre de hachages cassés (3 tentatives).0:00:00:00 DONE: Temps écoulé et que la session est terminée.100.0%: Pourcentage du processus de cassage terminé.3.000g/s: Tentatives par seconde.18.00p/s: Mots de passe par seconde (nombre de mots de passe candidats testés).18.00c/s: Cryptages par seconde (nombre de calculs de hachage).18.00C/s: Candidats par seconde (nombre de mots de passe candidats uniques générés).user1 user2 user3: Les derniers mots de passe cassés.
Session completed: Confirme que la session de cassage est terminée.
Comprendre ces messages vous aide à suivre la progression et les résultats de vos opérations avec John the Ripper.
Vérifier le statut de cassage pendant une session
Dans cette étape, vous apprendrez à vérifier le statut en temps réel d'une session de cassage John the Ripper. Ceci est particulièrement utile pour les sessions de longue durée afin de suivre la progression sans interrompre le processus.
Tout d'abord, nettoyons l'état de la session précédente afin que John démarre à neuf.
john --session=test_session --restore=NONE --wordlist=wordlist.txt passwords.txt --force-load-hashes
Maintenant, lançons une nouvelle session de cassage. Cette fois, nous utiliserons une liste de mots légèrement plus grande pour nous assurer que la session dure assez longtemps pour que nous puissions vérifier son statut. Nous utiliserons le fichier passwords.txt et le fichier wordlist.txt.
Exécutez la commande suivante. Notez que nous utilisons --session=test_session pour donner un nom à cette session, ce qui est utile pour la restaurer ou vérifier son statut ultérieurement.
john --session=test_session --wordlist=wordlist.txt passwords.txt
Pendant que John s'exécute (il pourrait se terminer rapidement avec la petite liste de mots, mais imaginez qu'il s'agisse d'une grande liste), ouvrez un nouvel onglet de terminal (ou une nouvelle fenêtre de terminal si vous n'êtes pas dans l'environnement LabEx). Dans le nouveau terminal, vous pouvez vérifier le statut de la session en cours.
Pour vérifier le statut, utilisez l'option --status avec le nom de la session :
john --session=test_session --status
Vous verrez une sortie similaire à celle-ci (les chiffres exacts varieront en fonction de la progression) :
Session test_session (john)
Progress: 3/3 (100%)
Speed: 3.000g/s (words), 18.00p/s (passwords), 18.00c/s (crypts), 18.00C/s (candidates)
Remaining: 0:00:00:00
Cracked: 3
Cette sortie fournit un instantané de la progression de la session, y compris le nombre de hachages cassés, la vitesse de cassage et le temps restant estimé.
Après avoir vérifié le statut, vous pouvez fermer le nouvel onglet du terminal. La session John the Ripper d'origine continuera de s'exécuter jusqu'à son achèvement.
Si la session est déjà terminée, la commande --status indiquera que la session est terminée.
Session test_session (john)
Session completed
Cette fonctionnalité est inestimable pour la gestion des opérations de cassage de longue durée.
Afficher les mots de passe cassés d'une session
Après qu'une session John the Ripper soit terminée, les mots de passe cassés sont sauvegardés dans un fichier appelé john.pot (souvent situé dans ~/.john/john.pot). Dans cette étape, vous apprendrez à afficher ces mots de passe cassés.
Tout d'abord, assurez-vous d'avoir un fichier john.pot contenant des mots de passe cassés. Si vous avez suivi les étapes précédentes, il devrait déjà exister. Sinon, exécutez à nouveau la commande de cassage :
john --wordlist=wordlist.txt passwords.txt
Une fois la session terminée, vous pouvez afficher les mots de passe cassés en utilisant l'option --show. Cette option demande à John d'afficher tous les mots de passe cassés qu'il a stockés pour le fichier de hachage donné.
Exécutez la commande suivante :
john --show passwords.txt
Vous verrez une sortie similaire à celle-ci :
user1:user1
user2:user2
user3:user3
3 password hashes cracked, 0 left
La sortie liste chaque hachage cassé au format nom d'utilisateur:mot de passe. La ligne 3 password hashes cracked, 0 left résume les résultats.
Le fichier john.pot est un composant crucial de John the Ripper, car il stocke tous les mots de passe réussis. John vérifie automatiquement ce fichier avant de tenter de casser un hachage, évitant ainsi un travail redondant. Vous pouvez également inspecter directement le fichier john.pot en utilisant cat :
cat ~/.john/john.pot
Le contenu ressemblera à ceci :
user1:user1
user2:user2
user3:user3
Cette étape montre comment récupérer et examiner la sortie précieuse de vos efforts de cassage.
Comprendre les statistiques de John the Ripper
John the Ripper fournit des statistiques détaillées sur ses performances de cassage. Comprendre ces statistiques vous aide à évaluer l'efficacité de vos tentatives de cassage et à comparer différentes stratégies de cassage.
Exécutons à nouveau une session de cassage pour générer des statistiques. Nous utiliserons la même commande qu'auparavant.
john --wordlist=wordlist.txt passwords.txt
Observez la ligne de résumé finale qui apparaît après la fin de la session :
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed
Réexaminons les principales métriques statistiques :
3g: Ceci indique le nombre de "guesses" (tentatives) effectuées, ce qui correspond au nombre de hachages cassés avec succès dans ce contexte.0:00:00:00 DONE: Le temps total écoulé pour la session. Pour les sessions courtes, il peut afficher 0.100.0%: Le pourcentage du processus de cassage terminé.3.000g/s(guesses/s) : Le taux auquel John effectue des tentatives par seconde. C'est souvent la mesure la plus directe de la vitesse de cassage.18.00p/s(passwords/s) : Le nombre de mots de passe candidats testés par seconde. Cela peut être supérieur àg/ssi plusieurs hachages sont testés contre le même mot de passe candidat.18.00c/s(crypts/s) : Le nombre de calculs de hachage (opérations cryptographiques) effectués par seconde. C'est une mesure de la puissance de calcul brute utilisée.18.00C/s(candidates/s) : Le nombre de mots de passe candidats uniques générés par seconde. Cela peut différer dep/ssi le même candidat est testé contre plusieurs hachages.
Ces statistiques sont cruciales pour :
- Évaluation des performances : Comprendre la rapidité avec laquelle John casse les mots de passe.
- Utilisation des ressources : Évaluer la quantité de puissance CPU utilisée pour les calculs de hachage.
- Comparaison des stratégies : Comparer l'efficacité de différentes listes de mots ou modes de cassage.
En prêtant attention à ces chiffres, vous pouvez obtenir des informations précieuses sur vos efforts d'audit de mots de passe.
Enregistrer la sortie de John the Ripper dans un fichier
Pour les sessions de longue durée ou à des fins d'audit, il est souvent avantageux d'enregistrer la sortie de John the Ripper dans un fichier. Cela vous permet de consulter la progression et les résultats ultérieurement sans avoir à garder un terminal ouvert.
Vous pouvez rediriger la sortie standard de John vers un fichier en utilisant la redirection standard du shell (>).
Tout d'abord, nettoyons les fichiers de session précédents pour assurer un nouveau départ.
john --session=log_session --restore=NONE --wordlist=wordlist.txt passwords.txt --force-load-hashes
Maintenant, exécutez John the Ripper et redirigez sa sortie vers un fichier nommé john_output.log dans votre répertoire ~/project.
john --session=log_session --wordlist=wordlist.txt passwords.txt > john_output.log
Remarquez qu'après avoir exécuté cette commande, votre terminal semblera ne rien faire. C'est parce que toute la sortie qui serait normalement affichée à l'écran est maintenant écrite dans john_output.log.
Une fois la commande terminée (ce qui sera presque instantané avec notre petite liste de mots), vous pouvez afficher le contenu du fichier journal en utilisant cat :
cat john_output.log
Vous verrez la sortie complète de la session John the Ripper, identique à ce que vous auriez vu à l'écran, mais maintenant stockée dans le fichier :
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts to the same type of crypt (sha512crypt, crypt(3) $6$)
Remaining 3 password hashes with no different salts
Press 'q' or Ctrl-C to abort, almost any other key for status
user1 (user1)
user2 (user2)
user3 (user3)
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed
L'enregistrement de la sortie est une bonne pratique pour toute opération en ligne de commande longue ou critique, fournissant un enregistrement persistant des événements et des résultats.
Résumé
Dans ce laboratoire, vous avez acquis une compréhension approfondie de la manière d'interpréter la sortie de John the Ripper et de gérer ses sessions. Vous avez appris à déchiffrer les différents messages affichés pendant une session de cassage, à vérifier le statut en temps réel d'une session en cours et à récupérer les mots de passe cassés à partir du fichier john.pot. De plus, vous avez exploré comment comprendre les statistiques de performance de John et comment enregistrer sa sortie dans un fichier pour une conservation persistante des enregistrements. Ces compétences sont fondamentales pour utiliser efficacement John the Ripper pour l'audit de mots de passe et les tests de sécurité.


