Théme de la semaine : Exploitation

Hashcat : Tutoriel complet pour casser des hash de mots de passe

Lecture: 11 minutes
Accueil • CyberSécurité • Hashcat : Tutoriel complet pour casser des hash de mots de passe

Vous voulez tester la solidité de vos mots de passe ou comprendre comment les attaquants cassent des hachages en quelques secondes ? Hashcat est tout simplement le moteur de cassage par GPU le plus rapide et le plus puissant au monde. Que vous fassiez vos premiers pas en cybersécurité ou que vous cherchiez à auditer vos propres accès, maîtriser cet outil est une compétence indispensable.

Dans ce tutoriel Hashcat complet, nous allons découvrir son fonctionnement.De son installation à la prise en main des attaques par dictionnaire, par masque et des règles avancées, vous découvrirez étape par étape comment récupérer des hachages NTLM, Wi-Fi ou d’archives chiffrées en tirant le meilleur parti de votre carte graphique.

Hashcat, un outil incontournable

Hashcat est totalement incontournable et reste l’outil de référence absolue en matière de récupération de mots de passe et d’audit de sécurité (pentesting et red teaming). Plusieurs facteurs expliquent pourquoi Hashcat conserve cette place centrale :

Des performances inégalées grâce au matériel moderne

Hashcat tire pleinement parti de la puissance de calcul parallèle des GPU (cartes graphiques NVIDIA et AMD),ainsi que des processeurs multi-cœurs (CPU) et des accélérateurs matériels plus récents. Grâce à des optimisations poussées en assembleur (kernels optimisés), il peut tester des milliards de combinaisons par seconde sur des algorithmes complexes, ce qui en fait le moteur de cassage le plus rapide au monde.

Un support massif d’algorithmes

L’outil prend en charge plus de 300 types de hachages différents, couvrant un large spectre :

  • Windows / Active Directory : NTLM, Net-NTLMv1/v2, DCC2 (Cached Domain Credentials).
  • Authentification réseau : Kerberos 5 (AS-REP roasting, Kerberoasting), WPA/WPA2/WPA3 (Wi-Fi).
  • Bases de données et applications : MD5, SHA-256, Bcrypt, Argon2, PBKDF2, phpass, etc.
  • Divers : Fichiers chiffrés (archives ZIP/RAR, clés privées SSH, portefeuilles de cryptomonnaies).

Des modes d’attaque extrêmement puissants

Hashcat ne se limite pas à la simple force brute. Il propose des approches sophistiquées adaptées aux méthodologies de pentesting modernes :

  • Attaques par dictionnaire (Wordlist) : Combinées à des règles de mutation complexes (-r rules/...) pour générer des variations réalistes basées sur les habitudes des utilisateurs.
  • Attaques combinées et par masques (Mask attack) : Permettant de cibler des formats de mots de passe précis (ex: 8 caractères avec majuscules et chiffres).
  • Attaques par règles hybrides : Permettant d’injecter de la logique dans les dictionnaires.

👉 Tout savoir sur les différentes attaques de mot de passe.

Dans la grande majorité des audits de sécurité internes d’entreprises, l’obtention de hachages (notamment NTLM ou Kerberos) est une étape classique suite à une compromission de domaine. L’utilisation de Hashcat permet ensuite de démontrer l’impact réel d’une politique de mots de passe faible (mots de passe trop courts, présence de mots du dictionnaire, absence de complexité réelle).

Les types d’attaques utilisées par Hascat

Voici les principaux modes d’attaque utilisés par Hashcat.

L’attaque par Dictionnaire (Wordlist Attack)

C’est l’équivalent de tester toutes les entrées d’un dictionnaire.

Comment ça marche : Hashcat prend une liste contenant des millions de mots de passe déjà connus ou fréquents (comme 123456, azerty ou password) et les teste tous un par un. C’est l’attaque la plus rapide lorsque les utilisateurs choisissent des mots de passe courants.

👉 Découvrez les célèbres wordlist RockYou et SecList.

L’attaque par Force Brute (Brute-Force Attack)

Cela va tester aveuglément toutes les combinaisons possibles de caractères jusqu’à trouver la bonne.

Comment ça marche : L’outil essaie méthodiquement a, b, c… puis aa, ab, ac… avec des lettres, des chiffres et des symboles. Le problème est que cette méthode est mathématiquement infaillible, mais elle devient extrêmement lente (voire irréaliste) si le mot de passe dépasse 8 ou 9 caractères complexes.

Attaque par force brute avec Hashcat

L’attaque par Masque (Mask Attack)

Une force brute ciblée qui s’appuie sur la structure exacte d’un mot de passe.

Comment ça marche : Si vous savez (ou devinez) qu’un mot de passe commence par une majuscule, suivie de 3 lettres minuscules et se termine par 2 chiffres (ex: Chat99), vous donnez ce schéma — le « masque » — à Hashcat. 

L’outil ne testera que les combinaisons qui respectent ce format précis, ce qui fait gagner un temps considérable par rapport à une force brute classique.

Attaque de mot de passe par masque avec Hascat

L’attaque par Règles (Rule-Based Attack)

Cette attaque va prendre les mots d’un dictionnaire et leur appliquer des transformations logiques.

Comment ça marche : Les utilisateurs modifient souvent des mots simples pour créer leurs mots de passe. Hashcat applique automatiquement des règles de mutation à votre dictionnaire, comme :

Par exemple :

  • Ajouter une année à la fin (Soleil $\rightarrow$ Soleil2026)
  • Remplacer des lettres par des chiffres similaires (Password $\rightarrow$ P@ssw0rd)
  • Mettre la première lettre en majuscule (soleil $\rightarrow$ Soleil)
Attaque de mot passe par règle avec Hashcat

L’attaque Combinatoire (Combinator Attack)

Le principe est simple : Fusionner des mots provenant de deux dictionnaires différents.

Comment ça marche : Hashcat prend un mot dans une première liste et le colle à un mot d’une seconde liste. C’est idéal pour retrouver les mots de passe composés de deux termes (ex: Chat + Noir$\rightarrow$ ChatNoir).


En pentesting, on commence rarement par la force brute pure. On privilégie une attaque par dictionnaire enrichie de règles, ou une attaque par masque, car ce sont les méthodes qui offrent les meilleurs résultats dans un temps raisonnable.

Hashcat face à Hydra et JohnTheRipper

Bien que Hashcat, John the Ripper et Hydra soient tous les trois des outils phares du pentesting, ils ne répondent pas aux mêmes besoins.

Pour faire simple, la différence majeure réside dans la méthode d’attaque (en ligne vs hors-ligne) et dans la façon dont l’outil exploite le matériel de votre ordinateur (GPU vs CPU).

Hashcat vs Hydra : Attaque Hors-Ligne vs Attaque En Ligne

C’est la distinction la plus importante à retenir en audit de sécurité.

Hydra : L’attaquant « En Ligne » (Online Cracker)

  • Comment il agit : Hydra attaque directement un service actif à travers un réseau (ex: une page d’identification Web, un serveur SSH, un accès FTP ou un service RDP).
  • Son fonctionnement : Il tente de se connecter directement en soumettant des couples « identifiant / mot de passe » en temps réel.
  • Sa limite : Il est très lent comparativement aux outils hors-ligne, car il dépend de la vitesse de la connexion réseau, des temps de réponse du serveur cible et des mécanismes de blocage (ban IP, captcha, verrouillage de compte).

Hashcat : L’attaquant « Hors-Ligne » (Offline Cracker)

  • Comment il agit : Hashcat n’envoie aucune requête sur le réseau. Vous devez d’abord extraire la liste des hachages (hashes) du système cible (depuis une base de données, Active Directory ou un fichier local) et la charger directement sur votre machine.
  • Son fonctionnement : Il calcule des milliards de possibilités par seconde en local. Aucun pare-feu ou limiteur de tentative ne peut l’arrêter puisqu’il travaille sur votre propre ordinateur.

Hashcat vs John the Ripper : La Puissance Brutale GPU vs La Polyvalence CPU

Tous deux sont des outils de cassage hors-ligne, mais leurs forces fondamentales diffèrent.

Hashcat : Le monstre de puissance (Optimisé GPU)

  • Son point fort : Il a été pensé dès le départ pour exploiter au maximum la puissance des cartes graphiques (GPU).
  • Ses cas d’usage : Il est imbattable en vitesse pure sur les attaques de force brute lourdes, les masques et les attaques par dictionnaires complexes avec règles. C’est l’outil privilégié pour casser de gros volumes de hachages Active Directory (NTLM/Kerberos) ou de clés Wi-Fi WPA2/WPA3.

John the Ripper (JTR) : Le couteau suisse polyvalent (Optimisé CPU)

  • Son point fort : Il brille par sa flexibilité sur processeur (CPU) et sa capacité à reconnaître ou déchiffrer des formats très rares ou exotiques.
  • Ses cas d’usage : JTR est idéal pour identifier automatiquement le type de hachage sans configuration préalable. Il intègre également une vaste panoplie de scripts (comme ssh2john ou pdf2john) permettant de transformer facilement un fichier chiffré (PDF, clé SSH, archive) en un hachage lisible.

Tableau comparatif récapitulatif

CritèreHashcatJohn the RipperHydra
Type d’attaqueHors-ligne (Offline)Hors-ligne (Offline)En ligne (Online)
CibleFichiers de hachages locauxFichiers de hachages locauxServices réseau (SSH, Web, FTP)
Matériel privilégiéCarte graphique (GPU)Processeur (CPU)Bande passante réseau
VitesseExtrêmement rapide(Milliards/sec)Très rapide (Optimisations CPU)Lente (Limitée par la cible)
Forces clésAttaques de masse, masques, règlesDétection auto, formats rares, scripts de conversionCassage d’interfaces d’authentification live

En pentesting, le choix entre ces trois outils dépend entièrement de la cible et de l’environnement d’attaque.

On utilise Hydra au tout début d’un audit pour tester directement des identifiants à distance sur des services réseau actifs comme SSH, FTP ou une page Web, bien qu’il soit rapidement limité par la vitesse du réseau et les protections anti-brute-force. 

Une fois qu’un accès local est obtenu et que des hachages de mots de passe sont récupérés, on passe aux attaques hors-ligne. 

On privilégie alors John the Ripper pour sa polyvalence et sa capacité à identifier rapidement des formats rares ou convertir des fichiers chiffrés sur le processeur (CPU).

Enfin, on déploie Hashcat dès qu’il faut attaquer de gros volumes de hachages standardisés comme NTLM, WPA ou Kerberos, car c’est le moteur le plus rapide au monde pour exploiter la puissance brute des cartes graphiques (GPU) et appliquer des masques ou des règles complexes.

Comparaison entre Hashcat et Hydra ou JohnTheRipper

👉 Les outils pour craquer un mot de passe en pentesting.

Installer Hashcat

L’installation de Hashcat varie légèrement selon le système d’exploitation que vous utilisez. Voici comment procéder pas à pas sur Windows, Linux et macOS.

Installer Hashcat sur Windows

Sous Windows, Hashcat s’installe généralement à partir du site officiel en récupérant l’archive binaire.

  1. Rendez-vous sur le site officiel de Hashcat (hashcat.net) pour télécharger la dernière archive .7z (version binaire pour Windows).
  2. Décompressez l’archive téléchargée à l’aide d’un logiciel comme 7-Zip ou WinRAR dans un dossier de votre choix (par exemple, dans C:\hashcat).
  3. Ouvrez l’invite de commandes (cmd) ou PowerShell, puis déplacez-vous dans le dossier où vous avez extrait les fichiers en tapant par exemple :cd C:\hashcat
  4. Tapez hashcat.exe --version pour vous assurer que l’outil s’exécute correctement.

Assurez-vous d’avoir installé les derniers pilotes à jour pour votre carte graphique NVIDIA ou AMD, car Hashcat en a impérativement besoin pour fonctionner.

Installer Hashcat sur Linux (Ubuntu / Debian / Kali Linux)

Sur les distributions Linux axées sur la sécurité ou basées sur Debian, l’installation est extrêmement simple grâce au gestionnaire de paquets.

  1. Ouvrez votre terminal.
  2. Mettez à jour la liste de vos paquets pour repartir sur des bases saines :
sudo apt update

Installez directement Hashcat en tapant :

sudo apt install hashcat

Pour valider que l’installation a bien fonctionné, tapez :

hashcat --version

Sur Linux aussi, l’installation des pilotes propriétaires de votre carte graphique est indispensable pour exploiter la pleine puissance de calcul.

3. Installer Hashcat sur macOS

Sur Mac, la méthode la plus simple consiste à utiliser Homebrew, le gestionnaire de paquets populaire pour macOS.

installez Hashcat en entrant la commande suivante :

brew install hashcat

Pour vérifier, tapez dans votre terminal :

hashcat --version

Gardez en tête que sur les ordinateurs Mac récents équipés des puces Apple Silicon (M1, M2, M3, M4), Hashcat fonctionnera, mais les performances de calcul GPU sous macOS peuvent être plus limitées que sur un PC équipé d’une carte graphique dédiée Windows ou Linux.

Hashcat depuis le terminal

Exemple d’utilisation d’Hashcat pour une attaque par force brute

Comme nous l’avons vu, une attaque par force brute avec Hashcat consiste à tester systématiquement toutes les combinaisons possibles de caractères jusqu’à trouver le bon mot de passe. C’est la méthode ultime quand on n’a aucune idée de ce que contient le mot de passe, mais elle demande beaucoup de temps si ce dernier est trop long.

Imaginons que vous auditez un système et que vous récupérez le hachage (le mot de passe crypté) d’un utilisateur. Vous savez (ou vous supposez) que sa politique de sécurité interne lui imposait un mot de passe très court : exactement 4 chiffres (par exemple, un code PIN).

Voici comment vous allez demander à Hashcat de trouver ce code en testant toutes les combinaisons de 4 chiffres possibles.

Dans votre terminal, la commande ressemblera à ceci :

hashcat -m 0 -a 3 mon_hash.txt ?d?d?d?d
  1. hashcat : Lance le programme.
  2. -m 0 : Indique à Hashcat le type de hachage que vous attaquez. Le chiffre 0 correspond à l’algorithme MD5 (dans notre exemple fictif, le hash stocké est en MD5).
  3. -a 3 : Désigne le mode d’attaque. Le chiffre 3 correspond précisément à une attaque par masque (ou force brute).
  4. mon_hash.txt : C’est le fichier texte sur votre ordinateur qui contient le hachage à casser.
  5. ?d?d?d?d : C’est le « masque » que vous donnez à Hashcat pour lui indiquer la structure exacte à tester.
    • Le code ?d (pour digit) signifie « n’importe quel chiffre de 0 à 9 ».
    • En écrivant ?d?d?d?d, vous lui ordonnez de tester toutes les combinaisons à 4 chiffres, de 0000 à 9999.

Une fois la commande lancée, Hashcat va utiliser la puissance de votre carte graphique pour tester ces 10 000 combinaisons possibles. S’il s’agit d’un code PIN à 4 chiffres en MD5, l’opération prendra une fraction de seconde, et Hashcat affichera le mot de passe en clair à l’écran (par exemple : 1234).

Exemple d’utilisation d’Hashcat pour une attaque par règle

Une attaque par règle (ou Rule-based attack) est l’une des méthodes les plus puissantes et réalistes en pentesting.

Plutôt que de tester des mots de passe au hasard ou de s’en tenir stictement à une liste de mots simples, cette approche prend un dictionnaire de base et lui applique des transformations automatiques basées sur les habitudes humaines (comme ajouter une majuscule, remplacer une lettre par un chiffre, ou coller une année à la fin).

L’exemple précis

Imaginons que vous auditez un système et que vous avez récupéré un hachage (toujours en MD5 pour notre exemple). Vous savez que l’utilisateur a tendance à choisir un mot simple du quotidien, mais qu’il essaie de le complexifier un minimum pour respecter les règles de sécurité (par exemple en écrivant Soleil2026! au lieu de soleil).

Vous possédez un petit fichier dictionnaire dico.txt qui contient le mot de base soleil, mais pas la version modifiée. Voici comment vous allez utiliser Hashcat avec un fichier de règles pour retrouver ce mot de passe.

La commande Hashcat

Dans votre terminal, la commande ressemblera à ceci :

hashcat -m 0 -a 0 mon_hash.txt dico.txt -r rules/best64.rule
  1. hashcat : Lance le programme.
  2. -m 0 : Indique l’algorithme de hachage (ici, 0 pour MD5).
  3. -a 0 : Désigne le mode d’attaque 0, qui correspond à une attaque par dictionnaire classique.
  4. mon_hash.txt : Le fichier contenant le hachage cible que vous cherchez à casser.
  5. dico.txt : Votre dictionnaire de base contenant les mots simples (dont le mot soleil).
  6. -r rules/best64.rule : C’est l’élément clé. Il indique à Hashcat d’utiliser un fichier de règles prédéfini fourni avec l’outil (ici best64.rule, qui applique les 64 mutations les plus courantes et efficaces).

👉 Apprenez à créer vos propres dictionnaires ou wordlist.

Ce qui se passe

Hashcat va prendre le mot soleil issu de votre dictionnaire et lui appliquer des dizaines de modifications à la volée, en testant par exemple :

  • Mettre la première lettre en majuscule $\rightarrow$ Soleil
  • Ajouter des chiffres ou des symboles à la fin $\rightarrow$ Soleil2026!
  • Remplacer des lettres par des chiffres (le ‘o’ par un ‘0’) $\rightarrow$ s0leil

Si la règle correspondante est appliquée, Hashcat retrouve instantanément le mot de passe réel (Soleil2026!) et l’affiche à l’écran, vous évitant d’avoir à stocker un dictionnaire géant contenant des milliards de variations écrites à l’avance.

Voici les trois tableaux récapitulatifs indispensables pour maîtriser Hashcat lors de vos audits et sessions de pentesting.

Options et commandes principales de Hashcat

OptionRôle / DescriptionExemple d’utilisation
-mSpécifie le type de hachage (algorithme cible)-m 0 (pour du MD5)
-aSpécifie le mode d’attaque-a 3 (pour une attaque par masque)
-oEnregistre les mots de passe trouvés dans un fichier-o resultats.txt
-rApplique un fichier de règles de mutation-r rules/best64.rule
--showAffiche les mots de passe déjà craqués sans relancer le calculhashcat -m 1000 hash.txt --show
--statusAffiche l’avancement, la température et la vitesse en temps réel--status
-bLance un test de performance (benchmark) sur votre carte graphiquehashcat -b

Valeurs courantes de la commande -m (Algorithmes)

Valeur (-m)Type de Hachage / Algorithme cibléContexte typique
0MD5Applications web, bases de données anciennes
100SHA-1Anciens systèmes, certificats
1000NTLMDomaines Windows / Active Directory
1400SHA-256Stockage sécurisé de mots de passe
1800sha512cryptFichiers de mots de passe Linux (/etc/shadow)
2500WPA / WPA2Captures de paquets Wi-Fi (Handshake)
3200BcryptApplications web modernes
5600Net-NTLMv2Authentification réseau Windows interceptée

Valeurs de la commande -a (Modes d’attaque)

Valeur (-a)Nom du ModeFonctionnement
0Straight(Dictionnaire)Parcourt une liste de mots préexistants (dictionnaire classique).
1CombinatorFusionne deux mots provenant de deux dictionnaires différents (ex: mot1 + mot2).
3Mask (Force brute / Masque)Teste des combinaisons de caractères selon un format strict défini (ex: ?l?l?l?l?d?d).
6Hybrid Wordlist + MaskPrend un mot de dictionnaire et lui ajoute des caractères personnalisés à la fin (ex: mot + ?d?d).
7Hybrid Mask + MaskCommence par un masque de caractères et lui ajoute un mot de dictionnaire à la fin.

Hashcat s’impose comme l’outil incontournable du pentester moderne pour tester et évaluer la résistance des mots de passe. Là où des outils comme Hydra s’attaquent aux accès réseau en direct et où John the Ripper excelle dans la conversion et le traitement par processeur (CPU), Hashcat exploite toute la puissance brute de votre carte graphique (GPU) pour casser des hachages à une vitesse inégalée.

Que ce soit pour tester des combinaisons simples en force brute, croiser des listes avec des dictionnaires ou appliquer des règles intelligentes qui imitent le comportement humain, l’outil s’adapte à tous les scénarios. 

En maîtrisant simplement son installation et ses options de base (-m pour l’algorithme, -a pour l’attaque), vous disposez d’un levier essentiel pour identifier les mots de passe vulnérables et renforcer efficacement la sécurité d’un système.