Craquage de mots de passe Kali avec John

Kali LinuxKali LinuxBeginner
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, vous apprendrez les bases du craquage de mots de passe en utilisant Kali Linux sur la machine virtuelle LabEx, en vous concentrant sur le puissant outil John the Ripper. L'objectif principal est de comprendre comment craquer les hachages de mots de passe Linux, qui sont des représentations cryptées des mots de passe généralement stockées dans le fichier /etc/shadow. Cette compétence est essentielle dans les tests d'intrusion pour identifier les mots de passe faibles et améliorer la sécurité du système. Grâce à des instructions guidées, étape par étape, vous travaillerez avec des exemples de fichiers de hachage, créerez et utiliserez des listes de mots personnalisées, comparerez des outils de craquage comme John the Ripper et Hashcat, et enregistrerez les résultats pour analyse. Conçu pour les débutants, ce laboratoire assure une expérience d'apprentissage claire et pratique dans un environnement contrôlé.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kali(("Kali")) -.-> kali/KaliGroup(["Kali"]) kali/KaliGroup -.-> kali/pkg_ops("Package Management") kali/KaliGroup -.-> kali/hashcat_ops("Hashcat Tool") kali/KaliGroup -.-> kali/john_ops("John The Ripper") kali/KaliGroup -.-> kali/bash_code("Bash Scripting") subgraph Lab Skills kali/pkg_ops -.-> lab-552297{{"Craquage de mots de passe Kali avec John"}} kali/hashcat_ops -.-> lab-552297{{"Craquage de mots de passe Kali avec John"}} kali/john_ops -.-> lab-552297{{"Craquage de mots de passe Kali avec John"}} kali/bash_code -.-> lab-552297{{"Craquage de mots de passe Kali avec John"}} end

Configuration de l'environnement et installation des outils

Dans cette première étape, nous allons configurer l'environnement à l'intérieur du conteneur Kali Linux et installer les outils nécessaires au craquage de mots de passe. Lorsque vous ouvrez le terminal dans la machine virtuelle LabEx, vous êtes automatiquement connecté au shell du conteneur Kali Linux. Il n'est pas nécessaire de démarrer manuellement le conteneur ou d'entrer dans le shell ; l'environnement est déjà configuré pour vous.

Avant de continuer, comprenons les outils que nous allons utiliser. John the Ripper est un outil de craquage de mots de passe largement utilisé qui peut gérer différents types de hachage, y compris ceux utilisés dans les systèmes Linux. Hashcat est un autre outil puissant connu pour sa vitesse, en particulier avec le support GPU, bien que nous l'utiliserons ici en mode de base. Les deux outils sont essentiels pour les tâches de test d'intrusion telles que le craquage des hachages de mots de passe.

Maintenant, mettons à jour la liste des paquets et installons ces outils. Exécutez les commandes suivantes dans le terminal du conteneur Kali Linux pour vous assurer que le système est à jour et pour installer John the Ripper et Hashcat. Appuyez sur Entrée après chaque commande :

apt update
apt install -y john hashcat

Ces commandes actualiseront la liste des paquets et installeront les deux outils s'ils ne sont pas déjà présents. Le processus peut prendre quelques minutes, veuillez donc attendre qu'il se termine. Vous verrez une sortie indiquant la progression de l'installation, qui pourrait ressembler à ceci :

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up john (1.9.0-2) ...
Setting up hashcat (6.2.5-1) ...

Une fois l'installation terminée, vérifiez que John the Ripper est installé en vérifiant sa version. Exécutez cette commande :

john --version

Vous devriez voir une sortie similaire à celle-ci, confirmant que l'outil est prêt :

John the Ripper 1.9.0-jumbo-1

Ensuite, vérifiez l'installation de Hashcat en exécutant :

hashcat --version

La sortie attendue sera quelque chose comme :

v6.2.5

Cette étape garantit que votre environnement Kali Linux est prêt avec les outils requis pour le craquage de mots de passe. Avec John the Ripper et Hashcat installés, vous êtes prêt à passer à la création de données d'exemple pour le craquage à l'étape suivante.

Création de fichiers de hachage d'exemple pour le craquage

Maintenant que votre environnement est configuré avec les outils nécessaires, préparons des données d'exemple avec lesquelles travailler. Dans cette étape, nous allons créer un fichier d'exemple contenant des hachages de mots de passe Linux fictifs. Ces hachages simulent le format trouvé dans le fichier /etc/shadow sur les systèmes Linux, qui stocke les mots de passe utilisateur cryptés. C'est un moyen sûr de s'entraîner au craquage de mots de passe sans accéder aux fichiers système réels.

Les hachages de mots de passe Linux dans /etc/shadow utilisent généralement des algorithmes comme SHA-512, indiqués par $6$ dans la chaîne de hachage. Notre objectif est de créer un fichier avec des hachages fictifs à utiliser avec les outils de craquage. Nous travaillerons dans le répertoire par défaut à l'intérieur du conteneur Kali Linux, qui est /root ou votre répertoire de travail actuel lorsque vous entrez dans le conteneur.

Créons un fichier nommé sample_hashes.txt dans le répertoire /root. Exécutez la commande suivante pour créer et remplir ce fichier avec des données fictives. Appuyez sur Entrée après avoir tapé la commande :

echo -e "user1:\$6\$randomsalt\$hashedpasswordstring:18234:0:99999:7:::\nuser2:\$6\$anothersalt\$anotherhashedpasswordstring:18234:0:99999:7:::" > /root/sample_hashes.txt

Cette commande utilise echo avec l'option -e pour interpréter les caractères de nouvelle ligne (\n) et écrit deux entrées de hachage fictives dans sample_hashes.txt. Pour confirmer que le fichier a été créé correctement, affichez son contenu en exécutant :

cat /root/sample_hashes.txt

Vous devriez voir une sortie comme celle-ci, montrant les deux entrées utilisateur fictives avec leurs chaînes de hachage :

user1:$6$randomsalt$hashedpasswordstring:18234:0:99999:7:::
user2:$6$anothersalt$anotherhashedpasswordstring:18234:0:99999:7:::

Ce fichier imite la structure des entrées /etc/shadow, où $6$ indique l'algorithme de hachage SHA-512. Avec ces données d'exemple prêtes, vous avez configuré avec succès une cible sûre pour vous entraîner au craquage de mots de passe. À l'étape suivante, nous utiliserons John the Ripper pour tenter de craquer ces hachages en utilisant ses paramètres par défaut.

Craquage de hachages avec John the Ripper

Avec le fichier de hachage d'exemple prêt, plongeons-nous dans le craquage de mots de passe en utilisant John the Ripper. Cet outil est conçu pour tester la solidité des mots de passe en tentant de rétro-concevoir les hachages en mots de passe en clair. Dans cette étape, nous utiliserons John the Ripper avec ses paramètres par défaut pour craquer les hachages dans le fichier sample_hashes.txt. Il s'agit d'une compétence fondamentale en test d'intrusion pour identifier les mots de passe faibles.

John the Ripper fonctionne en comparant les hachages à une liste de mots de passe potentiels, en utilisant souvent des listes de mots et des règles intégrées pour deviner les schémas courants. Étant donné que nos hachages fictifs sont simplifiés pour l'apprentissage, l'outil peut ou non les craquer avec les paramètres par défaut, mais l'objectif ici est de comprendre le processus.

Assurez-vous d'être dans le shell du conteneur Kali Linux, dans lequel vous entrez automatiquement lorsque vous ouvrez le terminal. Nous travaillerons dans le répertoire /root où se trouve le fichier sample_hashes.txt. Exécutez la commande suivante pour démarrer le processus de craquage avec John the Ripper :

john /root/sample_hashes.txt

Cette commande indique à John the Ripper de charger les hachages à partir de sample_hashes.txt et de tenter de les craquer en utilisant sa liste de mots et ses règles par défaut. Le processus peut prendre quelques secondes ou minutes. Pendant l'exécution, vous pourriez voir une sortie comme celle-ci :

Using default input encoding: UTF-8
Loaded 2 password hashes with 2 different salts (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 4 OpenMP threads
Proceeding with single mode
Trying common passwords...

Une fois le processus terminé, vérifiez si des mots de passe ont été craqués en exécutant cette commande :

john --show /root/sample_hashes.txt

La sortie affichera tous les mots de passe craqués, ressemblant potentiellement à ceci en cas de succès :

user1:password123
user2:simplepass
2 password hashes cracked, 0 left

Si aucun mot de passe n'est craqué, la sortie indiquera qu'aucun hachage n'a été résolu, ce qui est acceptable à des fins d'apprentissage. L'essentiel est de comprendre comment lancer le processus de craquage et afficher les résultats. Cette étape vous présente l'utilisation de base de John the Ripper. À l'étape suivante, nous améliorerons nos efforts de craquage en utilisant une liste de mots personnalisée.

Utilisation d'une liste de mots personnalisée avec John the Ripper

Dans l'étape précédente, nous avons utilisé John the Ripper avec ses paramètres par défaut. Maintenant, nous allons améliorer notre succès de craquage en créant et en utilisant une liste de mots personnalisée. Une liste de mots (wordlist) est un fichier contenant des mots de passe potentiels qu'un outil de craquage teste par rapport aux hachages. Les listes de mots personnalisées peuvent être adaptées pour inclure des mots de passe courants ou des termes spécifiques pertinents pour une cible, augmentant souvent les chances de succès.

Nous continuerons à travailler dans le shell du conteneur Kali Linux dans le répertoire /root. Créons un fichier nommé custom_wordlist.txt avec une petite liste de mots de passe potentiels pour la démonstration. Exécutez la commande suivante pour créer ce fichier :

echo -e "password123\nadmin123\nsimplepass\ntest1234\nqwerty" > /root/custom_wordlist.txt

Cette commande écrit cinq exemples de mots de passe dans custom_wordlist.txt. Pour confirmer que le fichier a été créé correctement, affichez son contenu avec :

cat /root/custom_wordlist.txt

Vous devriez voir la liste des mots de passe comme suit :

password123
admin123
simplepass
test1234
qwerty

Maintenant, utilisons cette liste de mots personnalisée avec John the Ripper pour craquer les hachages dans sample_hashes.txt. Exécutez la commande suivante pour démarrer le processus de craquage :

john --wordlist=/root/custom_wordlist.txt /root/sample_hashes.txt

Cette commande spécifie la liste de mots personnalisée avec l'option --wordlist. Le processus peut prendre quelques secondes, et vous pourriez voir une sortie comme celle-ci :

Using default input encoding: UTF-8
Loaded 2 password hashes with 2 different salts (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 4 OpenMP threads
Proceeding with wordlist mode

Après l'exécution, vérifiez les résultats en exécutant :

john --show /root/sample_hashes.txt

Si des mots de passe correspondent aux entrées de la liste de mots, la sortie pourrait ressembler à ceci :

user1:password123
user2:simplepass
2 password hashes cracked, 0 left

Si aucun mot de passe supplémentaire n'est craqué, cela indique que les hachages ne correspondent pas à notre petite liste de mots, ce qui est acceptable à des fins d'apprentissage. Cette étape montre comment améliorer les tentatives de craquage avec des données personnalisées. Ensuite, nous comparerons cette approche en utilisant Hashcat sur les mêmes hachages.

Craquage de hachages avec Hashcat pour comparaison

Après avoir utilisé John the Ripper, explorons maintenant Hashcat, un autre outil puissant de craquage de mots de passe. Hashcat est connu pour sa rapidité et sa prise en charge de divers modes d'attaque, ce qui en fait une alternative précieuse dans les tests d'intrusion. Dans cette étape, nous utiliserons Hashcat pour tenter de craquer les mêmes hachages, en comparant son approche à celle de John the Ripper. Nous nous concentrerons sur une simple attaque par dictionnaire en utilisant notre liste de mots personnalisée.

Tout d'abord, nous devons préparer le fichier de hachage pour Hashcat, car il ne nécessite que la partie hachage sans noms d'utilisateur ni champs supplémentaires. Nous allons extraire les hachages de sample_hashes.txt dans un nouveau fichier nommé clean_hashes.txt. Exécutez cette commande dans le shell du conteneur Kali Linux à partir du répertoire /root :

awk -F':' '{print $2}' /root/sample_hashes.txt > /root/clean_hashes.txt

Confirmez le contenu du nouveau fichier en exécutant :

cat /root/clean_hashes.txt

Vous devriez voir une sortie ne montrant que les chaînes de hachage, comme ceci :

$6$randomsalt$hashedpasswordstring
$6$anothersalt$anotherhashedpasswordstring

Maintenant, utilisez Hashcat pour craquer ces hachages avec la liste de mots personnalisée. Pour les hachages Linux SHA-512 ($6$), Hashcat utilise le mode 1800, et nous effectuerons une attaque par dictionnaire (mode 0). Exécutez cette commande :

hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt

Le processus peut prendre quelques secondes, avec une sortie similaire à celle-ci :

hashcat (v6.2.5) starting...
Dictionary cache built:
* Filename..: /root/custom_wordlist.txt
* Passwords.: 5
* Bytes.....: 50
* Keyspace..: 5
* Runtime...: 0 secs
Session..........: hashcat
Status...........: Running
Hash.Mode........: 1800 (sha512crypt $6$, SHA512 (Unix))

Après l'exécution, affichez les mots de passe craqués en exécutant :

hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt --show

En cas de succès, la sortie pourrait ressembler à ceci :

$6$randomsalt$hashedpasswordstring:password123
$6$anothersalt$anotherhashedpasswordstring:simplepass

Cette étape montre comment Hashcat peut être utilisé comme alternative à John the Ripper, offrant différentes forces. Dans la dernière étape, nous enregistrerons les résultats des deux outils pour la documentation.

Enregistrement des mots de passe craqués pour la documentation

Dans cette dernière étape, nous allons enregistrer les mots de passe craqués de John the Ripper et Hashcat dans des fichiers séparés. La documentation des résultats est une partie essentielle des tests d'intrusion, vous permettant de revoir les résultats ou de les signaler en toute sécurité. Nous continuerons à travailler dans le shell du conteneur Kali Linux dans le répertoire /root.

Tout d'abord, enregistrez les résultats de John the Ripper en redirigeant la sortie de la commande john --show vers un fichier nommé john_cracked.txt. Exécutez cette commande :

john --show /root/sample_hashes.txt > /root/john_cracked.txt

Vérifiez le contenu du fichier en exécutant :

cat /root/john_cracked.txt

Vous devriez voir une sortie comme celle-ci si des mots de passe ont été craqués :

user1:password123
user2:simplepass
2 password hashes cracked, 0 left

Ensuite, enregistrez les résultats de Hashcat en redirigeant sa sortie vers un fichier nommé hashcat_cracked.txt. Exécutez cette commande :

hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt --show > /root/hashcat_cracked.txt

Vérifiez le contenu du fichier en exécutant :

cat /root/hashcat_cracked.txt

La sortie devrait ressembler à ceci si des mots de passe ont été craqués :

$6$randomsalt$hashedpasswordstring:password123
$6$anothersalt$anotherhashedpasswordstring:simplepass

Si aucun mot de passe n'a été craqué lors des étapes précédentes, les fichiers pourraient ne montrer aucun résultat ou seulement des lignes de résumé, ce qui est acceptable à des fins d'apprentissage. Cette étape complète le processus de documentation de vos résultats, vous assurant de pouvoir référencer les mots de passe craqués ultérieurement. Vous avez maintenant appris le flux de travail complet du craquage de mots de passe, de la configuration à l'enregistrement des résultats.

Résumé

Dans ce laboratoire, vous avez acquis les compétences essentielles du craquage de mots de passe en utilisant Kali Linux sur la machine virtuelle (VM) LabEx. Vous avez commencé par configurer l'environnement et installer des outils tels que John the Ripper et Hashcat dans un conteneur Kali Linux. Grâce à des instructions étape par étape, vous avez créé des exemples de fichiers de hachage, craqué des hachages de mots de passe Linux avec John the Ripper en utilisant des listes de mots par défaut et personnalisées, comparé les résultats avec Hashcat et enregistré les mots de passe craqués pour la documentation. Ces exercices pratiques fournissent une base solide pour comprendre les techniques de test d'intrusion et l'importance de politiques de mots de passe robustes pour la sécurisation des systèmes.