Accueil » Cours » Administration sécurité » Introduction à John the Ripper

1. Objectif :

Ce cours vise à initier les étudiants à l’utilisation de John the Ripper, un outil de craquage de mots de passe fréquemment utilisé dans les tests de pénétration. Il leur apprendra à utiliser cet outil pour identifier et exploiter les faiblesses des systèmes de gestion de mots de passe, tout en mettant l’accent sur l’importance de l’éthique dans la cybersécurité.

2. Introduction

  • Qu’est-ce que John the Ripper ?
    • Définition : John the Ripper (JtR) est un outil open-source développé par Openwall. Il a été conçu pour être un logiciel de craquage de mots de passe, principalement utilisé pour tester la robustesse des mots de passe dans des systèmes Unix au départ, puis adapté à d’autres systèmes d’exploitation comme Linux, Windows et MacOS.
    • Fonctionnalités : L’outil combine différents modes de craquage et autodétecte le type de hachage utilisé pour un mot de passe. Il est capable de travailler sur plusieurs types de hachages courants tels que MD5, SHA1, SHA256, Whirlpool, et d’autres.
    • Importance dans les tests de pénétration : John the Ripper est l’un des outils les plus populaires utilisés par les professionnels en cybersécurité pour tester la résistance des mots de passe. Cet outil est crucial pour détecter des vulnérabilités avant qu’elles ne soient exploitées par des attaquants malveillants.
    • Téléchargement et installation : John the Ripper peut être téléchargé à partir du site web d’Openwall ou du dépôt officiel GitHub. Sous Linux (notamment dans Kali Linux), il est souvent préinstallé et peut être lancé directement depuis le terminal.
    Exercice : Installer John the Ripper sur votre machine locale en suivant les instructions depuis le dépôt GitHub.

3. Modes de craquage disponibles dans John the Ripper

John the Ripper offre trois principaux modes de craquage des mots de passe.

  • Single Crack Mode :

    • Ce mode utilise les informations connues, telles que le nom d’utilisateur, pour générer des variantes de mots de passe probables. Par exemple, si le nom d’utilisateur est “admin”, John tentera des mots comme “admin123”, “Admin”, ou “adm1n”.
    • Commande : john --single [fichier_mdp]

    Exercice : Créer un fichier contenant des noms d’utilisateur et hachages, puis utiliser le mode Single Crack pour tester le craquage.

  • Wordlist Crack Mode :

    • Dans ce mode, JtR compare le hachage du mot de passe avec une liste prédéfinie de mots de passe (dictionnaire ou wordlist). John the Ripper dispose d’une wordlist appelée password.lst avec des mots de passe communs. On peut aussi utiliser des wordlists personnalisées, comme RockYou.
    • Commande : john --wordlist=[chemin/wordlist] --format=[type_hachage] [fichier_mdp]

    Exercice : Utiliser une wordlist personnalisée pour craquer des mots de passe chiffrés en SHA1.

  • Incremental Mode :

    • Ce mode est le plus exhaustif et consiste à tester toutes les combinaisons possibles de caractères jusqu’à trouver le bon mot de passe. Ce mode est plus lent mais efficace pour des mots de passe non basés sur des patterns ou des mots courants.
    • Commande : john --incremental [fichier_mdp]

    Exercice : Utiliser le mode Incremental pour craquer un fichier protégé par un mot de passe complexe.

4. Craquage de mots de passe utilisateurs sous Linux

  • Fichiers shadow dans Linux : Sous Linux, les mots de passe des utilisateurs sont stockés de manière chiffrée dans un fichier appelé /etc/shadow. Ce fichier est protégé, mais un attaquant ayant un accès root pourrait le lire et tenter de craquer les mots de passe.

    • Premier exemple : craquage des mots de passe d’un utilisateur spécifique :
      • Pour craquer un mot de passe d’un utilisateur spécifique (par exemple, “pavan”), nous devons d’abord extraire son hachage de /etc/shadow et le copier dans un fichier texte. Ensuite, on utilise John the Ripper pour le craquer.
      • Commande : john --wordlist=/usr/share/john/password.lst crack.txt
    • Deuxième exemple : craquage de tous les utilisateurs :
      • En utilisant la commande unshadow, nous pouvons combiner les fichiers /etc/passwd et /etc/shadow afin que John puisse utiliser ces informations pour craquer les mots de passe de tous les utilisateurs.
      • Commande : unshadow /etc/passwd /etc/shadow > crack.txt puis john --wordlist=/usr/share/john/password.lst crack.txt

    Exercice : Utiliser les fichiers passwd et shadow d’une machine virtuelle pour simuler un craquage.

5. Interruption et reprise du processus de craquage

  • John the Ripper permet d’interrompre un processus de craquage et de le reprendre plus tard. Cela est utile lorsque vous travaillez sur de longues sessions de craquage et que vous souhaitez sauvegarder vos progrès.
    • Interruption : Appuyer sur Ctrl + C ou q pour arrêter le craquage.
    • Reprise : john --restore
    Exercice : Lancer un craquage, l’interrompre et le restaurer à l’aide des commandes ci-dessus.

6. Craquage de différents formats de fichiers et hachages

  • MD5, SHA1, SHA256, Whirlpool : John the Ripper supporte une multitude de formats de hachage. Utilisez des listes de mots comme RockYou pour tester ces hachages.

    • Commande pour SHA1 : john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha1 crack.txt
    • Commande pour MD5 : john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-md5 crack.txt

    Exercice : Créer un fichier contenant différents hachages (MD5, SHA1, etc.) et essayer de les craquer avec John the Ripper.

  • Craquage de fichiers compressés (RAR, ZIP, 7-Zip) :

    • John the Ripper peut craquer des fichiers compressés protégés par des mots de passe. Pour cela, il faut d’abord convertir ces fichiers en un format que John peut lire à l’aide des utilitaires comme rar2john ou zip2john.
    • Commande pour ZIP : zip2john file.zip > crack.txt puis john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt
    • Commande pour RAR : rar2john file.rar > crack.txt puis john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

    Exercice : Protéger des fichiers ZIP et RAR avec des mots de passe, puis les craquer à l’aide de John the Ripper.

7. Craquage de mots de passe de fichiers spécifiques

  • Fichiers SSH : Les clés privées SSH protégées par mot de passe peuvent également être craquées en utilisant l’utilitaire ssh2john pour convertir les clés dans un format crackable.

    • Commande : ssh2john id_rsa > crack.txt puis john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt
  • Fichiers PDF : Les PDF protégés par des mots de passe peuvent être convertis en un format crackable à l’aide de pdf2john.

    • Commande : pdf2john file.pdf > crack.txt puis john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

    Exercice : Craquer un fichier PDF ou une clé SSH protégée.

8. Conclusion

  • Ce cours vous a montré comment utiliser John the Ripper pour craquer différents types de mots de passe et hachages. C’est un outil essentiel pour les tests de pénétration, mais il doit être utilisé dans le cadre légal et éthique de la cybersécurité. En tant que professionnel de la sécurité, vous avez la responsabilité de protéger les systèmes en testant et en renforçant leur sécurité.

Exercices de fin de cours :

  • Craquer des mots de passe complexes à partir de différents fichiers (ZIP, RAR, PDF, etc.).
  • Utiliser les techniques de craquage incrémentiel pour des mots de passe longs et difficiles.
  • Analyser l’impact du temps sur le craquage des mots de passe en fonction des méthodes utilisées.
Retour en haut