Réaliser une Attaque Hybride avec Hashcat

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Hashcat est un outil de récupération de mots de passe réputé et puissant, largement utilisé pour cracker les hachages de mots de passe. L'une de ses fonctionnalités les plus flexibles est l'attaque hybride, qui combine la vitesse d'une attaque par dictionnaire avec la rigueur d'une attaque par force brute (ou masque). Cette méthode est particulièrement efficace contre les mots de passe basés sur un mot courant mais modifiés par l'ajout de caractères avant ou après, tels que des chiffres ou des symboles.

Dans ce laboratoire, vous apprendrez à utiliser les capacités d'attaque hybride de Hashcat. Vous explorerez les deux principaux modes hybrides : dictionnaire+masque (wordlist+mask) et masque+dictionnaire (mask+wordlist). À la fin de ce laboratoire, vous aurez une expérience pratique de la configuration et de l'exécution de ces attaques pour cracker des hachages de mots de passe d'exemple.

Différencier entre Attaque Hybride Dictionnaire+Masque et Masque+Dictionnaire

Dans cette étape, vous apprendrez la différence théorique entre les deux modes d'attaque hybride principaux de Hashcat. Comprendre cette distinction est crucial pour choisir la stratégie correcte pour un modèle de mot de passe donné.

Attaque Hybride Dictionnaire+Masque (Mode d'Attaque 6)

Ce mode, spécifié avec l'option -a 6, prend chaque mot de votre dictionnaire et lui ajoute des caractères en fonction d'un masque défini. Il est idéal pour les mots de passe où les utilisateurs ajoutent un suffixe à un mot de base, comme l'ajout d'une année ou de caractères spéciaux à la fin.

  • Exemple : Si votre dictionnaire contient password et votre masque est ?d?d, Hashcat essaiera des candidats tels que password00, password01, password02, et ainsi de suite, jusqu'à password99.

Attaque Hybride Masque+Dictionnaire (Mode d'Attaque 7)

Ce mode, spécifié avec l'option -a 7, fait le contraire. Il ajoute des caractères définis par un masque au début de chaque mot de votre dictionnaire. Ceci est utile lorsque les utilisateurs ajoutent un préfixe à un mot de base.

  • Exemple : Si votre dictionnaire contient password et votre masque est ?d?d, Hashcat essaiera des candidats tels que 00password, 01password, 02password, et ainsi de suite, jusqu'à 99password.

Aucune commande n'est nécessaire pour cette étape. Votre objectif est de comprendre ces deux concepts fondamentaux avant de les appliquer dans les étapes à venir.

Créer un Hachage d'Exemple et un Dictionnaire de Base

Dans cette étape, vous allez créer les fichiers nécessaires pour notre attaque : un hachage de mot de passe d'exemple et un dictionnaire simple. Toutes les opérations seront effectuées dans le répertoire ~/project.

Tout d'abord, nous avons besoin d'un hachage cible à cracker. Pour ce laboratoire, nous utiliserons un hachage MD5. Supposons que le mot de passe soit labex2024. Le hachage MD5 pour cette chaîne est 2d3c839a453c68206911871584a5f70f.

Créez un fichier nommé hash.txt et enregistrez-y le hachage.

echo "2d3c839a453c68206911871584a5f70f" > ~/project/hash.txt

Vous pouvez vérifier le contenu du fichier en utilisant la commande cat :

cat ~/project/hash.txt

Vous devriez voir la sortie suivante :

2d3c839a453c68206911871584a5f70f

Ensuite, nous avons besoin d'un dictionnaire contenant le mot de base de notre mot de passe cible. Comme le mot de passe est labex2024, le mot de base est labex. Créons un fichier dictionnaire nommé wordlist.txt contenant uniquement ce mot.

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

Vérifiez le contenu de votre nouveau dictionnaire :

cat ~/project/wordlist.txt

La sortie devrait être :

labex

Vous disposez maintenant d'un hachage cible et d'un dictionnaire de base, prêts pour l'attaque.

Exécuter une Attaque Hybride en Ajoutant des Chiffres aux Mots

Dans cette étape, vous allez effectuer une attaque hybride en utilisant le mode dictionnaire+masque (-a 6) pour cracker le hachage que vous avez créé. Notre hypothèse est que le mot de passe est constitué du mot labex suivi de quatre chiffres.

Nous allons construire la commande hashcat avec les composants suivants :

  • -m 0 : Spécifie le type de hachage, qui est MD5.
  • -a 6 : Sélectionne le mode d'attaque hybride dictionnaire+masque.
  • ~/project/hash.txt : Le fichier contenant notre hachage cible.
  • ~/project/wordlist.txt : Notre dictionnaire de base.
  • ?d?d?d?d : Le masque à ajouter. ?d représente un seul chiffre.

Exécutez maintenant la commande suivante dans votre terminal :

hashcat -m 0 -a 6 ~/project/hash.txt ~/project/wordlist.txt ?d?d?d?d

Hashcat s'initialisera et commencera le processus de cracking. Vous pourriez voir un avertissement concernant les performances dans un environnement virtualisé, ce qui est normal. Après un court instant, Hashcat trouvera le mot de passe.

La sortie ressemblera à ceci (certains détails peuvent varier) :

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 2d3c839a453c68206911871584a5f70f
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (~/project/wordlist.txt)
Guess.Mod........: Mask (?d?d?d?d)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  ... H/s (...)
Recovered........: 1/1 (100.00%) Digests
Progress.........: 10000/10000 (100.00%)
Rejected.........: 0/10000 (0.00%)
Restore.Point....: 1/1 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: labex1000 -> labex9999
Hardware.Mon.#1..: Temp: ...

2d3c839a453c68206911871584a5f70f:labex2024

Started: ...
Stopped: ...

Hashcat a réussi à cracker le hachage et a trouvé le mot de passe : labex2024.

Vous pouvez afficher le mot de passe cracké à tout moment en utilisant l'option --show :

hashcat -m 0 --show ~/project/hash.txt

Ceci affichera directement la paire hachage-mot de passe cracké :

2d3c839a453c68206911871584a5f70f:labex2024

Exécuter une Attaque Hybride en Préfixant des Chiffres aux Mots

Maintenant, essayons l'autre mode hybride : masque+dictionnaire (-a 7). Dans cette étape, vous allez tenter de cracker un nouveau hachage où le motif est préfixé.

Supposons que notre nouveau mot de passe cible soit 2024labex. Le hachage MD5 pour cette chaîne est b68137c355d785422120884212515e86.

Tout d'abord, créez un nouveau fichier de hachage nommé hash2.txt avec ce nouveau hachage.

echo "b68137c355d785422120884212515e86" > ~/project/hash2.txt

Pour ce scénario, nous devons utiliser le mode d'attaque -a 7 pour préfixer le masque de quatre chiffres à notre mot de base. La structure de la commande est similaire, mais le mode d'attaque est différent.

Exécutez la commande suivante :

hashcat -m 0 -a 7 ~/project/hash2.txt ~/project/wordlist.txt ?d?d?d?d

Hashcat démarrera à nouveau. Parce que nous avons choisi le bon mode d'attaque pour cette structure de mot de passe, il trouvera rapidement le mot de passe.

La sortie affichera le mot de passe cracké :

...
Session..........: hashcat
Status...........: Cracked
...
b68137c355d785422120884212515e86:2024labex
...

Vous avez réussi à cracker le deuxième hachage en utilisant le mode masque+dictionnaire.

Comme précédemment, vous pouvez utiliser l'option --show pour voir le résultat :

hashcat -m 0 --show ~/project/hash2.txt

Sortie :

b68137c355d785422120884212515e86:2024labex

Comparer l'Efficacité des Deux Modes Hybrides

Dans cette dernière étape pratique, vous verrez ce qui se passe lorsque vous utilisez le mauvais mode hybride pour un modèle de mot de passe donné. Cela mettra en évidence l'importance de choisir la bonne stratégie d'attaque.

Tout d'abord, essayons de cracker notre hachage d'origine (hash.txt, pour labex2024) en utilisant le mode masque+dictionnaire (-a 7). Ce mode préfixe des chiffres, ce qui est incorrect pour ce mot de passe.

hashcat -m 0 -a 7 ~/project/hash.txt ~/project/wordlist.txt ?d?d?d?d

Hashcat s'exécutera, mais il essaiera des candidats comme 0000labex, 0001labex, etc. Étant donné que le mot de passe correct est labex2024, cette attaque échouera. Après avoir vérifié les 10 000 possibilités, le processus se terminera avec un statut Exhausted (Épuisé), signifiant qu'il a essayé toutes les combinaisons sans succès. Vous pouvez attendre qu'il se termine ou appuyer sur q pour quitter.

Ensuite, essayons de cracker notre deuxième hachage (hash2.txt, pour 2024labex) en utilisant le mode dictionnaire+masque (-a 6). Ce mode ajoute des chiffres, ce qui est également incorrect pour ce mot de passe.

hashcat -m 0 -a 6 ~/project/hash2.txt ~/project/wordlist.txt ?d?d?d?d

De même, cette attaque essaiera des candidats comme labex0000, labex0001, etc., et échouera également, se terminant avec un statut Exhausted.

Cette expérience démontre un point crucial : le succès d'une attaque hybride dépend entièrement de l'identification correcte de la structure du mot de passe. Utiliser le mauvais mode fera perdre du temps et des ressources sans produire le mot de passe correct.

Résumé

Dans ce laboratoire, vous avez acquis une expérience pratique avec la puissante fonctionnalité d'attaque hybride de Hashcat. Vous avez appris à combiner des dictionnaires et des masques pour cracker efficacement les mots de passe qui suivent un schéma prévisible.

Plus précisément, vous avez appris :

  • La différence fondamentale entre les deux modes d'attaque hybride : dictionnaire+masque (-a 6) pour ajouter des motifs et masque+dictionnaire (-a 7) pour préfixer des motifs.
  • Comment se préparer à une attaque en créant un fichier de hachage cible et un dictionnaire de base.
  • Comment exécuter les deux types d'attaques hybrides pour cracker avec succès des mots de passe.
  • L'importance cruciale de sélectionner le bon mode d'attaque en fonction de la structure suspectée du mot de passe, car l'utilisation du mauvais mode mènera à l'échec.

Les attaques hybrides sont une technique essentielle dans la boîte à outils de tout auditeur de mots de passe, offrant un équilibre intelligent entre les méthodes ciblées et la force brute.