Décryptage de Hachages de Mots de Passe avec Hashcat : Un Guide Pratique
Dans le domaine du piratage éthique et des tests d’intrusion, le déchiffrement de mots de passe est une étape essentielle pour obtenir un accès non autorisé à un système ou un serveur cible.
Il est rare que les mots de passe soient stockés en clair dans les systèmes et les bases de données.
Avant d’être enregistrés, les mots de passe subissent un processus de hachage, et c’est ce hachage qui est utilisé lors de la vérification de l’authentification.
Les méthodes de stockage des hachages varient en fonction de l’algorithme de cryptage employé. Posséder un hachage donne la possibilité de révéler le mot de passe originel.
Cet article vous guidera à travers le processus de décryptage de hachages de mots de passe en utilisant Hashcat, un outil en ligne de commande puissant et efficace.
Alors, commençons l’exploration.
Mais, avant de continuer…
Comprendre la Fonction de Hachage
Le hachage est l’acte de transformer un texte d’entrée en une chaîne de texte de longueur fixe grâce à une fonction mathématique, également appelée fonction de hachage. Un algorithme est utilisé pour convertir n’importe quel texte, quelle que soit sa taille, en une séquence de chiffres et de lettres aléatoires.
- L’entrée correspond au message qui sera haché.
- La fonction de hachage est l’algorithme de chiffrement (tel que MD5 ou SHA-256) qui convertit la chaîne en une valeur de hachage.
- La valeur de hachage est le résultat de cette transformation.
Hashcat : Qu’est-ce que C’est ?
Hashcat est réputé pour être l’outil de récupération de mots de passe le plus performant. Il est conçu pour décrypter rapidement les mots de passe complexes. Cet outil excelle à la fois dans les attaques par dictionnaire et par force brute.
Hashcat se présente sous deux formes distinctes : une version basée sur le CPU et une autre sur le GPU (unité de traitement graphique). La variante GPU est plus rapide pour déchiffrer les hachages. Les exigences relatives aux pilotes GPU peuvent être vérifiées sur le site officiel de Hashcat.
Fonctionnalités Clés
- Outil gratuit et open source.
- Compatible avec plus de 200 types de hachages différents.
- Fonctionne sous Linux, Windows et macOS.
- Supporte les architectures CPU et GPU.
- Permet de déchiffrer plusieurs hachages simultanément.
- Gère les fichiers hex-salt et hex-charset et ajuste automatiquement les performances.
- Dispose d’un système de benchmark intégré.
- Permet les réseaux de craquage distribués via des superpositions.
Plus d’informations sont disponibles sur le site web de l’outil.
Installation de Hashcat
Assurez-vous d’abord que votre système Linux est à jour en installant les dernières mises à niveau.
Pour cela, ouvrez un terminal et exécutez :
$ sudo apt update && sudo apt upgrade
Généralement, Hashcat est préinstallé sur Kali Linux. Vous le trouverez dans la section « craquage de mots de passe ». Cependant, si vous devez l’installer manuellement sur une distribution Linux, utilisez la commande suivante :
$ sudo apt-get install hashcat
Utilisation de l’Outil
Pour commencer à utiliser Hashcat, vous aurez besoin de hachages de mots de passe. Si vous n’en possédez pas, nous allons en générer.
Pour créer des hachages en ligne de commande, utilisez le format ci-dessous :
echo -n "input" | algorithm | tr -d "-">>outputfiename
Par exemple, vous pouvez constater que j’ai transformé certains mots en hachages en utilisant l’algorithme MD5:
┌──(root💀kali)-[/home/writer/Desktop] └─# echo -n "toptips.fr" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt
Les résultats seront sauvegardés dans le fichier nommé ‘crackhash.txt’.
Vérifions maintenant les hachages stockés dans ce fichier.
┌──(root💀kali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13
Comme vous pouvez le voir, nous avons maintenant des hachages prêts à être décryptés. C’est la méthode pour générer des hachages avec l’algorithme de votre choix.
L’étape suivante consiste à lancer Hashcat sur votre machine Linux. Utilisez la commande suivante pour afficher l’aide et toutes les options disponibles:
$ hashcat --help
Toutes les options d’attaque et de hachage sont listées.
La syntaxe générale de la commande est :
$ hashcat -a num -m num hashfile wordlistfile
Ici, ‘num’ représente une technique d’attaque et un type de hachage. En parcourant l’aide, vous verrez les nombres exacts pour chaque mode, par exemple, md4 correspond au numéro 0 et sha256 au numéro 1740.
La liste de mots que nous allons utiliser est celle appelée rockyou, que vous pouvez trouver dans le répertoire /usr/share/wordlists.
Vous pouvez utiliser la commande ‘locate’ pour trouver ce fichier :
┌──(root💀kali)-[/home/writer] └─# locate rockyou.txt
Enfin, pour décrypter les hachages, entrez la commande suivante :
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
Après l’exécution de cette commande, vous pourriez rencontrer une erreur d’exécution (erreur de longueur de jeton) qui peut être facilement corrigée.
Pour contourner cette erreur, enregistrez chaque hachage dans un fichier différent. Ce problème est lié à la faible vitesse du CPU ou du GPU. Si vous disposez d’une puissance de calcul suffisante, vous pouvez déchiffrer tous les hachages simultanément.
Après correction, voici le résultat typique :
┌──(root💀kali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021
Dans les résultats ci-dessus, notez que le hachage a été craqué et que le mot de passe correspondant a été révélé.
Conclusion
Nous espérons que cet article vous aura apporté une meilleure compréhension de l’utilisation de Hashcat pour déchiffrer les mots de passe.
Vous pourriez également être intéressé par la découverte d’autres outils d’attaque par force brute pour les tests d’intrusion et la sélection des meilleurs outils disponibles.