Craquer les mots de passe ZIP avec John the Ripper

HydraHydraBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à craquer les fichiers ZIP protégés par mot de passe à l'aide de John the Ripper, un outil essentiel en cybersécurité pour les tests de pénétration. Vous allez pratiquer l'extraction des hachages à partir de fichiers ZIP et effectuer à la fois des attaques par dictionnaire et des attaques par force brute pour récupérer les mots de passe.

Le laboratoire offre une expérience pratique en matière d'installation de John the Ripper, de création de fichiers de test avec des mots de passe faibles et de vérification des identifiants craqués. Grâce à cet exercice, vous comprendrez les vulnérabilités des mots de passe faibles et l'importance d'un cryptage solide pour la sécurité des fichiers.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/installation("Installation and Setup") subgraph Lab Skills nmap/installation -.-> lab-549930{{"Craquer les mots de passe ZIP avec John the Ripper"}} wireshark/installation -.-> lab-549930{{"Craquer les mots de passe ZIP avec John the Ripper"}} hydra/installation -.-> lab-549930{{"Craquer les mots de passe ZIP avec John the Ripper"}} end

Installer John the Ripper

Dans cette étape, vous allez installer John the Ripper, un puissant outil de craquage de mots de passe largement utilisé en cybersécurité. Avant de commencer, comprenons ce que fait John the Ripper : il aide les professionnels de la sécurité à tester la force des mots de passe en essayant différentes combinaisons (attaque par force brute) ou en utilisant des listes de mots (attaques par dictionnaire) pour deviner les mots de passe.

L'environnement de machine virtuelle (VM) LabEx est pré-configuré avec toutes les dépendances requises, ce qui facilite l'installation. Nous allons utiliser le gestionnaire de paquets d'Ubuntu (apt) qui gère les installations et les mises à jour de logiciels.

  1. Tout d'abord, nous devons mettre à jour la liste des paquets. Cela permet à votre système de connaître les dernières versions disponibles de tous les logiciels :

    sudo apt update

    La commande sudo vous donne les privilèges d'administrateur, tandis que apt update rafraîchit la liste des paquets disponibles.

  2. Maintenant, installez John the Ripper avec cette commande :

    sudo apt install john -y

    Le paramètre -y confirme automatiquement l'installation, vous évitant d'avoir à taper 'yes' pendant le processus.

  3. Une fois l'installation terminée, vérifions que tout fonctionne correctement en vérifiant la version installée :

    john --version

    Vous devriez voir une sortie similaire à :

    John the Ripper 1.9.0-jumbo-1

Ce contrôle de version confirme que John the Ripper est prêt à être utilisé. Dans les étapes suivantes, nous allons utiliser cet outil pour démontrer comment les fichiers ZIP protégés par mot de passe peuvent être vulnérables aux tentatives de craquage. Assurez-vous de voir le numéro de version avant de continuer, car cela indique que l'installation a réussi.

Créer un fichier ZIP protégé par mot de passe

Dans cette étape, vous allez créer un fichier ZIP protégé par mot de passe que nous utiliserons pour pratiquer le craquage de mots de passe dans les étapes suivantes. Le format ZIP est un format d'archivage courant qui prend en charge la protection par mot de passe pour sécuriser les fichiers sensibles. Comprendre comment créer des fichiers ZIP protégés est fondamental car de nombreux systèmes réels utilisent cette méthode pour la sécurité des fichiers.

  1. Tout d'abord, créons un fichier texte d'exemple à protéger. Nous utiliserons un simple fichier texte à des fins de démonstration :

    echo "This is a secret file" > secret.txt

    Cette commande crée un nouveau fichier appelé secret.txt contenant le texte "This is a secret file". Le symbole > redirige la sortie de la commande echo dans le fichier.

  2. Maintenant, nous allons créer un fichier ZIP protégé par mot de passe à l'aide de l'utilitaire zip. Le paramètre -e active le cryptage. Nous utilisons "password123" comme mot de passe d'exemple à des fins d'apprentissage (notez que c'est un mot de passe faible et qu'il ne devrait jamais être utilisé dans des scénarios réels) :

    zip -e secret.zip secret.txt

    La commande vous demandera deux fois d'entrer et de vérifier le mot de passe. Cette double saisie permet d'éviter les erreurs de frappe dans votre mot de passe :

    Enter password:
    Verify password:
  3. Vérifions que le fichier ZIP a été créé avec succès. La commande ls -l affiche des informations détaillées sur les fichiers dans le répertoire actuel :

    ls -l secret.zip

    Vous devriez voir une sortie similaire à celle-ci, indiquant que le fichier existe et montrant sa taille et son horodatage :

    -rw-r--r-- 1 labex labex 210 May 10 10:00 secret.zip
  4. Enfin, testons la protection par mot de passe en essayant d'extraire le fichier sans fournir le mot de passe. Cela confirme que notre fichier ZIP est correctement sécurisé :

    unzip secret.zip

    Le système devrait vous demander un mot de passe et afficher une erreur si vous entrez le mot de passe incorrect ou annulez l'opération.

Ce fichier ZIP protégé servira de cas de test dans les étapes suivantes où nous extrairons son hachage et tenterons de craquer le mot de passe à l'aide de John the Ripper. La création de ce fichier de test vous-même vous aide à comprendre les deux aspects du processus de sécurité - comment la protection est appliquée et comment elle peut être testée.

Extraire le hachage du fichier ZIP

Dans cette étape, vous allez extraire le hachage cryptographique du fichier ZIP protégé par mot de passe que nous avons créé précédemment. Ce processus convertit les informations de sécurité du fichier ZIP en un format que John the Ripper peut comprendre et traiter pour le craquage de mots de passe.

  1. Tout d'abord, naviguons jusqu'à notre répertoire de travail et vérifions que le fichier ZIP existe. Cela garantit que nous travaillons avec le bon fichier à l'endroit approprié :

    cd ~/project
    ls secret.zip
  2. Maintenant, nous allons utiliser l'outil spécialisé de John the Ripper appelé zip2john. Cet utilitaire extrait le hachage du mot de passe des fichiers ZIP dans un format que John peut craquer. Le symbole > redirige la sortie vers un nouveau fichier :

    zip2john secret.zip > zip_hash.txt
  3. Affichons le hachage extrait pour comprendre quelles informations ont été capturées. La commande cat affiche le contenu d'un fichier dans le terminal :

    cat zip_hash.txt

    Vous devriez voir une sortie similaire à cet exemple (votre hachage réel sera différent) :

    secret.zip:$pkzip$1*2*2*0*1c*1a*5e9b8f7d*0*42*0*1c*5e9b*55dc*secret.txt*$/pkzip$
  4. Le hachage contient plusieurs composants importants :

    • secret.zip : Le nom du fichier ZIP d'origine
    • $pkzip$ : Identifie ceci comme un hachage au format PKZIP
    • La longue chaîne de nombres et de lettres : Les données réelles du mot de passe crypté
    • secret.txt : Le nom du fichier à l'intérieur de l'archive ZIP

Ce fichier de hachage extrait contient maintenant toutes les informations nécessaires sur la protection par mot de passe du fichier ZIP, formatées spécifiquement pour être traitées par John the Ripper. Dans l'étape suivante, nous utiliserons ce fichier de hachage pour tenter de récupérer le mot de passe grâce à diverses méthodes de craquage.

Utiliser John pour le craquer

Dans cette étape, vous utiliserez John the Ripper pour tenter de craquer le mot de passe du fichier ZIP que nous avons protégé précédemment. John est un outil puissant de craquage de mots de passe qui fonctionne en essayant différentes combinaisons de mots de passe par rapport au hachage que nous avons extrait. Le hachage est comme une empreinte digitale numérique de votre mot de passe que John peut analyser sans avoir besoin du fichier ZIP d'origine.

  1. Tout d'abord, assurez-vous d'être dans le bon répertoire contenant le fichier de hachage. Cela est important car John a besoin d'accéder au fichier de hachage que nous avons créé à l'étape précédente :

    cd ~/project
    ls zip_hash.txt

    La commande ls liste simplement les fichiers pour confirmer que zip_hash.txt existe dans votre répertoire actuel.

  2. Maintenant, nous allons exécuter John the Ripper en spécifiant le format PKZIP, car nous travaillons avec un fichier ZIP. Le paramètre --format=PKZIP indique à John le type de cryptage à attendre :

    john --format=PKZIP zip_hash.txt
  3. John affichera la progression en temps réel tandis qu'il essaye différentes combinaisons de mots de passe. Dans notre cas, comme nous avons utilisé un mot de passe faible ("password123"), le craquage devrait être terminé presque instantanément. Voici à quoi ressemble la sortie en cas de succès :

    Loaded 1 password hash (PKZIP [32/64])
    Will run 2 OpenMP threads
    Press 'q' or Ctrl-C to abort, almost any other key for status
    password123      (secret.zip)
    1g 0:00:00:00 DONE (2023-05-10 10:00) 50.00g/s 50.00p/s 50.00c/s 50.00C/s password123
    Use the "--show" option to display all of the cracked passwords reliably
    Session completed

    Le "1g" indique que John a testé 1 supposition, et "password123" est le mot de passe craqué.

  4. Pour afficher le mot de passe craqué dans un format propre, nous utilisons l'option --show. Cette commande affiche tous les mots de passe craqués avec succès à partir du fichier de hachage :

    john --show zip_hash.txt

    Vous verrez une sortie comme celle-ci :

    secret.zip:password123:secret.txt:secret.zip

    Cette sortie montre quatre informations séparées par des deux-points : le nom du fichier ZIP, le mot de passe craqué, le fichier contenu dans l'archive et le nom de l'archive à nouveau.

Maintenant que nous avons le mot de passe, nous pouvons passer à l'étape suivante pour vérifier qu'il fonctionne réellement avec notre fichier ZIP d'origine. Cette vérification est cruciale car elle confirme que notre processus de craquage a été réussi.

Confirmer le mot de passe

Dans cette étape finale, vous allez vérifier que le mot de passe craqué par John the Ripper permet effectivement d'extraire le fichier ZIP protégé. Cette étape de confirmation est cruciale dans les évaluations de sécurité réelles pour valider les résultats du craquage. Imaginez cela comme tester une clé que vous avez trouvée - vous devez réellement essayer d'ouvrir la serrure pour confirmer qu'elle fonctionne.

  1. Tout d'abord, vérifions le mot de passe craqué à l'étape précédente. La commande suivante affiche les mots de passe que John a réussi à craquer :

    john --show zip_hash.txt

    Vous devriez voir une sortie similaire à celle-ci, montrant le nom du fichier, le mot de passe craqué et le contenu :

    secret.zip:password123:secret.txt:secret.zip
  2. Maintenant, testons si ce mot de passe fonctionne réellement en essayant d'extraire le fichier ZIP. La commande unzip est l'outil standard pour extraire les archives ZIP sous Linux :

    unzip secret.zip

    Le système vous demandera le mot de passe. Entrez "password123" (celui que nous venons de craquer) :

    Archive:  secret.zip
    [secret.zip] secret.txt password:
  3. Après avoir entré le bon mot de passe, nous devons vérifier deux choses : que le fichier a été extrait et que son contenu correspond à ce que nous attendons. Ces commandes listent les fichiers dans le répertoire et affichent le contenu du fichier secret :

    ls
    cat secret.txt

    Vous devriez voir ce qui suit, confirmant une extraction réussie :

    This is a secret file
  4. Enfin, il est recommandé de nettoyer les fichiers extraits une fois les tests terminés. Cela garde votre espace de travail propre et évite une utilisation accidentelle de fichiers de test dans de futures exercices :

    rm secret.txt

Cette extraction réussie confirme que John the Ripper a correctement craqué le mot de passe du fichier ZIP. Dans une évaluation de sécurité réelle, cette étape de vérification est essentielle avant de rapporter les résultats. Elle prouve que le mot de passe craqué n'est pas seulement une correspondance théorique, mais qu'il permet effectivement d'accéder au contenu protégé.

Résumé

Dans ce laboratoire, vous avez appris à installer John the Ripper via le gestionnaire de paquets apt et à vérifier que son installation s'est bien déroulée. Vous avez également pratiqué la création d'un fichier ZIP protégé par un mot de passe avec un document texte d'exemple pour simuler des scénarios réels de craquage de mots de passe.

L'exercice a présenté des techniques fondamentales d'évaluation en cybersécurité en montrant la préparation d'un fichier cible pour le craquage de mot de passe. Ces étapes initiales, y compris l'installation de l'outil et la validation de la sécurité, constituent la base essentielle pour les opérations avancées de récupération de mots de passe.