Kali-linux distribution GNU/Linux spécialisée dans l'audit et le pentest.
Kali-linux.fr Communauté française de kali-linux
hashcat premier pas

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 ?

  1. Hashcat prend comme entrée un ensemble de mots en texte simple à partir d’un dictionnaire ou par combinaisons.
  2. 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).
  3. 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.

alt text

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.”
Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.