Intégrer John the Ripper avec d'autres outils

Kali LinuxBeginner
Pratiquer maintenant

Introduction

John the Ripper (JtR) est un outil puissant et populaire de cassage de mots de passe open-source. Bien qu'il soit très efficace en soi, son véritable potentiel est révélé lorsqu'il est intégré dans un flux de travail de test de sécurité plus large avec d'autres outils. L'automatisation par script peut encore améliorer son efficacité, permettant des tâches d'audit et de récupération de mots de passe rationalisées et répétables.

Dans ce laboratoire, vous explorerez comment John the Ripper peut être intégré à d'autres outils de sécurité courants. Nous aborderons les flux de travail conceptuels pour l'utilisation de JtR avec Hashcat, Metasploit et Aircrack-ng. Vous acquerrez ensuite une expérience pratique en écrivant un script bash simple pour automatiser une session de cassage JtR.

Utiliser John the Ripper avec Hashcat (Conceptuel)

Dans cette étape, nous allons discuter de l'intégration conceptuelle de John the Ripper et Hashcat. Ce sont tous deux des outils de cassage de mots de passe de premier plan, mais ils ont des forces différentes. John the Ripper est réputé pour ses performances de cassage basées sur le CPU et sa capacité à détecter automatiquement de nombreux types de hachages. Hashcat, quant à lui, est le cassage de mots de passe le plus rapide au monde, excellant dans les attaques basées sur le GPU.

Bien qu'ils soient souvent considérés comme des alternatives, ils peuvent être utilisés ensemble dans un flux de travail. Par exemple, vous pourriez utiliser les utilitaires de John the Ripper, comme unshadow, pour extraire et combiner les fichiers de mots de passe et les fichiers shadow d'un système Linux.

Exemple de flux de travail :

  1. Obtenir les fichiers /etc/passwd et /etc/shadow d'un système Linux cible.
  2. Utiliser l'utilitaire unshadow de JtR pour les combiner en un seul fichier contenant les noms d'utilisateur et les hachages : unshadow passwd shadow > hashes_for_cracking.txt.
  3. Alimenter le fichier résultant hashes_for_cracking.txt à Hashcat pour exploiter ses puissantes capacités de cassage GPU.

Cette étape est purement conceptuelle pour vous aider à comprendre les synergies potentielles. Il n'y a pas de commandes à exécuter ici. L'idée principale est que les utilitaires d'un outil peuvent être utilisés pour préparer des données pour un autre.

Intégrer John the Ripper avec Metasploit (Conceptuel)

Dans cette étape, nous allons explorer l'intégration conceptuelle de John the Ripper avec le Metasploit Framework. Metasploit est un framework de test d'intrusion puissant utilisé pour découvrir, exploiter et valider des vulnérabilités. Une tâche courante après l'exploitation est de dumper les hachages de mots de passe d'un système compromis. C'est là que JtR devient une partie cruciale du flux de travail.

Exemple de flux de travail :

  1. Un attaquant obtient un accès initial à un système en utilisant une exploitation Metasploit.
  2. En utilisant un module post-exploitation au sein d'une session Meterpreter, tel que run post/windows/gather/hashdump, l'attaquant dump les hachages de mots de passe (par exemple, les hachages NTLM de la base de données SAM de Windows).
  3. L'attaquant enregistre ces hachages dans un fichier sur sa machine locale.
  4. John the Ripper est ensuite utilisé hors ligne pour casser ces hachages, en utilisant diverses techniques comme les attaques par liste de mots (wordlist attacks) ou la force brute (brute-force).
  5. Une fois qu'un mot de passe est cassé, il peut être utilisé pour escalader les privilèges ou pivoter vers d'autres systèmes du réseau, potentiellement en utilisant d'autres modules Metasploit comme psexec.

Cette intégration démontre un cycle de vie d'attaque typique où Metasploit est utilisé pour l'accès et JtR est utilisé pour le cassage de credentials hors ligne. Cette étape est conceptuelle, et aucune commande ne doit être exécutée.

Utiliser John the Ripper avec Aircrack-ng (Conceptuel)

Dans cette étape, nous allons discuter de la manière dont John the Ripper peut être utilisé avec la suite Aircrack-ng pour casser les mots de passe Wi-Fi. Aircrack-ng est un ensemble d'outils pour l'audit des réseaux sans fil. Une partie essentielle d'un audit WPA/WPA2 consiste à capturer la poignée de main à 4 voies (4-way handshake), qui se produit lorsqu'un client se connecte à un point d'accès. Cette poignée de main contient un hachage qui peut être cassé pour révéler la clé pré-partagée (PSK) du réseau.

Exemple de flux de travail :

  1. Utiliser des outils de la suite Aircrack-ng, comme airodump-ng, pour surveiller le trafic sans fil et capturer la poignée de main WPA/WPA2. Celle-ci est généralement enregistrée sous forme de fichier .cap.
  2. Le fichier .cap lui-même n'est pas un hachage. Il doit être converti dans un format que peut comprendre un outil de cassage de mots de passe. Vous pouvez utiliser aircrack-ng ou d'autres outils comme hcxpcaptool pour cette conversion.
  3. Par exemple, vous pouvez utiliser aircrack-ng avec l'option -J pour créer un fichier compatible Hashcat (.hccapx), que John the Ripper peut également traiter. La commande ressemblerait à ceci : aircrack-ng your_capture.cap -J output_hash_file.
  4. Enfin, vous utilisez John the Ripper pour casser le fichier de hachage à l'aide d'une liste de mots (wordlist) : john --wordlist=passwords.txt output_hash_file.hccapx.

Ce flux de travail montre comment un outil spécialisé pour un domaine (le Wi-Fi) peut fournir la matière première qu'un outil à usage général comme JtR peut traiter. Cette étape est conceptuelle, et aucune commande n'est requise.

Script John the Ripper pour l'automatisation

Dans cette étape, nous allons passer de la théorie à la pratique. La manière la plus courante d'"intégrer" John the Ripper est d'encapsuler son interface en ligne de commande dans des scripts. Cela vous permet d'automatiser les tâches répétitives et de l'intégrer dans des chaînes d'outils plus larges. Nous allons créer un script bash simple pour exécuter une attaque par liste de mots, puis afficher les résultats.

Tout d'abord, créons le script d'automatisation. Utilisez l'éditeur nano pour créer un nouveau fichier nommé crack.sh dans votre répertoire actuel, ~/project.

nano crack.sh

Maintenant, ajoutez le contenu suivant au fichier. Ce script prendra un fichier de hachages et un fichier de liste de mots en entrée, exécutera John, puis affichera tous les mots de passe cassés.

#!/bin/bash

if [ "$#" -ne 2 ]; then
  echo "Usage: $0 <hash_file> <wordlist_file>"
  exit 1
fi

HASH_FILE=$1
WORDLIST=$2

echo "[-] Starting John the Ripper..."
john --wordlist="$WORDLIST" "$HASH_FILE" > /dev/null 2>&1

echo "[+] Cracking attempt finished."
echo "[+] Showing cracked passwords:"
john --show "$HASH_FILE"

Enregistrez le fichier et quittez nano en appuyant sur Ctrl+X, puis Y, puis Entrée.

Ensuite, nous devons rendre le script exécutable.

chmod +x crack.sh

Maintenant, créons un fichier de liste de mots simple pour notre test. Le script de configuration de ce laboratoire a déjà créé un fichier nommé hashes.txt contenant un hachage d'exemple. Le mot de passe pour ce hachage est password123.

echo "password123" > wordlist.txt

Enfin, exécutez votre script d'automatisation. Fournissez-lui le fichier hashes.txt et votre nouveau wordlist.txt.

./crack.sh hashes.txt wordlist.txt

Vous devriez voir la sortie suivante, indiquant que le script a exécuté John avec succès et a trouvé le mot de passe.

[-] Starting John the Ripper...
[+] Cracking attempt finished.
[+] Showing cracked passwords:
user1:password123

1 password hash cracked, 0 left

Vous avez maintenant créé avec succès un script simple pour automatiser John the Ripper !

Comprendre l'API de John the Ripper (si applicable)

Dans cette dernière étape, nous allons clarifier le concept d'"API John the Ripper". Lorsque les développeurs parlent d'API (Application Programming Interfaces), ils font souvent référence à une API REST pour les services web ou à une bibliothèque bien documentée pour un langage de programmation spécifique.

John the Ripper ne dispose pas d'une API publique formelle et stable dans ce sens. Son interface principale est la ligne de commande (CLI), qui est puissante, flexible et conçue pour l'interaction et le scripting, comme vous l'avez démontré à l'étape précédente.

La fonctionnalité principale de JtR est contenue dans une bibliothèque, parfois appelée libjohn. Il est techniquement possible pour les programmeurs C avancés de se lier à cette bibliothèque pour créer des applications personnalisées. Cependant, il s'agit d'une tâche complexe, qui n'est pas un cas d'utilisation typique et qui n'est pas supportée en tant qu'API publique.

Par conséquent, pour la grande majorité des utilisateurs et des intégrations, "utiliser l'API de JtR" signifie :

  • Appeler l'exécutable de JtR à partir d'un script (par exemple, Bash, Python, Perl).
  • Analyser la sortie de la ligne de commande de l'outil.
  • Interagir avec ses fichiers, tels que le fichier de hachages en entrée et le fichier john.pot où les mots de passe cassés sont stockés.

L'essentiel à retenir est que l'intégration et l'automatisation avec John the Ripper se font par le biais de scripts en ligne de commande, et non par une bibliothèque de programmation traditionnelle ou une API web.

Résumé

Dans ce laboratoire, vous avez exploré comment améliorer les capacités de John the Ripper en l'intégrant à d'autres outils et en automatisant son exécution.

Vous avez appris les flux de travail conceptuels pour combiner JtR avec d'autres outils de sécurité majeurs :

  • Utiliser les utilitaires de JtR pour préparer les hachages pour le cracking basé sur GPU de Hashcat.
  • Utiliser JtR pour cracker les hachages obtenus lors de la post-exploitation avec le Metasploit Framework.
  • Utiliser JtR pour cracker les poignées de main Wi-Fi capturées par la suite Aircrack-ng.

Vous avez ensuite mis la théorie en pratique en écrivant et en exécutant un script bash pour automatiser une session de cracking de mots de passe, qui est la méthode principale pour intégrer JtR dans des flux de travail plus importants. Enfin, vous avez clarifié que l'"API" de JtR est son puissant interface en ligne de commande, qui est la clé de sa flexibilité et de son potentiel d'intégration.