Introduction
Dans ce laboratoire, vous explorerez les fonctionnalités essentielles de John the Ripper (JtR) pour la gestion des sessions de cassage de mots de passe. Une gestion efficace des sessions est cruciale pour les tâches de cassage de longue durée, vous permettant de mettre en pause et de reprendre les opérations, de récupérer d'interruptions inattendues et de suivre votre progression. Vous apprendrez comment démarrer une session de cassage, la mettre en pause et la reprendre gracieusement, comprendre le rôle des fichiers de session, et même récupérer une session après un crash simulé. Enfin, vous apprendrez comment nettoyer les anciens fichiers de session pour maintenir un environnement de travail ordonné.
Démarrer une session de cassage avec John the Ripper
Dans cette étape, vous allez démarrer une session de cassage basique avec John the Ripper. Nous utiliserons un hachage MD5 simple et une petite liste de mots pour démontrer le processus. John the Ripper crée automatiquement un fichier de session lorsque vous démarrez un processus de cassage, ce qui est essentiel pour la gestion de la session.
Tout d'abord, créons un fichier de liste de mots simple nommé wordlist.txt dans votre répertoire ~/project.
echo -e "test\npassword\n123456\nadmin" > ~/project/wordlist.txt
Maintenant, démarrez John the Ripper pour casser le fichier passwords.txt en utilisant wordlist.txt. Nous utiliserons l'option --session pour donner un nom spécifique à notre session, ce qui facilite sa gestion.
john --format=raw-md5 --wordlist=~/project/wordlist.txt --session=my_first_session ~/project/passwords.txt
Vous devriez voir John the Ripper démarrer le processus de cassage. Il trouvera probablement le mot de passe rapidement car notre liste de mots est petite et contient le mot de passe correct.
Exemple de sortie :
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password (user1)
1g 0:00:00:00 DONE (2023-10-27 08:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed
Une fois la session terminée, vous pouvez afficher les mots de passe cassés en utilisant l'option --show.
john --show ~/project/passwords.txt
Exemple de sortie :
user1:password
1 password hash cracked, 0 left
Mettre en pause et reprendre une session de cassage
Dans cette étape, vous apprendrez comment mettre en pause une session John the Ripper en cours et la reprendre ensuite. Ceci est particulièrement utile pour les tâches de cassage longues que vous pourriez avoir besoin d'interrompre et de continuer plus tard.
Tout d'abord, créons une liste de mots factice plus grande pour nous assurer que le processus de cassage prend un certain temps, nous permettant ainsi de le mettre en pause.
seq 1000000 | sed "s/$/password/" > ~/project/large_wordlist.txt
Maintenant, démarrez une nouvelle session John the Ripper en utilisant cette grande liste de mots. Nous nommerons cette session long_session.
john --format=raw-md5 --wordlist=~/project/large_wordlist.txt --session=long_session ~/project/passwords.txt
Une fois le cassage démarré, appuyez immédiatement sur Ctrl+C pour mettre la session en pause. John the Ripper sauvegardera son état actuel dans le fichier de session.
Exemple de sortie après avoir appuyé sur Ctrl+C :
...
Press 'q' or Ctrl-C to abort, almost any other key for status
^C
Session aborted.
Pour reprendre la session, utilisez l'option --restore avec le nom de la session.
john --restore=long_session
John the Ripper reprendra exactement là où il s'était arrêté. Vous pouvez le laisser s'exécuter jusqu'à ce qu'il trouve le mot de passe ou appuyer à nouveau sur Ctrl+C pour le mettre en pause.
Exemple de sortie après la reprise :
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
...
password (user1)
1g 0:00:00:00 DONE (2023-10-27 08:35) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed
Comprendre les fichiers de session
Dans cette étape, vous allez examiner les fichiers de session créés par John the Ripper. Ces fichiers stockent l'état de vos sessions de cassage, permettant la mise en pause, la reprise et la récupération.
John the Ripper stocke généralement les fichiers de session dans le répertoire ~/.john. Listons le contenu de ce répertoire pour voir les fichiers de session que vous avez créés.
ls -l ~/.john/
Vous devriez voir des fichiers tels que my_first_session.rec et long_session.rec. L'extension .rec indique un fichier de récupération (recovery file).
Exemple de sortie :
total 16
-rw------- 1 labex labex 8192 Oct 27 08:30 my_first_session.rec
-rw------- 1 labex labex 8192 Oct 27 08:35 long_session.rec
Vous pouvez également afficher le contenu d'un fichier de session, bien qu'il s'agisse principalement de données binaires. Cependant, vous pouvez utiliser strings pour en extraire des chaînes lisibles, qui pourraient afficher certaines informations de session.
strings ~/.john/long_session.rec | head -n 10
Exemple de sortie (peut varier) :
JtR session file
long_session
raw-md5
/home/labex/project/passwords.txt
/home/labex/project/large_wordlist.txt
Ces fichiers de session sont cruciaux pour la capacité de John the Ripper à gérer et récupérer les processus de cassage.
Récupérer une session plantée
Dans cette étape, vous apprendrez comment récupérer une session John the Ripper qui aurait pu planter de manière inattendue. Ceci est similaire à la reprise d'une session mise en pause, car John the Ripper sauvegarde automatiquement son état périodiquement.
Tout d'abord, simulons un plantage. Démarrez une nouvelle session, mais cette fois, nous allons tuer le processus brutalement au lieu de le mettre en pause gracieusement.
john --format=raw-md5 --wordlist=~/project/large_wordlist.txt --session=crash_test ~/project/passwords.txt &
Notez le & à la fin, qui exécute la commande en arrière-plan. Cela nous permettra de la tuer.
Maintenant, trouvez l'ID du processus (PID) du processus john.
pgrep john
Exemple de sortie (le PID variera) :
12345
Maintenant, tuez le processus john en utilisant son PID. Remplacez YOUR_PID par le PID réel que vous avez trouvé.
kill YOUR_PID
Vous pourriez voir un message tel que Terminated ou Killed. Ceci simule un arrêt brutal inattendu.
Maintenant, essayez de restaurer la session crash_test. John the Ripper devrait être capable de reprendre là où il s'était arrêté, même après une terminaison brutale.
john --restore=crash_test
Exemple de sortie :
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
...
password (user1)
1g 0:00:00:00 DONE (2023-10-27 08:40) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed
Cela démontre les capacités de récupération robustes de John the Ripper, qui sont essentielles pour les opérations de cassage de longue durée.
Nettoyer les anciens fichiers de session
Dans cette étape, vous apprendrez comment nettoyer les anciens fichiers de session de John the Ripper. Bien que ces fichiers soient utiles pour la récupération, ils peuvent s'accumuler avec le temps, surtout si vous exécutez de nombreuses sessions.
Pour supprimer un fichier de session spécifique, vous pouvez utiliser l'option --remove avec le nom de la session. Supprimons le fichier my_first_session.
john --remove=my_first_session
Il vous sera demandé de confirmer la suppression. Tapez y et appuyez sur Entrée.
Exemple de sortie :
Remove session file ~/.john/my_first_session.rec? y
Vérifiez maintenant que le fichier a été supprimé en listant à nouveau le contenu du répertoire ~/.john.
ls -l ~/.john/
Vous ne devriez plus voir my_first_session.rec.
Exemple de sortie :
total 16
-rw------- 1 labex labex 8192 Oct 27 08:35 long_session.rec
-rw------- 1 labex labex 8192 Oct 27 08:40 crash_test.rec
Vous pouvez également supprimer manuellement les fichiers .rec si vous préférez, mais l'utilisation de john --remove est la méthode recommandée car elle garantit un nettoyage approprié.
rm ~/.john/long_session.rec
rm ~/.john/crash_test.rec
Enfin, vérifiez que tous les fichiers de session sont supprimés.
ls -l ~/.john/
Exemple de sortie :
total 0
Garder vos fichiers de session organisés aide à gérer efficacement vos tâches de cassage.
Résumé
Dans ce laboratoire, vous avez acquis une expérience pratique dans la gestion des sessions de cassage de John the Ripper. Vous avez appris à initier une session, à la mettre en pause et à la reprendre efficacement, et à comprendre le rôle essentiel des fichiers de session pour maintenir la progression du cassage. De plus, vous avez exploré comment récupérer une session après un plantage inattendu, soulignant la résilience de John the Ripper. Enfin, vous vous êtes entraîné à nettoyer les anciens fichiers de session pour maintenir votre environnement de travail ordonné. Ces compétences sont fondamentales pour toute personne effectuant des tâches d'audit ou de cassage de mots de passe de longue durée avec John the Ripper.


