Maîtriser le cracking offline GPU-accéléré avec Hashcat et John the Ripper sur tous les hashs courants : NTLM, NetNTLMv2, MD5, SHA-1/256/512, bcrypt, Argon2, MySQL, hashs WordPress, ZIP/RAR/7Z, PDF. Wordlists, masks, rules, hybrid attacks et stratégies d’optimisation.
📍 À lire d’abord : Passer le CEH v13 depuis l’Afrique de l’Ouest — Guide complet 2026 · Lab CEH avec Kali Linux + DVWA + HTB Academy.
⚠️ Hashs à cracker = uniquement ceux issus de tes propres systèmes (test passwords) ou d’un mandat de pentest signé. Cracker les hashs de fichiers tiers obtenus illégalement reste un crime sous toutes les juridictions ouest-africaines.
Introduction
Le module 06 System Hacking du CEH v13 (~10 % de l’examen) accorde une place centrale au cracking de mots de passe. Les bases de données de hashs sont le butin le plus convoité d’un attaquant : un hash craqué donne un mot de passe en clair, qui est presque toujours réutilisé sur d’autres comptes (un Trello / Gmail / banque / WordPress du même utilisateur). Les outils de référence sont Hashcat (GPU-accéléré, le plus rapide) et John the Ripper (CPU + GPU, le plus polyvalent sur les formats exotiques).
Ce tutoriel apprend les deux outils sur des hashs typiques que tu trouves dans un pentest CEH : NTLM Windows, hashs Linux SHA-512, hashs WordPress, archives ZIP protégées. Tu apprendras les stratégies dictionary, brute force, mask, rules, hybrid — et comment choisir laquelle en fonction de ce que tu sais sur la cible. Stratégie attendue à l’examen et en pratique.
Prérequis
- Lab Kali Linux 2026.1 (Hashcat et John préinstallés).
- Compréhension des fonctions de hash : MD5, SHA-1, SHA-256, bcrypt.
- GPU dédié recommandé pour Hashcat (NVIDIA RTX, AMD Radeon). CPU only fonctionne mais 100x plus lent.
- Wordlist téléchargée :
rockyou.txt(sur Kali à/usr/share/wordlists/rockyou.txt.gz, à décompresser). - Niveau attendu : intermédiaire.
- Temps estimé : 3 heures.
Étape 1 — Comprendre les fonctions de hash
Une fonction de hash transforme une donnée d’entrée variable en empreinte fixe, unidirectionnelle (impossible de remonter à l’entrée depuis la sortie sans force brute). Les fonctions les plus courantes :
Algorithme Longueur Vitesse cracking RTX 3080 Sécurité 2026
MD5 32 hex ~50 GH/s Cassée (collisions, rainbow tables)
SHA-1 40 hex ~22 GH/s Compromise (collisions SHAttered 2017)
SHA-256 64 hex ~7 GH/s Forte si itéré, faible en simple
NTLM (Windows) 32 hex ~80 GH/s Cassée par défaut
NetNTLMv2 complexe ~3 GH/s Vulnérable au cracking
MySQL5 (SHA1+) 40 hex ~22 GH/s Cassée
bcrypt 60 chars ~30 KH/s Forte (par design lent)
Argon2id ~96 chars ~10 KH/s La plus forte (recommandée 2026)
GH/s = milliards de hashs par seconde. KH/s = milliers. Un hash MD5 simple est cracké en heures pour 8 caractères ; un Argon2 prend des années même sur la même machine — c’est exactement pourquoi MD5 est interdit pour passwords depuis 15 ans et bcrypt/Argon2 sont la norme.
Étape 2 — Récupérer un hash : trois cas typiques
Cas 1 : Hashs Linux depuis /etc/shadow. Format username:$ID$rounds$salt$hash:lastchange:....
$ cat /etc/shadow
root:$6$AbCdEfGh$X9y5z...:18000:0:99999:7:::
$6$ = SHA-512. $5$ = SHA-256. $1$ = MD5 (legacy). $2y$ = bcrypt. $argon2id$ = Argon2id.
Cas 2 : Hashs Windows depuis SAM/NTDS. Sur une cible Windows compromise via Meterpreter :
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
user:1001:aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76:::
Format user:RID:LM_hash:NTLM_hash:::. Le LM hash (1ère partie) est désactivé depuis Windows 2003 SP2 (rempli de aad3b...). Le NTLM hash (2ème partie) est ce qu’on craque.
Cas 3 : Hashs WordPress depuis wp_users.user_pass. Format spécifique commençant par $P$B... (phpass) ou $wp$2y$... (bcrypt depuis WP 6.x).
SELECT user_login, user_pass FROM wp_users;
Cas 4 : Hashs d’archive ZIP/RAR/7Z protégée. Extraction avec scripts dédiés :
# ZIP
zip2john archive.zip > archive.hash
# RAR
rar2john archive.rar > archive.hash
# 7-Zip
7z2john archive.7z > archive.hash
# PDF
pdf2john.pl document.pdf > document.hash
Étape 3 — Hashcat : premier crack
Hashcat est l’outil GPU-accéléré le plus rapide. Synthaxe : hashcat -m <mode> -a <attack> hashfile wordlist.
Les modes courants à connaître pour le CEH :
Mode 0 MD5
Mode 100 SHA-1
Mode 1000 NTLM
Mode 5500 NetNTLMv1
Mode 5600 NetNTLMv2
Mode 1400 SHA-256
Mode 1700 SHA-512
Mode 1800 SHA-512 crypt (Linux $6$)
Mode 7400 sha256crypt (Linux $5$)
Mode 3200 bcrypt $2*$
Mode 22000 WPA-PBKDF2-PMKID+EAPOL (Wi-Fi capture handshakes)
Mode 400 phpass (WordPress, Joomla)
Mode 12500 RAR3-hp
Mode 13000 RAR5
Mode 13600 7-Zip
Premier exemple : cracker un hash NTLM avec dictionnaire rockyou.
# Préparer le hash dans un fichier
echo "8846f7eaee8fb117ad06bdd830b7586c" > ntlm.hash
# Décompresser rockyou si pas déjà fait
sudo gunzip /usr/share/wordlists/rockyou.txt.gz
# Crack en mode dictionnaire
hashcat -m 1000 -a 0 ntlm.hash /usr/share/wordlists/rockyou.txt
Sortie typique :
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1000 (NTLM)
Hash.Target......: 8846f7eaee8fb117ad06bdd830b7586c
Time.Started.....: ...
Time.Estimated...: ...
Speed.#1.........: 12345 MH/s (5.43ms)
Recovered........: 1/1 (100.00%) Digests
Progress.........: 1234567/14344384 (8.61%)
Le mot de passe craqué apparaît dans le fichier ~/.hashcat/hashcat.potfile au format hash:plaintext. Récupère avec hashcat -m 1000 ntlm.hash --show.
password est la valeur typique pour ce hash NTLM précis (cf. cas d’école Microsoft).
Étape 4 — Stratégies d’attaque Hashcat
Hashcat propose six modes d’attaque (-a).
Mode 0 — Dictionary (le plus rapide quand wordlist contient le mot) :
hashcat -m 1000 -a 0 hash.txt rockyou.txt
Mode 1 — Combinator : combine deux wordlists (mot1+mot2) :
hashcat -m 1000 -a 1 hash.txt words1.txt words2.txt
Mode 3 — Brute force / mask : essaie toutes les combinaisons pour un masque donné. Mask : ?l minuscules, ?u majuscules, ?d chiffres, ?s symboles, ?a tout ASCII imprimable, ?h hex lowercase, ?H hex uppercase, ?b binary 0-255.
# 6 chiffres exactement (PIN)
hashcat -m 1000 -a 3 hash.txt ?d?d?d?d?d?d
# 8 caractères : 1 majuscule + 5 minuscules + 2 chiffres
hashcat -m 1000 -a 3 hash.txt ?u?l?l?l?l?l?d?d
# Mot de longueur 6 à 10 tout caractères
hashcat -m 1000 -a 3 hash.txt --increment --increment-min 6 --increment-max 10 ?a?a?a?a?a?a?a?a?a?a
Mode 6 — Hybrid wordlist + mask : ajoute des suffixes à un mot du dico (password + 2026!) :
hashcat -m 1000 -a 6 hash.txt rockyou.txt ?d?d?d?d
Mode 7 — Hybrid mask + wordlist : ajoute des préfixes :
hashcat -m 1000 -a 7 hash.txt ?d?d?d rockyou.txt
Mode 9 — Association : associe chaque mot du dico à un hash spécifique (utile pour craquer N comptes avec leurs mots de passe spécifiques).
Étape 5 — Rules : démultiplier la wordlist
Les rules sont des transformations appliquées à chaque mot du dictionnaire pour générer des variantes (capitalisation, leet speak, ajout de chiffres, etc.). Hashcat livre des rules préfaites dans /usr/share/hashcat/rules/.
# Best64 : 64 transformations classiques
hashcat -m 1000 -a 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
# Big rules : 1.7 million de transformations (long mais exhaustif)
hashcat -m 1000 -a 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/dive.rule
# Plusieurs rules cumulées
hashcat -m 1000 -a 0 hash.txt rockyou.txt -r best64.rule -r toggles1.rule
Exemples de transformations rules :
: do nothing
l lowercase all
u uppercase all
c capitalize first
$1 append "1"
$2026 append "2026"
^A prepend "A"
sa@ replace 'a' with '@'
i4M insert "M" at position 4
Tu peux écrire tes propres rules dans un fichier .rule. Pour le CEH, connaître best64 et savoir lire la syntaxe basique suffit.
Étape 6 — John the Ripper : alternative et formats exotiques
John est plus adaptable sur les formats peu courants (Cisco type 7, JKS Java keystore, KeePass, Bitcoin wallet, etc.). Sur Kali, deux versions : john (community) et john-jumbo (avec ~400 formats supportés).
# Lister les formats supportés
john --list=formats | grep -i nt
# Crack basique avec dictionnaire
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
# Avec format spécifié
john --format=NT --wordlist=rockyou.txt hash.txt
# Avec rules
john --wordlist=rockyou.txt --rules=Jumbo hash.txt
# Mode incremental (brute force structuré)
john --incremental hash.txt
# Voir les hashs craqués
john --show hash.txt
John est typiquement utilisé pour les premiers tests rapides ou les formats sans support GPU Hashcat.
Étape 7 — Wordlists : où les trouver, comment les optimiser
Les wordlists font la différence entre un crack en 30 secondes et un crack qui ne réussit jamais. Stratégie :
Wordlists de base :
– rockyou.txt (14 millions de mots, base de référence) — sur Kali à /usr/share/wordlists/rockyou.txt.gz
– SecLists (collection GitHub maintenue à jour) — git clone https://github.com/danielmiessler/SecLists
– PROBABLE-Wordlists (statistiques de fréquence) — https://github.com/berzerk0/Probable-Wordlists
Wordlists ciblées par contexte :
– Pour cibles francophones : top-french.txt (les 10 000 mots de passe français les plus courants)
– Pour entreprises : générer une wordlist custom à partir de l’OSINT (noms d’employés, années, ville, slogan d’entreprise)
Génération custom avec CeWL :
# Scrape un site cible et extrait les mots de 5+ caractères
cewl -d 2 -m 5 https://example.com -w cewl-wordlist.txt
Mutations sur une wordlist existante avec mp64 :
mp64 'rockyou.txt?d?d' > rockyou-2digits.txt
Étape 8 — Crack pratique sur Metasploitable 2
Tu as dump /etc/shadow de Metasploitable 2 dans le tutoriel précédent. Crack le hash root :
# Extraire le hash root format Hashcat
echo 'root:$1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.' > shadow.hash
# $1$ = MD5 crypt mode 500 dans Hashcat
hashcat -m 500 -a 0 shadow.hash /usr/share/wordlists/rockyou.txt --force
Sur Metasploitable 2, root:msfadmin. Le hash craque en 2 secondes avec rockyou car msfadmin est dans la wordlist.
Pour cracker tous les hashs d’un fichier shadow d’un coup, John est plus pratique :
unshadow /etc/passwd /etc/shadow > combined.txt
john --wordlist=rockyou.txt combined.txt
john --show combined.txt
unshadow reformate passwd + shadow en format compatible John.
Étape 9 — Optimisations GPU et performance
Sur GPU NVIDIA RTX 3080, tu obtiens typiquement :
NTLM : 80 GH/s (plus de 80 milliards par seconde)
SHA-1 : 22 GH/s
SHA-256 : 7 GH/s
SHA-512 : 2.5 GH/s
bcrypt $2y : 30 KH/s (10 millions de fois plus lent que NTLM)
Argon2 : 10 KH/s
Bench sur ton GPU :
hashcat -b
Optimisations possibles :
-O: optimized kernels (mode rapide, parfois moins précis)-w 4: workload profile (1=low, 4=insane, attention chauffage)--force: ignore certaines warnings-d 1,2: sélectionner GPU spécifique sur multi-GPU
Sur CPU only (laptop sans GPU dédié) :
# Utiliser tous les cores
hashcat -m 1000 -a 0 hash.txt rockyou.txt -D 1
Pour des cracking sérieux et long (4+ heures), utiliser un VPS avec GPU loué (AWS, Vast.ai à ~0.3 USD/h pour RTX 3060). Compter 5-15 USD pour craquer 10-50 hashs cohérents.
Étape 10 — Stratégies de cracking pour CEH
Au CEH, on ne te demande pas de cracker des hashs ultra-complexes en pratique — on teste ta connaissance des techniques. Sache :
1. Identifier le format de hash (couleur, longueur, prefix)
2. Choisir le mode Hashcat correspondant
3. Premier essai : dictionnaire rockyou ou SecLists
4. Si échec : rules best64 + rockyou
5. Si échec : mask brute force jusqu'à 8 caractères
6. Si échec : OSINT pour wordlist custom (cewl, noms employés, years)
7. Si échec : abandonner ou louer du GPU dans le cloud
À l’examen, plusieurs questions de format :
- Quelle commande Hashcat pour cracker un hash NTLM avec rockyou et best64.rule ? →
hashcat -m 1000 -a 0 hash.txt rockyou.txt -r best64.rule - Quelle est la différence entre dictionary attack et brute force ? → Dictionary teste une liste prédéfinie ; brute force teste toutes les combinaisons.
- Comment identifier si un hash est NTLM ou MD5 ? → 32 hex chars dans les deux cas. NTLM provient de Windows (SAM, NTDS). Tester d’abord NTLM si origine Windows, MD5 sinon. Outils comme
hashidouhash-identifieraident.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
No hashes loaded |
Mauvais mode -m ou format de hash incorrect |
Vérifier avec hashid hash.txt ; relire la doc Hashcat pour le bon mode |
Token length exception |
Hash mal formé (caractères invisibles, encodage) | Recopier proprement le hash sans espace ni newline |
| Hashcat tourne mais ne trouve rien | Mot de passe pas dans la wordlist | Essayer une wordlist plus grande ou rules ; si échec, brute force masqué |
Out of memory GPU |
Wordlist + rules trop volumineuses | Splitter la wordlist (split -l 100000 rockyou.txt) ; réduire rules |
| Crack ultra-lent sur bcrypt | C’est normal, bcrypt est lent par design | Patience ou GPU haut de gamme, accepter 1-3 hashs/jour |
--show ne montre rien |
Potfile vide (jamais cracké) | Vérifier ~/.hashcat/hashcat.potfile, recommencer le crack |
| Différence rockyou vs SecLists | rockyou = leak Yahoo 2009 ; SecLists = collection moderne | Les deux sont complémentaires |
john --incremental tourne sans fin |
Brute force sur tout l’espace | Ajouter --max-length=8 |
Format Linux $y$ rejeté |
yescrypt, support récent | Mise à jour Hashcat, ou utiliser John Jumbo |
Adaptation au contexte ouest-africain
Pour les pentesters qui dump des bases de données africaines : les bases de PME africaines contiennent typiquement 50-90 % de mots de passe craquables avec rockyou + best64. Les attaquants africains utilisent ces wordlists exactement comme leurs homologues mondiaux. Conséquence : exiger Argon2 ou bcrypt + 12 caractères + MFA dans tous tes audits.
Pour les analystes SOC / DFIR : connaître le cracking côté offensif te permet de comprendre l’urgence d’un dump de hashs. Si un attaquant exfiltre 100 000 hashs MD5 d’une cible, considérer que tous les comptes sont compromis dans les 7 jours suivants ; tous les passwords doivent être réinitialisés.
Pour les développeurs web : utiliser Argon2id (Argon2 avec resistance side-channel + tradeoff memory/time) par défaut dans tes apps. PHP 7.2+ : password_hash($pwd, PASSWORD_ARGON2ID). Node.js : argon2 package. Python : passlib.
Pour les centres de formation : démontrer en 30 minutes le cracking de 10 hashs de la classe (en faisant taper aux étudiants 10 mots de passe communs) impressionne durablement et ancre la nécessité de bonnes pratiques password.
FAQ
Hashcat ou John : que choisir ?
Hashcat pour vitesse pure (GPU). John pour formats exotiques et CPU only. En 95 % des cas CEH, Hashcat suffit.
Pourquoi rockyou.txt et pas une autre ?
C’est la wordlist de référence depuis 2009 (leak du site rockyou.com avec 32M de mots de passe en clair). Elle représente bien la distribution réelle des mots de passe humains. Compléter avec SecLists pour les cas modernes.
Puis-je cracker un hash sans connaître le mot de passe original ?
C’est toujours l’objectif d’un cracking. Tu n’as que le hash, le but est de retrouver le plain text. Les méthodes : dictionnaire (essais de mots possibles), brute force (toutes combinaisons), rainbow tables (lookup pré-calculé pour hashs sans salt).
Combien de temps pour cracker un mot de passe de 12 caractères aléatoires ?
Avec NTLM sur RTX 3080 (80 GH/s), brute force 12 chars [a-zA-Z0-9] = 62^12 = 3.2 * 10^21 combinaisons / 80 * 10^9 H/s = ~1300 ans. Insolvable en pratique. C’est pourquoi la longueur 12+ avec entropie est efficace.
Les rainbow tables sont-elles encore utilisées ?
Marginalement. Pour les hashs sans salt (NTLM, MD5 brut), elles fonctionnent mais Hashcat GPU est aussi rapide. Pour hashs salés (bcrypt, Argon2), inutilisables (chaque salt invaliderait la table).
Qu’est-ce que le « salt » dans un hash ?
Une chaîne aléatoire ajoutée au mot de passe avant hashage. Empêche les rainbow tables et rend chaque hash unique même pour des passwords identiques. Tous les algorithmes modernes (bcrypt, Argon2, scrypt, sha512crypt) intègrent automatiquement un salt.
Peut-on cracker un mot de passe Windows oublié de cette manière ?
Théoriquement oui (extraire le hash via samdump2 depuis SAM, cracker avec Hashcat). En pratique, c’est plus simple de réinitialiser via media bootable Windows. La technique cracking est utilisée contre Windows, pas pour récupérer son propre password.
Pour aller plus loin
- 🔝 Article cadre : Passer le CEH v13 depuis l’Afrique de l’Ouest — Guide complet 2026
- ⬅️ Prérequis : Lab CEH Kali · Metasploit Framework
- ➡️ Suite logique : Wireless hacking WPA2/WPA3 environnement contrôlé (à venir).
- Documentation officielle : Hashcat Wiki, John the Ripper Documentation.
- Wordlists : SecLists GitHub, PROBABLE-Wordlists, WeakPass.
- Suggestion d’entraînement : crée 10 mots de passe variés (faibles, moyens, forts) avec Argon2id, MD5, NTLM, bcrypt. Tente de les cracker. Compare temps et succès — c’est exactement ce qui prouve dans tes audits que MD5 ne doit JAMAIS être utilisé pour des passwords en 2026.
Mots-clés secondaires : Hashcat tutoriel CEH, John the Ripper francophone, NTLM crack, rockyou wordlist, mask attack hybrid, bcrypt Argon2 password, dump shadow Linux, hashdump SAM Windows.