Hashcat : Le roi du cassage de mots de passe par GPU
Introduction
Dans l’arsenal du testeur de pénétration, peu d’outils sont aussi redoutables que Hashcat. Reconnu comme l’outil de récupération de mots de passe le plus rapide, Hashcat exploite la puissance brute des processeurs graphiques (GPU) pour déchiffrer les hashes à une vitesse vertigineuse. Cet article vous guidera à travers son installation, ses concepts fondamentaux et des exemples pratiques pour l’utiliser de manière éthique et efficace.
Vue Macro : Qu’est-ce que Hashcat ?
Hashcat est un outil de récupération de mot de passe avancé. Contrairement aux outils traditionnels qui utilisent le CPU, Hashcat est conçu pour utiliser un ou plusieurs GPU. Les GPU, avec leurs milliers de cœurs, sont capables d’effectuer des milliards de calculs par seconde, ce qui les rend parfaits pour les tâches répétitives et parallèles comme le cassage de hash. C’est cette capacité qui permet à Hashcat de tester des milliards de combinaisons de mots de passe en quelques secondes.
Installation sur Ubuntu
Installer Hashcat est simple sur la plupart des distributions Linux.
sudo apt update
sudo apt install hashcat
Pour vous assurer que Hashcat reconnaît votre GPU, vous pouvez exécuter un benchmark :
hashcat -B
Vue Macro : Modes d’Attaque et Types de Hash
Le pouvoir de Hashcat réside dans sa flexibilité. Il supporte des centaines de types de hash (MD5, SHA-1, NTLM, WPA/WPA2, etc.) et plusieurs modes d’attaque :
- Mode 0 (Straight): Attaque par dictionnaire simple. Chaque mot du dictionnaire est testé.
- Mode 1 (Combination): Combine des mots de deux dictionnaires.
- Mode 3 (Brute-force): Teste toutes les combinaisons possibles d’un jeu de caractères donné. C’est là que les “masques” entrent en jeu.
- Mode 6 (Hybrid): Combine un dictionnaire avec une attaque par masque.
Chaque type de hash a un code numérique spécifique. Par exemple, MD5 est 0
, SHA1 est 100
, et WPA/WPA2 est 22000
.
Exemples et Scénarios
La structure d’une commande Hashcat est généralement : hashcat -m <mode_hash> <fichier_hash> <dictionnaire/masque>
Scénario 1 : Casser un hash MD5 avec un dictionnaire
Supposons que nous ayons un fichier hashes.txt
contenant le hash MD5 8743b52063cd84097a65d1633f5c74f5
.
# -m 0 spécifie le mode MD5
# hashes.txt est notre fichier de hash
# rockyou.txt est un dictionnaire de mots de passe populaire
hashcat -m 0 hashes.txt /usr/share/wordlists/rockyou.txt
Hashcat testera chaque mot de passe dans rockyou.txt
jusqu’à ce qu’il trouve une correspondance.
Scénario 2 : Attaque par Masque (Brute-force)
Imaginons que nous sachions que le mot de passe est un numéro de téléphone de 8 chiffres. Nous pouvons utiliser une attaque par masque.
?d
représente un chiffre (0-9).- Un masque de 8 chiffres serait
?d?d?d?d?d?d?d?d
.
# -a 3 spécifie l'attaque par masque
hashcat -m 0 -a 3 hashes.txt ?d?d?d?d?d?d?d?d
Scénario 3 : Casser un handshake WPA/WPA2
C’est un cas d’usage très courant. Après avoir capturé un handshake (avec des outils comme hcxdumptool
), vous pouvez utiliser Hashcat pour le casser.
# -m 22000 est le mode pour WPA-PBKDF2-PMKID+EAPOL
# handshake.hc22000 est le fichier contenant le hash du handshake
hashcat -m 22000 handshake.hc22000 /usr/share/wordlists/rockyou.txt
Cheatsheet Hashcat
Commande/Option | Description |
---|---|
hashcat -B |
Lance un benchmark pour tester la performance. |
hashcat -I |
Affiche les informations sur les GPU détectés. |
-m <num> |
Spécifie le mode de hash (ex: 0 pour MD5, 22000 pour WPA2). |
-a <num> |
Spécifie le mode d’attaque (ex: 0 pour dictionnaire, 3 pour masque). |
-o <fichier> |
Spécifie le fichier de sortie pour les mots de passe trouvés. |
--show |
Affiche les mots de passe déjà cassés pour un fichier de hash. |
?l |
Masque pour une lettre minuscule. |
?u |
Masque pour une lettre majuscule. |
?d |
Masque pour un chiffre. |
?s |
Masque pour un symbole spécial. |
Conclusion
Hashcat est un outil incroyablement puissant pour évaluer la robustesse des mots de passe. Sa vitesse, grâce à l’accélération GPU, en fait un standard de l’industrie. Cependant, avec un grand pouvoir vient une grande responsabilité.
Avertissement : Cet outil doit être utilisé uniquement à des fins légales et éthiques, comme les tests de pénétration autorisés. L’utilisation de Hashcat pour accéder à des systèmes sans autorisation est illégale.