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.
?drepré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. |
Mise à jour 2026 : Outils Modernes d’Audit, d’Hygiène Cryptographique et Apport de l’IA
Face à l’accélération matérielle des GPU modernes et à l’émergence des modèles de langage, l’audit et la protection des identifiants ont profondément évolué. Voici les briques modernes qui complètent ou neutralisent ce type d’évaluation en entreprise et en Homelab :
1. Évaluation d’entropie réaliste et listes d’exclusion Zero-Trust
- zxcvbn (
zxcvbn-ts/zxcvbn-rs) : Remplace les règles d’expressions régulières rigides par un calcul d’entropie réel détectant les motifs humains (dates, suites de clavierazerty/qwerty, répétitions, substitutions classiques). - Have I Been Pwned (Pwned Passwords en k-Anonymity ou base locale) : Vérifie qu’un mot de passe choisi n’appartient pas aux centaines de millions d’empreintes déjà compromises, sans jamais transmettre le secret complet sur le réseau (uniquement les 5 premiers caractères du préfixe SHA-1 ou via un filtre de Bloom local).
- Politiques de blocage contextuelles (
banned-passwords.txt) : Intégrées nativement dans les fournisseurs d’identité modernes (Keycloak, Authelia, Authentik, OpenCloud/oCIS) pour interdire les termes liés au domaine ou à l’organisation.
2. Détection proactive des secrets exposés (Shift-Left & Rust)
- Nosey Parker (Praetorian) : Scanner haute performance écrit en Rust (basé sur Vectorscan/Hyperscan) capable d’auditer des gigaoctets de dépôts Git, d’images conteneurisées et de journaux d’exécution à la recherche de secrets oubliés.
- Gitleaks & TruffleHog v3 : Détection par entropie de Shannon et vérification active des jetons d’API dans les pipelines CI/CD et les hooks
pre-commitavant tout envoi sur un dépôt distant.
3. Audit d’annuaire et posture IAM (Blue & Purple Team)
- DSInternals : Audit défensif des bases d’annuaire Active Directory pour identifier les comptes partageant la même empreinte, les mots de passe obsolètes ou l’absence de chiffrement Kerberos AES.
- PingCastle & PurpleKnight : Cartographie automatisée de la dette de sécurité Active Directory / Entra ID (comptes de service privilégiés, délégations, politiques de verrouillage).
- BloodHound CE : Analyse par théorie des graphes des chemins d’exposition entre comptes et ressources critiques.
4. Ce que change l’IA (Modèles probabilistes, LLM locaux et défense comportementale)
- Grammaires probabilistes et réseaux neuronaux (PCFG, OMEN, PassGAN / FLA) : En recherche et en audit interne, ces modèles apprennent la structure statistique des mots de passe humains (ex.
Mot + Chiffres + Symbole) pour démontrer pourquoi une phrase de passe aléatoire (passphrase) résiste infiniment mieux qu’un mot de passe court complexe mais prévisible. - Génération de listes d’exclusion métier par LLM local (Ollama / Mistral) : Un LLM exécuté localement peut analyser la documentation publique d’une organisation pour générer automatiquement le dictionnaire des termes métiers à bannir dans la politique de mots de passe du SSO.
- Détection comportementale des menaces d’identité (ITDR / CrowdSec + Loki) : Corrélation temps réel des journaux d’authentification OIDC/LDAP pour bloquer les tentatives lentes distribuées (password spraying) et les anomalies géographiques ou temporelles.
5. La parade cryptographique définitive : KDF Memory-Hard et Passkeys
- Argon2id & scrypt : Contrairement aux fonctions rapides (MD5, SHA-1, NTLM) que les milliers de cœurs d’un GPU calculent en parallèle sans contrainte, Argon2id impose un coût mémoire (RAM) configurable par calcul. Cela sature le bus mémoire de la carte graphique et réduit drastiquement la vitesse d’évaluation hors-ligne.
- Passkeys (FIDO2 / WebAuthn) : L’authentification par clé asymétrique liée au matériel (TPM, Secure Enclave, YubiKey) élimine le secret partagé : plus aucun hash de mot de passe n’étant stocké sur le serveur, le risque de cassage hors-ligne disparaît.
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é.
