Aller au contenu

Hashcat - hash

Hashcat est un programme complet qui permet entre-autres de casser des mot de passe ou des hash de mot de passe. La vitesse de déchiffrage dépendra de votre matériel (vitesse du processeur, présence ou non de carte graphique), mais aussi de la méthode utilisée.

Mode d’emploi :

Pour connaître toutes les fonctionnalités de Hashcat, lancez le en mode Aide
hashcat –help

Méthode 1 : L’attaque par dictionnaire (wordlist) (-a 0)

C’est la méthode la plus rapide, mais il faut espérer que le mot de passe ne soit pas trop compliqué, en effet ce type d’attaque se base sur un fichier contenant plusieurs milliers de lignes de mots de passe appelé Wordlist ou encore dictionnaire. Kali Linux à la Wordlist Rockyou.txt qui se situe à /usr/share/wordlist/rockyou.txt.gz

  1. Créer un fichier contenant les hashs
nano hashs.txt

2. Coller son dictionnaire dans le répertoire courant ou utiliser le chemin absolu

3. Lancer la commande suivante :

hashcat -m 100 -a 0 -o cracked.txt hashs.txt rockyou.txt

-m 0 désigne le type de hash que l’on casse (MD5)

-a 0 désigne le type d’attaque (dictionnaire)

-o cracked.txt est le fichier de sortie pour les mot de passe craqués

hashs.txt est notre fichier d’entrée des hashs

rockyou.txt est le fichier de dictionnaire que nous utilisons (il est trouvable dans /usr/share/wordlists/)

Il est possible d’ajouter le -O pour désactiver l’utilisation du Kernel le plus stable mais ceci peut avoir des effets sur les performances. 

Il est également possible d’ajouter un -w 1,2,3 ou 4 pour sélectionner le mode de performances

⚠ Attention, les modes 3 et 4 vont utiliser quasiment toutes les ressources du système et causer des instabilités, il sera quasiment impossible de faire autre chose sur la machine.

Méthode 2 : Attaque par masque (brute-force) (-a 3)

L’attaque par masque (ou brute-force) va chercher toutes les combinaisons possibles de lettres ou de caractères que l’on va demander à Hashcat. C’est une méthode qui peut être excessivement longue et dépend énormément de la puissance du matériel et des inconnues que l’on va lui soumettre. Si l’attaque est irréalisable d’après Hashcat, il ne laissera pas l’attaque se lancer. 

Le format des inconnues et le suivant, pour incrémenter d’un caractère il faudra ajouter un ?x

?l?l
?l?l?l
?l?l?l?l
?l?l?l?l?l

Voici les catégories de caractères que l’on peut utiliser :

- [ Built-in Charsets ] -

  ? | Charset
 ===+=========
  l | abcdefghijklmnopqrstuvwxyz [a-z]
  u | ABCDEFGHIJKLMNOPQRSTUVWXYZ [A-Z]
  d | 0123456789                 [0-9]
  h | 0123456789abcdef           [0-9a-f]
  H | 0123456789ABCDEF           [0-9A-F]
  s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
  a | ?l?u?d?s
  b | 0x00 - 0xff

Enfin, il est possible de mettre les premières lettres du mot de passe (si on les connaît) afin de rendre le processus beaucoup plus rapide. Si vous recevez l’erreur suivante : 

“Integer overflow detected in keyspace of mask: ?a?a?a?a?a?a?a?a?a?a?a?a”

Vous en demandez trop à votre matériel, il faudra ajouter l’argument suivant à la commande pour incrémenter et ainsi libérer des ressources : 

–increment

La commande se présente de cette manière : 

hashcat -a3 -m100 ./hash.txt ?a?a?a?a?a?a?a?a?a?a

Méthode 4 : Attaque Hybride (-a6) ; (-a7)

L’attaque hybride est un combinaison de l’attaque dictionnaire et brute-force.

hashcat -m 100 -a 6 -O -W3 ./hash.txt ./dico.txt ?l?l?l?l?l?l

Méthode 5 : Attaque combinée (-a1)

La méthode combinée va prendre chaque mots du dictionnaire 1, et l’associer aux mots du dictionnaire 2, par exemple si notre dictionnaire contient les mots suivants : 

pass
12345
omg
Test
Hashcat va créer les combinaisons suivantes :
passpass
pass12345
passomg
passTest
12345pass
1234512345
12345omg
12345Test
omgpass
omg12345
omgomg
omgTest
Testpass
Test12345
Testomg
TestTest

Il est également possible de n’utiliser qu’un dictionnaire et Hashcat combinera les mots du dictionnaire entre eux. La commande se compose de cette manière : 

hashcat -m 100 -a 1 -o cracked.txt hashs.txt dico1.txt dico2.txt

Méthode 6 : Attaque associative

Cette option sert uniquement à confronter des hashs et des mot de passe, hashcat va vérifier ligne par ligne que le mot de passe correspond bien au hash. La liste de mot de passe et de hash doit absolument contenir le même nombre de lignes.

Commandes Hashcat

Option Fonction
[s]tatus
Force l’affichage des informations de l’action en cours. Utile pour connaître l’état d’avancement sans avoir à attendre la fin.
[p]ause
Pause ou reprends l’action en cours.
[b]ypass
Saute l’action courante et passe à la suivante s’il y’en à une.
[c]heckpoint
Quitte au prochain checkpoint (au lieu de quitter directement).
[f]inish
Laisse l’attaque actuelle continuer; puis quitte l’application.
[q]uit
Quitte immédiatement (sans attendre le prochain checkpoint).