Casser des mots de passe simples en mode liste de mots

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez explorer une technique fondamentale en cybersécurité : le cassage de mots de passe (password cracking). Vous utiliserez John the Ripper (JtR), un outil d'audit de sécurité des mots de passe open-source populaire et puissant. Plus précisément, vous apprendrez à effectuer une attaque par "liste de mots" (wordlist attack), qui consiste à utiliser une liste prédéfinie de mots de passe potentiels pour deviner le mot de passe correct à partir d'un hachage de mot de passe stocké.

Cet exercice pratique vous guidera à travers la création d'un hachage de mot de passe d'exemple, l'obtention d'une liste de mots, l'exécution de John the Ripper pour casser le mot de passe, et enfin, la visualisation et la sauvegarde des résultats. Comprendre ce processus est crucial à la fois pour les administrateurs système qui souhaitent tester la robustesse des mots de passe de leurs utilisateurs et pour les professionnels de la sécurité en herbe.

À la fin de ce laboratoire, vous serez capable de :

  • Créer un fichier contenant des hachages de mots de passe.
  • Utiliser une liste de mots avec John the Ripper.
  • Casser un mot de passe simple et visualiser le résultat.

Créer un fichier de hachage de mot de passe d'exemple

Dans cette étape, vous allez créer un utilisateur d'exemple et extraire son hachage de mot de passe dans un fichier. Les outils de cassage de mots de passe ne fonctionnent pas sur les mots de passe en texte clair ; ils fonctionnent sur leurs représentations hachées, qui sont généralement stockées dans des fichiers système comme /etc/shadow sous Linux.

Tout d'abord, créons un nouvel utilisateur nommé testuser avec un mot de passe simple, password123. Nous utiliserons openssl pour générer le hachage du mot de passe et useradd pour créer l'utilisateur.

Exécutez la commande suivante dans votre terminal :

sudo useradd -m -p $(openssl passwd -1 password123) testuser

Ensuite, nous devons extraire la ligne contenant le hachage du mot de passe pour testuser du fichier /etc/shadow. Nous utiliserons la commande grep pour trouver la ligne et rediriger la sortie vers un nouveau fichier nommé hashes.txt dans votre répertoire courant (~/project).

sudo grep testuser /etc/shadow > ~/project/hashes.txt

Maintenant, visualisons le contenu du fichier hashes.txt pour confirmer qu'il contient le hachage de l'utilisateur.

cat hashes.txt

Vous devriez voir une sortie similaire à celle-ci. La longue chaîne de caractères entre les deux premiers deux-points est le mot de passe haché.

testuser:$1$jE/Ipl8J$z4JgUjZfH.yN.CgCjWn.H.:19782:0:99999:7:::

Vous avez maintenant créé avec succès un fichier cible pour notre exercice de cassage de mots de passe.

Télécharger une liste de mots courante

Dans cette étape, vous allez créer une liste de mots (wordlist). Une liste de mots est simplement un fichier texte où chaque ligne contient un mot de passe potentiel. John the Ripper lira ce fichier et essaiera chaque mot de passe contre le hachage cible. Pour ce laboratoire, au lieu de télécharger une grande liste de mots préexistante, nous allons créer la nôtre, petite et personnalisée. Cela nous permet de contrôler le contenu et de nous assurer que le mot de passe correct est inclus pour un cassage réussi.

Créons un fichier nommé wordlist.txt et ajoutons-y quelques mots de passe courants, y compris celui que nous avons défini pour testuser.

Tout d'abord, créez le fichier et ajoutez-y password123 :

echo "password123" > ~/project/wordlist.txt

Maintenant, ajoutons quelques autres mots de passe courants au même fichier. Nous utilisons >> pour ajouter (append), ce qui ajoute au fichier sans l'écraser.

echo "123456" >> ~/project/wordlist.txt
echo "qwerty" >> ~/project/wordlist.txt
echo "admin" >> ~/project/wordlist.txt

Vérifions le contenu de notre nouvelle liste de mots.

cat wordlist.txt

Votre terminal devrait afficher le contenu suivant :

password123
123456
qwerty
admin

Vous disposez maintenant d'une liste de mots prête à être utilisée avec John the Ripper.

Exécuter John the Ripper en mode liste de mots

Dans cette étape, vous utiliserez John the Ripper pour casser le hachage du mot de passe en utilisant la liste de mots que vous avez créée. La syntaxe pour exécuter JtR en mode liste de mots est simple. Vous devez spécifier le fichier de liste de mots et le fichier contenant les hachages.

Le format de la commande est john --wordlist=<chemin_vers_liste_de_mots> <chemin_vers_fichier_de_hachages>.

Maintenant, exécutez la commande dans votre terminal, en indiquant à JtR vos fichiers wordlist.txt et hashes.txt.

john --wordlist=wordlist.txt hashes.txt

John the Ripper commencera le traitement. Il chargera le hachage, puis essaiera chaque mot de passe de votre liste de mots. Comme notre mot de passe est dans la liste, le processus sera très rapide. Vous verrez une sortie similaire à la suivante :

Using default input encoding: UTF-8
Loaded 1 password hash (MD5-based crypt [MD5_body])
Cost 1 (algorithm [1:MD5 2:SHA256 3:SHA512] of 3) is 1 (MD5)
Press 'q' or Ctrl-C to abort, almost any other key for status
password123      (testuser)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s admin..password123
Session completed

La ligne password123 (testuser) indique que JtR a réussi à casser le mot de passe. Il stocke également ce résultat dans un fichier appelé "pot file" (plain old text), généralement situé à ~/.john/john.pot, afin de ne pas avoir à recasser les mots de passe connus.

Afficher les mots de passe cassés

Dans cette étape, vous apprendrez comment afficher les mots de passe que John the Ripper a déjà cassés. Une fois qu'un mot de passe a été cassé, JtR l'enregistre dans son fichier "pot". Si vous essayez d'exécuter à nouveau la même commande de cassage, JtR signalera "No password hashes left to crack" car il l'a déjà résolu.

Pour afficher les mots de passe cassés pour un fichier de hachages donné, vous utilisez l'option --show.

Exécutez la commande suivante pour voir le mot de passe cassé pour hashes.txt :

john --show hashes.txt

La commande vérifiera le fichier "pot" et affichera tous les mots de passe cassés associés aux hachages dans hashes.txt. La sortie ressemblera à ceci :

testuser:password123:19782:0:99999:7:::
1 password hash cracked, 0 left

Le format de sortie est nom_utilisateur:mot_de_passe:autres_champs_du_fichier_shadow. Cela confirme que le mot de passe pour testuser est password123. Cette commande est très utile pour récupérer rapidement les résultats d'une session de cassage sans avoir à analyser manuellement le fichier "pot".

Enregistrer les mots de passe cassés dans un fichier

Dans cette étape, vous allez enregistrer le mot de passe cassé dans un fichier séparé. C'est une pratique courante en test d'intrusion et en audit de sécurité à des fins de reporting. Vous pouvez facilement y parvenir en redirigeant la sortie de la commande john --show vers un fichier.

Enregistrons les résultats dans un fichier nommé cracked.txt.

john --show hashes.txt > cracked.txt

Cette commande exécute john --show hashes.txt comme précédemment, mais au lieu d'afficher le résultat dans le terminal, l'opérateur > redirige la sortie et l'enregistre dans le fichier cracked.txt. Si le fichier n'existe pas, il sera créé. S'il existe, il sera écrasé.

Pour vérifier que la sortie a été correctement enregistrée, vous pouvez afficher le contenu du nouveau fichier en utilisant la commande cat.

cat cracked.txt

Le terminal affichera le contenu du fichier, qui devrait être identique à la sortie que vous avez vue à l'étape précédente :

testuser:password123:19782:0:99999:7:::

1 password hash cracked, 0 left

Vous avez maintenant réussi à casser un mot de passe et à enregistrer le résultat dans un fichier pour la documentation.

Résumé

Félicitations pour avoir terminé ce laboratoire ! Vous avez réussi à effectuer une attaque de cassage de mot de passe de base basée sur une liste de mots à l'aide de John the Ripper.

Dans ce laboratoire, vous avez appris à :

  • Créer un fichier d'exemple de hachage de mot de passe à partir du système.
  • Créer une liste de mots personnalisée contenant des mots de passe potentiels.
  • Exécuter John the Ripper en mode liste de mots pour casser un hachage de mot de passe.
  • Utiliser l'option --show pour afficher les mots de passe déjà cassés.
  • Rediriger la sortie de la commande pour enregistrer vos découvertes dans un fichier.

Cet exercice démontre la facilité avec laquelle des mots de passe simples et courants peuvent être compromis. Il souligne l'importance cruciale d'utiliser des mots de passe forts, complexes et uniques pour protéger les systèmes et les données. Les compétences que vous avez acquises constituent une partie fondamentale de l'audit de sécurité et du test d'intrusion.