Salut les amis. Aujourd’hui nous allons parler de hashcat. Un outil dont vous avez très certainement entendu parler dans le contexte de la decryption de hash et du cracking de mots de passes.
Dans cet article nous verrons comment retrouver des mots de passe à partir de plusieurs exemples de hash.
Exemple d’usages: vous avez un shell sur la machine et vous avez accès à /etc/shadow sous linux ou encore du fichier SAM sous windows. Ces informations en main, vous pouvez vous atteler, à l’aide de Hashcat, au brute force des hash récupérés.
Intéressant n’est ce pas?
DISCLAMER: Kali-linux.fr ne sera en aucun cas responsable de l’utilisation que vous faites des techniques mentionnées dans cet article. Le contenu qui vous est proposé ici est simplement à but éducatif.
Hashcat et Kali linux

Comme vous l’aurez compris, Hashcat est un outil capable d’obtenir un mots de passe à partir de son hash, de manière à rendre utile d’accéder à un fichier ou base de données contenant des données chiffrées.
Hashcat supporte plus de 600 types de hash et est souvent utilisé pour cracker des mots de passe wpa/wpa2. Hashcat peut par ailleurs mobiliser le CPU comme le GPU.
Voici les principales caractéristiques de l’outil hashcat, considéré comme l’un des outils les plus rapides :
- Licence opensource
- Valide pour Windows, Linux et macOS,
- Multiplateforme: CPU, GPU, DSP, FPGA…
- Fonctionnalités multi-hashing qui permettent de craquer plusieurs mots de passe en même temps
- Multi-threads et multi-algorithmes (y compris MySQL, DCC, MD4-5 et NTLM).
Comment installer hashcat si vous n’êtes pas sur kali ?
Si vous êtes sur Kali linux, vous trouverez Hashcat inclus parmis les outils de la distribution.
Sinon, il vous suffit d’un :
apt-get install hashcat
Ou de télécharger la dernière version que vous pouvez retrouver ici, de décompresser l’archive, de modifier les droits et de l’exécuter.
Comment hashcat décrypte les hashs ?
- Hashcat prend comme entrée un ensemble de mots en texte simple à partir d’un dictionnaire ou par combinaisons.
- Hashcat calcule ensuite le hash pour chacun et compare le résultat avec le ou les hash (contenus dans un autre fichier qui stocke les hash ciblés).
- Les match (coincidences) sont des mots de passe récupérées.
Plusieurs méthodes sont utilisées par hashcat parmi lesquelles:
- Attaque par dictionnaire: cette méthode revient à essayer tous les mots d’une liste.Pour que cette attaque fonctionne il faut que le mot de passe se trouve dans le dictionnaire.
hashcat -a 0 -m 0 hashs.txt
dictionnaire.txt
- Attaque par combinaison: ici il y la concaténation des liste de deux mots avec lesquels il en crée une nouvelle.
hashcat -m 1100 -a 1 hashs.txt liste1.txt liste2.txt
- Attaque par force brute: Si tout le reste échoue il y a l’attaque par force brute qui cherche toutes les combinaison imaginable .
Dans la commande suivante l’option –increment-min=6 est mis pour dire que la longueur minimale des candidats pour les mots de passe est de 6, l’option –increment-max=10 est mis pour dire la longueur maximale des candidats pour les mots de passe est de 10 et « ?l » représente un caractère minuscule.
hashcat -m 0 -a 3 --increment-min=6 --increment-max=10 hash.txt ?l?l?l?l?l?l?l?l?l?l
- Attaque par masque: il exploite les habitudes des humains et la façon dont ils conçoivent les mots de passe.
Dans l’exemple suivant à chaque mot la liste de mots sera ajoutés avec 4 caractères numériques, un mot de passe possible est « admin1234 ».
hashcat -m 100 -a 6 hashs.txt listedemots.txt ?d?d?d?d
- Attaque basée sur des règles hashcat simples: Si les autres options échouent et que vous avez une idée précise de la façon dont votre cible construit un mot de passe, hashcat propose une syntaxe semblable à un langage de programmation pour une attaque basée sur des règles, dans laquelle vous pouvez spécifier ce que genre de mots de passe à essayer.
Pour cet exemple à chaque mot de la liste sera pré-ajoutés 4 caractères numériques, un mot de passe possible est « 1234admin ».
hashcat -m 100 -a 7 hashs.txt ?d?d?d?d listedemots.txt
Comment déterminer le hashmode dans hashcat
Avant de commencer à décrypter le hash, il faut d’abord déterminer l’algorithme (sha256, bcrypt, md5, winzip …) qui a été utilisé pour obtenir ce hash.
Pour cela nous pouvons utiliser des outils en ligne ou d’autres off-line.
Comme outil off-line il y a hash-identifier qui est préinstallé sous kali. Les outils en ligne sont nombreux, on citera hash analyser par exemple.
En connaissant l’algorithme nous sommes en mesure de déterminer quel “Hash-Mode” lui correspond lors de l’exécution de hashcat.
Pour cela on peut consulter le tableau des modes l’aide de hashcat:
$hashcat --help
ou nous rendre sur le site de la documentation ou nous avons des exemples de hash.
Hashcat supporte par ailleurs des hashmode très specifiques tels que MySQL, ArubaOS, Joomla, vbulletin, keepass et beaucoup d’autre, je vous conseille vivement de jettez un oeuil sur la liste.
Exemple de décryptage de hash avec hashcat
Comme exemples nous allons décrypter des hashs utilisant l’algorithme bcrypt et sha256.
Nous allons pour cela utiliser des “wordlists” ou dictionaires de mots. Vous pouvez en trouver en ligne ou apprendre à génerer le votre en utilisant “crunch” en suivant notre tutoriel.
Exemple de hash Bcrypt
voici notre hash:
$2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom
Après la commande suivante :
hashcat -m 3200 -a 0 hash.txt dic.txt
- -m définit le mode
- 3200 correspond à bcrypt
- hash.txt correspond à list the hash à décrypter, pour nous ce sera celui cité plus haut
- dict.txt le dictionaire de mots de passes
nous obtenons le résultat suivant:
$2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom:bleh Session……….: hashcat Status………..: Cracked Hash.Type……..: bcrypt $2*$, Blowfish (Unix) Hash.Target……: $2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX…8wsRom Time.Started…..: Thu Mar 16 00:36:23 2021 (6 secs) Time.Estimated…: Thu Mar 16 00:36:29 2021 (0 secs) Guess.Base…….: File (dic.txt) Guess.Queue……: 1/1 (100.00%) Speed.#1………: 4 H/s (2.95ms) @ Accel:4 Loops:2 Thr:8 Vec:8 Recovered……..: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts Progress………: 26/26 (100.00%) Rejected………: 0/26 (0.00%) Restore.Point….: 0/26 (0.00%) Restore.Sub.#1…: Salt:0 Amplifier:0-1 Iteration:4094-4096 Candidates.#1….: a -> bleh
Dans ce cas notre mot de passe est: bleh.
Exemple de hash Sha256
Pour le second exemple, le hash est le suivant:
f09edcb1fcefc6dfb23dc3505a882655ff77375ed8aa2d1c13f640fccc2d0c85
La commande à utiliser pour décrypter ce hash est le suivant:
hashcat -m 1400 -a 0 hash.txt rockyou.txt
Le résultat est le suivant:
f09edcb1fcefc6dfb23dc3505a882655ff77375ed8aa2d1c13f640fccc2d0c85:paule Session……….: hashcat Status………..: Cracked Hash.Type……..:SHA2-256
Hash.Target……:f09edcb1fcefc6dfb23dc3505a882655ff77375ed8aa2d1c13f...2d0c85
Time.Started…..: Thu Mar 16 00:50:15 2021 (1 secs) Time.Estimated…: Thu Mar 16 00:50:16 2021 (0 secs) Guess.Base…….: File (rockyou.txt) Guess.Queue……: 1/1 (100.00%) Speed.#1………: 4 H/s (2.95ms) @ Accel:4 Loops:2 Thr:8 Vec:8 Recovered……..: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts Progress………:196608/14344385 (1.37%)
Rejected………:0/196608 (0.00%)
Restore.Point….:0/14344385 (0.00%)
Restore.Sub.#1…: Salt:0 Amplifier:0-1 Iteration:4094-4096 Candidates.#1….:123456 -> piggy9
Pour cet exemple notre de passe est: piggy9.
Conclusion
Il y a beaucoup à dire sur cet outil, mais j’espère que cette introduction à hashcat vous aura mis l’eau a la bouche et qu’elle vous sera utile.
J’espère vous retrouver dans une suite de ce tutoriel autour de cet outil où nous verrons comment accélérer les perfomances de hashcat grâce à l’usage de votre (ou vos) cartes graphiques et la puissance de leurs GPUs pour des perfomances monstres! Sortez vos rigs de minings, on va faire chauffer l’appartement avec hashcat…

One thought on “Hashcat et le cracking de mots de passes – vos premiers pas.”