Introduction
Bienvenue dans ce laboratoire sur l'utilisation de John the Ripper (JtR) dans des scénarios de tests d'intrusion. John the Ripper est un outil de cassage de mots de passe open-source puissant et populaire. Pour un testeur d'intrusion, c'est un utilitaire essentiel pour identifier et exploiter les mots de passe faibles, qui restent l'une des vulnérabilités de sécurité les plus courantes.
Dans ce laboratoire, vous apprendrez comment intégrer JtR dans un flux de travail typique de pentesting. Vous commencerez par casser le mot de passe d'un utilisateur à partir d'un fichier shadow capturé, utiliserez ces informations dans un contexte d'escalade de privilèges, puis appliquerez JtR pour casser le mot de passe d'un fichier protégé. Enfin, vous apprendrez les étapes cruciales de documentation et de rapport de vos découvertes aux parties prenantes.
Intégrer John the Ripper dans un Flux de Travail de Pentesting
Dans cette étape, vous allez effectuer la première phase d'une attaque par mot de passe : le cassage des hachages obtenus lors de la reconnaissance. Une cible courante pour l'escalade de privilèges locale est le fichier /etc/shadow, qui stocke les hachages de mots de passe des utilisateurs sur les systèmes Linux. Nous avons déjà simulé cela en fournissant un fichier shadow.txt dans votre répertoire ~/project.
Tout d'abord, exécutons John the Ripper contre le fichier shadow.txt en utilisant une liste de mots personnalisée. Une liste de mots est simplement un fichier texte contenant des mots de passe potentiels.
Exécutez la commande suivante pour démarrer le processus de cassage :
john --wordlist=wordlist.txt shadow.txt
John chargera les hachages et testera chaque mot de passe de wordlist.txt contre eux. Comme le mot de passe de weakuser se trouve dans notre liste de mots, il sera rapidement cassé.
Using default input encoding: UTF-8
Loaded 1 password hash (sha512, 512/512 AVX512BW 16x)
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 4 processing threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (weakuser)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Une fois qu'un mot de passe est cassé, John le stocke dans un fichier appelé john.pot situé dans le répertoire ~/.john/. Pour afficher les mots de passe cassés pour un fichier de hachage spécifique, vous pouvez utiliser l'option --show.
Exécutez cette commande pour afficher le mot de passe cassé :
john --show shadow.txt
Vous verrez le nom d'utilisateur et le mot de passe cassé.
weakuser:password123:19657:0:99999:7:::
1 password hash cracked, 0 left
Vous avez réussi à casser le mot de passe de l'utilisateur, une première étape critique dans de nombreux tests d'intrusion.
Utiliser John the Ripper pour l'Escalade de Privilèges Locale
Dans cette étape, vous apprendrez comment un mot de passe cassé peut être utilisé pour escalader les privilèges. Après avoir cassé le mot de passe de weakuser, la prochaine étape logique est de voir quel accès ce compte fournit. Si weakuser possède des privilèges sudo ou un accès à des fichiers sensibles, vous pouvez obtenir plus de contrôle sur le système.
Simulons cela en tentant de passer au compte weakuser en utilisant le mot de passe que vous venez de casser (password123).
Utilisez la commande su (substitute user) pour passer à weakuser :
su weakuser
Le système vous demandera un mot de passe. Entrez password123 et appuyez sur Entrée.
Password:
Si le mot de passe est correct, votre invite de commande changera, indiquant que vous opérez maintenant en tant que weakuser.
weakuser@...:/home/labex/project$
Dans un véritable test d'intrusion, vous exploreriez maintenant le système du point de vue de cet utilisateur, par exemple, en exécutant sudo -l pour vérifier les droits sudo. Pour ce laboratoire, il suffit de démontrer que vous pouvez accéder au compte.
Maintenant, tapez exit pour revenir à votre shell d'utilisateur labex d'origine.
exit
Cet exercice démontre l'impact direct d'un mot de passe faible : il peut conduire à un accès non autorisé au compte, ce qui constitue un tremplin pour une compromission ultérieure du système.
Appliquer John the Ripper dans les Tests d'Intrusion Réseau
Dans cette étape, vous verrez comment la polyvalence de John the Ripper s'étend au-delà des hachages de mots de passe système. Les pentesters trouvent souvent des fichiers protégés par mot de passe, tels que des archives ZIP, sur des partages de fichiers ou lors de la post-exploitation. JtR peut également les casser.
Nous avons fourni un fichier protégé par mot de passe nommé protected.zip dans votre répertoire ~/project. Le processus comporte deux étapes : d'abord, extraire un hachage cassable du fichier, puis, utiliser John pour casser ce hachage.
De nombreux outils liés à JtR aident à extraire les hachages de différents types de fichiers. Pour les fichiers ZIP, nous utilisons zip2john. Exécutez la commande suivante pour extraire le hachage de protected.zip et l'enregistrer dans un fichier nommé zip_hash.txt :
zip2john protected.zip > zip_hash.txt
Vous pouvez afficher le contenu de zip_hash.txt pour voir à quoi ressemble le hachage.
cat zip_hash.txt
Maintenant, exécutez John the Ripper sur ce nouveau fichier de hachage. Cette fois, nous ne spécifierons pas de liste de mots et laisserons John utiliser ses modes par défaut, qui incluent un mode de cassage unique qui essaie des variations de mots de passe courantes.
john zip_hash.txt
John devrait casser le mot de passe très rapidement.
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP, 32/64)
Cost 1 (iteration count) is 1000 for all loaded hashes
Will run 4 processing threads
Press 'q' or Ctrl-C to abort, almost any other key for status
supersecret (protected.zip)
1g 0:00:00:00 DONE (2023-10-27 10:35) 100.0g/s 12345p/s 12345c/s 12345C/s supersecret
Session completed
Comme précédemment, utilisez l'option --show pour afficher le mot de passe cassé pour le fichier ZIP.
john --show zip_hash.txt
protected.zip:supersecret
1 password hash cracked, 0 left
Vous avez réussi à récupérer le mot de passe du fichier ZIP, démontrant ainsi comment JtR peut être appliqué à différents types de données trouvés lors d'un test d'intrusion.
Documenter les Constatations des Attaques de John the Ripper
Dans cette étape, vous vous concentrerez sur un aspect critique et non technique des tests d'intrusion : la documentation. Il ne suffit pas de trouver des vulnérabilités ; vous devez les documenter clairement afin qu'elles puissent être corrigées. Un bon rapport détaille la vulnérabilité, son impact et une recommandation pour sa remédiation.
Vous allez maintenant créer un rapport de constatations simple dans un fichier markdown. Utilisez l'éditeur de texte nano pour créer un fichier nommé findings.md.
nano findings.md
À l'intérieur de l'éditeur nano, copiez et collez le texte suivant. Ce modèle documente les deux vulnérabilités que vous avez découvertes jusqu'à présent.
## Constatations du Test d'Intrusion - Mots de Passe Faibles
### Constatation 1 : Mot de passe faible pour le compte utilisateur
- **Vulnérabilité :** Mot de passe faible pour l'utilisateur `weakuser`.
- **Mot de passe :** `password123`
- **Impact :** Potentiel d'escalade de privilèges locale et d'accès non autorisé au système.
- **Recommandation :** Imposer une politique de mots de passe forts qui exige complexité et longueur. Réinitialiser le mot de passe de `weakuser`.
### Constatation 2 : Mot de passe faible sur une archive protégée
- **Vulnérabilité :** Mot de passe faible pour l'archive `protected.zip`.
- **Mot de passe :** `supersecret`
- **Impact :** Les données sensibles contenues dans l'archive sont exposées à toute personne trouvant le fichier.
- **Recommandation :** Utiliser des mots de passe forts et complexes pour tous les fichiers et archives chiffrés.
Après avoir collé le texte, enregistrez le fichier et quittez nano en appuyant sur Ctrl+X, puis Y, et enfin Entrée.
Vous avez maintenant créé un enregistrement clair et concis de vos constatations, ce qui est un élément essentiel de tout test d'intrusion professionnel.
Rapporter les Mots de Passe Faibles aux Parties Prenantes
Dans cette dernière étape, vous vous entraînerez à créer un résumé de haut niveau adapté aux parties prenantes, telles que les administrateurs système ou la direction. Alors que le document de constatations détaillé est destiné aux équipes techniques, un rapport de synthèse communique le risque et la nécessité d'agir de manière plus directe.
Vous allez créer un fichier texte simple nommé report_summary.txt qui simule un e-mail ou un résumé de rapport.
Utilisez l'éditeur nano pour créer le fichier :
nano report_summary.txt
À l'intérieur de l'éditeur nano, copiez et collez le résumé suivant. Ce texte communique clairement et de manière concise le problème et l'action requise.
À : Administrateur Système
De : Testeur d'Intrusion
Objet : Vulnérabilité Critique : Mots de passe faibles détectés
Ce rapport résume les vulnérabilités critiques de mots de passe découvertes lors du récent test d'intrusion.
1. L'utilisateur 'weakuser' possède un mot de passe cassable ('password123'), présentant un risque d'escalade de privilèges.
2. Un fichier protégé 'protected.zip' utilise un mot de passe faible ('supersecret'), exposant son contenu.
Une action immédiate est requise pour imposer une politique de mots de passe plus forte et réinitialiser les mots de passe faibles identifiés.
Enregistrez le fichier et quittez nano en appuyant sur Ctrl+X, puis Y, et Entrée.
Cela finalise le flux de travail de test d'intrusion pour ce scénario. Vous avez non seulement identifié et exploité des vulnérabilités, mais vous avez également documenté et préparé un rapport pour garantir qu'elles soient traitées. Cela complète le cycle de la découverte à la remédiation.
Résumé
Félicitations pour avoir terminé ce laboratoire ! Vous avez parcouru avec succès un flux de travail de test d'intrusion réaliste en utilisant John the Ripper.
Dans ce laboratoire, vous avez appris à :
- Intégrer John the Ripper dans un processus de pentesting en cassant des hachages à partir d'un fichier
shadow. - Utiliser un mot de passe cassé pour simuler une tentative d'escalade de privilèges locale.
- Appliquer JtR à différents types de données en cassant le mot de passe d'une archive ZIP protégée.
- Comprendre l'importance critique de documenter vos constatations de manière claire et structurée.
- Créer un rapport de synthèse pour communiquer efficacement les vulnérabilités aux parties prenantes.
Ces compétences sont fondamentales pour tout professionnel de la cybersécurité impliqué dans le hacking éthique et l'audit de sécurité.


