| name | hashcat |
| description | Hashcat — cracking de mots de passe par GPU, modes d'attaque (dictionnaire, masque, combinatoire, hybride, rule-based), optimisation performance, formats de hash (mode -m), rules, et scénarios de pentest. |
Hashcat — Cracking GPU Haute Performance
Présentation
Hashcat est le cracker de mots de passe le plus rapide au monde, utilisant le GPU pour des vitesses de cracking massives.
Modes :
| Mode | Description |
|---|
-a 0 | Dictionnaire (wordlist) |
-a 1 | Combinaison (wordlist1 + wordlist2) |
-a 3 | Masque (bruteforce avec pattern) |
-a 6 | Hybride dictionnaire + masque |
-a 7 | Hybride masque + dictionnaire |
Installation
sudo apt install hashcat
git clone https://github.com/hashcat/hashcat.git
cd hashcat && make && sudo make install
Modes d'attaque détaillés
Attaque par dictionnaire -a 0
hashcat -m 1000 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
hashcat -m 1000 -a 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
hashcat -m 1000 -a 0 hash.txt rockyou.txt \
-r /usr/share/hashcat/rules/best64.rule \
-r /usr/share/hashcat/rules/d3ad0ne.rule \
-r /usr/share/hashcat/rules/rockyou-30000.rule
Attaque par combinaison -a 1
hashcat -m 1000 -a 1 hash.txt dict1.txt dict2.txt
hashcat -m 1000 -a 1 hash.txt prefix.txt common-passwords.txt
hashcat -m 1000 -a 1 hash.txt common-passwords.txt suffix.txt
Attaque par masque -a 3
hashcat -m 1000 -a 3 hash.txt ?d?d?d?d?d?d?d?d
hashcat -m 1000 -a 3 hash.txt ?l?l?l?l?l?l?l?l
hashcat -m 1000 -a 3 hash.txt ?a?a?a?a?a?a?a?a?a?a --increment \
--increment-min 6 --increment-max 10
hashcat -m 1000 -a 3 hash.txt ?u?d?d?d?s
hashcat -m 1000 -a 3 hash.txt ?l?l?l?l?l?l?l?l?d?d
hashcat -m 1000 -a 3 hash.txt masks/corporate.hcmask
Attaque hybride -a 6 (wordlist + mask)
hashcat -m 1000 -a 6 hash.txt rockyou.txt ?d?d?d
hashcat -m 1000 -a 6 hash.txt rockyou.txt ?s?s
Attaque hybride -a 7 (mask + wordlist)
hashcat -m 1000 -a 7 hash.txt ?u?u rockyou.txt
Types de hash (modes) — Les plus importants
Unix/Linux
500 md5crypt, MD5 (Unix) 👑 /etc/shadow
3200 bcrypt, Blowfish 👑 /etc/shadow
1800 sha512crypt 👑 /etc/shadow (moderne)
7400 sha256crypt 👑 /etc/shadow
1600 Apache $apr1$ MD5
1411 SSHA-256 (OpenLDAP)
Windows
1000 NTLM 👑 Windows NT
3000 LM 👑 Windows legacy
5500 NetNTLMv1 👑 Réseau Windows
5600 NetNTLMv2 👑 Réseau Windows
2100 Domain Cached Credentials (MSCache)
12100 DCC2 (MS Cache v2)
Web / Application
0 MD5 👑 Général
10 md5($pass.$salt)
20 md5($salt.$pass)
100 SHA1
110 sha1($pass.$salt)
120 sha1($salt.$pass)
1400 SHA256
1410 sha256($pass.$salt)
1700 SHA512
1710 sha512($pass.$salt)
25600 bcrypt(md5($pass))
Database
200 MySQL323
300 MySQL4.1/MySQL5
400 MySQL challenge-response
8000 Sybase ASE
3100 Oracle H: Type (Oracle 7+)
112 Oracle S: Type (Oracle 11+)
8500 IBM DB2
Active Directory / Kerberos
7500 Kerberos 5 AS-REP etype 23 👑 AS-REP roasting
13100 Kerberos 5 TGS-REP etype 23 👑 Kerberoasting
19600 Kerberos 5 TGS-REP etype 17 (AES128)
19700 Kerberos 5 TGS-REP etype 18 (AES256)
18200 Kerberos 5 AS-REP etype 23 (AS-REP)
11100 BitLocker
WiFi
22000 WPA-PBKDF2-PMKID+EAPOL 👑 WPA/WPA2/WPA3
2500 WPA/WPA2 (hccapx)
16800 WPA-PMKID-PBKDF2 (PMKID)
Documents
11600 7-Zip
12500 RAR3-hp (RAR5)
13000 RAR5
13600 WinZip
13200 AxCrypt
13711 VeraCrypt
11700 GOST R 34.11-2012 (Streebog)
17220 PKZIP
Other
10700 PDF (PDF 1.4-1.6)
10400 PDF (PDF 1.1-1.3)
10500 PDF (PDF 1.7)
9600 Office 2010
9400 Office 2007
9500 MS Office 2013
9700 MS Office ⇐ 2003
9800 MS Office ⇐ 2011 (Mac)
6800 LastPass
8800 Android FDE
11300 Bitcoin/Litecoin wallet.dat
15200 Blockchain, My Wallet
Rules (transformations de mots de passe)
Règles intégrées
ls /usr/share/hashcat/rules/
best64.rule
rockyou-30000.rule
d3ad0ne.rule
toggles1.rule / toggles2.rule / toggles3.rule / toggles4.rule / toggles5.rule
leetspeak.rule
InsidePro-HashMaster.rule
Appliquer des règles
hashcat -m 1000 -a 0 hash.txt rockyou.txt -r best64.rule
hashcat -m 1000 -a 0 hash.txt rockyou.txt \
-r best64.rule -r d3ad0ne.rule -r rockyou-30000.rule
hashcat --stdout -a 0 rockyou.txt -r best64.rule | head -20
Créer ses propres règles
$ Ajouter à la fin
^ Ajouter au début
s Substitution (s/old/new/)
l Tout en minuscule
u Tout en majuscule
c Première lettre en majuscule
r Inverser
d Dupliquer
{ Décaler à gauche
} Décaler à droite
T Toggle case (T3 = toggle les 3 premiers chars)
DN Ajouter N chiffres au début (D3 = ajouter 3 chiffres)
[ Supprimer premier char
] Supprimer dernier char
$0$1
$1$2
$2$3
$!$@$#
sa4
se3
so0
c$2$0$2$4
Debug des rules
echo "password" | hashcat --stdout -r best64.rule
Optimisation des performances
Informations GPU
hashcat -I
hashcat -I --backend-devices
Workload profile
-w 1
-w 2
-w 3
-w 4
Optimisation par type de hash
hashcat -m 1000 -a 0 -w 3 hash.txt rockyou.txt -O
hashcat -m 3200 -a 3 -w 3 hash.txt ?l?l?l?l?l?l?l?l
hashcat -m 1700 -a 0 -w 3 hash.txt rockyou.txt -O
Options d'optimisation
-O
-w 4
--force
--status
--status-timer 1
--potfile-disable
--backend-devices 1,2
--opencl-device-types GPU
--self-test-disable
Multi-GPU
hashcat -m 1000 -a 0 hash.txt rockyou.txt -d 1,2,3,4
hashcat -m 1000 -a 0 hash.txt rockyou.txt -S
hashcat -m 1000 -a 0 hash.txt -S rockyou.txt -d 1,2
Mode show / left
hashcat -m 1000 --show hash.txt
hashcat -m 1000 --left hash.txt
hashcat -m 1000 --show hash.txt --username | cut -d: -f2-
Fichier Pot (cache)
~/.local/share/hashcat/hashcat.potfile
hashcat --potfile-disable ...
hashcat --potfile-path /tmp/custom.pot ...
cat ~/.local/share/hashcat/hashcat.potfile | sort -u
Outils de conversion
Préparation des hashes
unshadow /etc/passwd /etc/shadow > unshadowed.txt
impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:hash DOMAIN/user@target
impacket-GetNPUsers -request DOMAIN/ -dc-ip 192.168.1.10 -format hashcat
hcxpcapngtool -o hash.22000 capture.pcapng
zip2john archive.zip | cut -d: -f2- > zip.hash
rar2john archive.rar | cut -d: -f2- > rar.hash
pdf2john document.pdf > pdf.hash
keepass2john database.kdbx > keepass.hash
Script de formatage
cat hash.txt | awk -F: '{print $NF}' > clean_hashes.txt
Création de wordlists
Avec Hashcat-utils
rli rockyou.txt
rep -c "e" ...
combinator dict1.txt dict2.txt > combined.txt
combinator3 dict1.txt dict2.txt dict3.txt > triple.txt
Avec Kernel/Generator
pdftotext document.pdf - | tr ' ' '\n' | sort -u > custom_words.txt
cat > target_dict.txt << EOF
Company2024
Company123
Company@2024
Paris2024
Summer2024
Winter2024
Admin2024
EOF
Attaque par boucle d'itération
for wl in /usr/share/wordlists/*.txt; do
echo "=== $wl ==="
hashcat -m 1000 -a 0 hash.txt "$wl"
done
hashcat -m 1000 -a 0 hash.txt rockyou.txt \
-r best64.rule \
-r d3ad0ne.rule \
-r rockyou-30000.rule \
--loopback
Scénarios de pentest
1. NTLM (Windows) — Rapide
hashcat -m 1000 -a 0 -w 3 -O hash_ntlm.txt rockyou.txt
hashcat -m 1000 -a 0 -w 3 -O hash_ntlm.txt rockyou.txt \
-r best64.rule
hashcat -m 1000 -a 3 -w 3 -O hash_ntlm.txt ?d?d?d?d?d?d?d?d
2. Kerberoasting (TGS hash)
hashcat -m 13100 -a 0 kerberos.txt rockyou.txt -r best64.rule
hashcat -m 13100 -a 0 kerberos.txt rockyou.txt \
-r best64.rule -r d3ad0ne.rule
3. /etc/shadow (SHA-512)
hashcat -m 1800 -a 0 shadow.txt rockyou.txt
4. WiFi WPA/WPA2
hashcat -m 22000 -a 0 wifi_hash.txt rockyou.txt
hashcat -m 22000 -a 0 wifi_hash.txt rockyou.txt -r best64.rule
hashcat -m 22000 -a 3 wifi_hash.txt ?h?h?h?h?h?h?h?h
5. bcrypt — Stratégie spéciale
hashcat -m 3200 -a 3 bcrypt.txt ?l?l?l?l?l?l?l?l --increment \
--increment-min 6 --increment-max 8
hashcat -m 3200 -a 0 bcrypt.txt rockyou.txt -r best64.rule
Dépannage
| Problème | Solution |
|---|
| "CL_OUT_OF_RESOURCES" | Réduire le workload -w 2 |
| "Hash-mode not found" | Vérifier le mode -m |
| "No devices found" | Vérifier les drivers GPU hashcat -I |
| "Token length exception" | Vérifier le format du hash |
| "Line-length exception" | Hash trop long → vérifier l'extraction |
| Skip hash (excluded) | Dans potfile déjà, utiliser --show |
| "Integer overflow" | Trop de candidates → segmenter la wordlist |
Antisèche rapide
hashcat -m 1000 -a 0 hash.txt rockyou.txt
hashcat -m 1000 -a 0 hash.txt rockyou.txt -r best64.rule
hashcat -m 1000 -a 1 hash.txt dict1.txt dict2.txt
hashcat -m 1000 -a 3 hash.txt ?d?d?d?d?d?d?d?d
hashcat -m 1000 -a 6 hash.txt rockyou.txt ?d?d?d
hashcat -m 1000 --show hash.txt
hashcat -I
hashcat -m 1000 -a 0 hash.txt rockyou.txt -w 3 -O
hashcat -m 1000 -a 0 hash.txt rockyou.txt \
-r best64.rule -r d3ad0ne.rule -r rockyou-30000.rule
hashcat -m 1000 -a 3 hash.txt ?a?a?a?a?a?a?a?a \
--increment --increment-min 6 --increment-max 8