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. Conçu à l’origine pour tester la robustesse des mots de passe sur des systèmes Unix, il a ensuite été adapté à d’autres systèmes comme Linux, Windows et macOS.
  • Fonctionnalités : L’outil combine différents modes de craquage et autodétecte le type de hachage utilisé. Il prend en charge plusieurs types de hachages (MD5, SHA1, SHA256, Whirlpool, etc.).
  • Importance dans les tests de pénétration : JtR est l’un des outils les plus populaires pour tester la résistance des mots de passe. Il aide à détecter des vulnérabilités avant qu’elles ne soient exploitées.
  • Téléchargement et installation : Disponible sur le site web d’Openwall ou sur GitHub. Sur Linux (ex. Kali Linux), il est souvent préinstallé.

Exercice : Installer John the Ripper sur votre machine locale en suivant les instructions du dépôt GitHub.

3. Modes de craquage disponibles dans John the Ripper

John the Ripper offre trois modes de craquage principaux :

  1. Single Crack Mode :
    Utilise les informations connues, comme le nom d’utilisateur, pour générer des variantes probables du mot de passe

john --single [fichier_mdp]
  • Exercice : Créer un fichier avec des noms d’utilisateur et hachages, puis utiliser le mode Single Crack.

  • Wordlist Crack Mode :
    Compare le hachage du mot de passe à une liste de mots prédéfinie (dictionnaire ou wordlist)

john --wordlist=[chemin/wordlist] --format=[type_hachage] [fichier_mdp]
  • Exercice : Utiliser une wordlist personnalisée pour craquer des mots de passe en SHA1.

  • Incremental Mode :
    Teste toutes les combinaisons possibles de caractères. Plus lent, mais efficace pour les mots de passe complexes.

john --incremental [fichier_mdp]

4. Craquage de mots de passe utilisateurs sous Linux

Sous Linux, les mots de passe sont chiffrés dans /etc/shadow.

  • Exemple 1 : Craquage du mot de passe d’un utilisateur spécifique
    Extraire le hachage de /etc/shadow et le copier dans un fichier texte (ex. crack.txt).

john --wordlist=/usr/share/john/password.lst crack.txt

Exemple 2 : Craquage de tous les utilisateurs
Utiliser unshadow pour combiner /etc/passwd et /etc/shadow dans un seul fichier.

unshadow /etc/passwd /etc/shadow > crack.txt
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 et de reprendre un processus de craquage.

  • Interruption : Ctrl + C ou q
  • Reprise : 
john --restore

Exercice : Lancer un craquage, l’interrompre, puis le restaurer.

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

  • Hachages (MD5, SHA1, SHA256, Whirlpool, etc.)
    Utiliser des wordlists comme rockyou.txt :
# Pour SHA1
john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha1 crack.txt

# 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, …) et les craquer.

  • Fichiers compressés (RAR, ZIP, 7-Zip)
    Convertir d’abord les archives avec zip2john ou rar2john :
# ZIP
zip2john file.zip > crack.txt
john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

# RAR
rar2john file.rar > crack.txt
john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

Exercice : Protéger des fichiers ZIP et RAR par mot de passe, puis les craquer.

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

  • Clés SSH :
    Convertir avec ssh2john :

ssh2john id_rsa > crack.txt
john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

Fichiers PDF :
Convertir avec pdf2john :

pdf2john file.pdf > crack.txt
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 a montré comment utiliser John the Ripper pour craquer différents types de mots de passe et de hachages. Outil essentiel en test de pénétration, il doit être utilisé de manière légale et éthique. En tant que professionnel de la sécurité, il est de votre responsabilité de protéger les systèmes en les 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 le mode incrémentiel pour des mots de passe longs.
  • Analyser l’impact du temps sur le craquage selon les méthodes utilisées.
Retour en haut