📋 Fiche Outil : hashcat


> Attention : GPU vs VM Hashcat tire sa puissance de la carte graphique (**GPU**). Sur une machine virtuelle (Kali), il sera bridé car il utilisera le processeur (CPU). Pour les gros volumes, il est recommandé d'installer Hashcat **sur ton Windows hôte** (si tu as une carte Nvidia/AMD) et d'y copier tes fichiers de hashs.

ressources : https://hashcat.net/wiki/doku.php?id=example_hashes


🎯 Objectif Principal

Casser des hashs de mots de passe exfiltrés lors d’une intrusion. Hashcat effectue des milliards de comparaisons par seconde pour retrouver le mot de passe en clair correspondant à l’empreinte chiffrée.


Syntaxe Générale
bash
hashcat -m <CODE_HASH> -a <MODE_ATTAQUE> <FICHIER_HASHS> [WORDLIST] [options]

Syntaxe

  • Exemple de type de hash
bash
 hashcat -m 9600 -a 0 [fichierHASH] /usr/share/wordlists/rockyou.txt --force

Référence des Codes (-m)

Le choix du code est critique. Voici les plus fréquents en pentest :

Type de Hash Code -m Contexte / Origine
NTLM 1000 Windows (Dump SAM, NTDS.dit) – Le standard.
NetNTLMv2 5600 Windows (Capturé sur le réseau via Responder).
Kerberoasting 13100 Active Directory (Ticket TGS via GetUserSPNs).
AS-REP Roasting 18200 Active Directory (Sans pré-auth via GetNPUsers).
MD5 0 Anciens CMS, bases de données web obsolètes.
SHA-256 1400 Bases de données Linux/Web standards.
sha512crypt 1800 Linux (Fichier /etc/shadow, $6$).
bcrypt 3200 Web moderne ($2a$, $2y$). Très lent à casser.
WPA/WPA2 22000 Handshakes WiFi (Aircrack-ng/Bettercap).
Office 2013+ 9600 Documents Excel/Word chiffrés.
Identifier un code inconnu
  • Via l’aide : hashcat -hh | grep -i "NomDuService"
  • Outil tiers : Utiliser hash-identifier ou nth (Name-That-Hash).

Paramètre (Flag)

Option (Flag) Description Note / Exemple
-m Hash Type. Le code numérique du type de hash. Obligatoire. Voir tableau ci-dessus.
-a Attack Mode. Le type d’attaque. 0 = Dictionnaire (Wordlist).

3 = Masque (Bruteforce pur).

-o Output. Fichier de sortie. Écrit les mots de passe trouvés dans un fichier.
--show Affiche les résultats _déjà_ trouvés. Ne relance pas le calcul.
-r Rules. Applique des règles de mutation. Ex: best64.rule (transforme « pass » en « Pass123! »).
-O Optimized. Active le kernel optimisé. Plus rapide, mais limite la longueur des mots de passe.
--status Affiche une barre de progression. Mise à jour automatique durant le crack.
--force Ignore les avertissements (ex: utilisation sur une VM). Utile si Hashcat refuse de se lancer.

Exemple

1. Attaque Dictionnaire (NTLM)

Cas classique après un dump de base SAM.

bash
hashcat -m 1000 -a 0 hashs.txt /usr/share/wordlists/rockyou.txt

2. Attaque Kerberoasting (Active Directory)

Casse un ticket TGS récupéré.

bash
hashcat -m 13100 -a 0 kerberoast.txt /usr/share/wordlists/rockyou.txt

3. Attaque avec Règles (Mutation)

Essaye la wordlist + des variations (majuscules, chiffres, caractères spéciaux).

bash
hashcat -m 1000 hashs.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule

4. Afficher les résultats

Voir ce qui a été cassé précédemment.

bash
hashcat -m 1000 hashs.txt --show

Suivi & Recommandation

Le processus de cracking doit suivre une logique d’efficience (du plus rapide au plus lent).

Étape 1 : Préparation & Extraction

Récupérer le hash et le nettoyer. Hashcat n’accepte que le hash pur, sans nom d’utilisateur ni métadonnées (sauf exceptions comme NetNTLMv2).

  • _Cas Document Office :_ Extraire le hash avec office2john.py avant de le donner à Hashcat.
bash
  python3 /usr/share/john/office2john.py fichier.xlsx > hash.txt
  # Nettoyer hash.txt pour ne garder que la chaîne commençant par $office$...

Étape 2 : Identification

Déterminer le code -m exact. Une erreur ici rend le cracking impossible.

Étape 3 : Stratégie d’Attaque (Ordre d’exécution)

  1. Attaque Rapide (Wordlist simple)

– Utiliser rockyou.txt. Cela casse les mots de passe triviaux ou par défaut.
– _Temps estimé :_ Quelques secondes/minutes.

  1. Attaque Moyenne (Wordlist + Règles)

– Ajouter -r .../rules/best64.rule. Cela trouve les variations comme « Soleil2023! ».
– _Temps estimé :_ 10 à 30 minutes.

  1. Attaque Lourde (Masque / Bruteforce)

– Mode -a 3. À utiliser en dernier recours pour les mots de passe courts (7-8 caractères).
– _Temps estimé :_ Heures ou Jours.

Étape 4 : Post-Cracking

Une fois le mot de passe affiché (ex: Password123!), l’utiliser immédiatement pour tenter une connexion via nxc smb ou evil-winrm.

Hashcat (OLD)

Type de HASH

Faire une recherche pour connaître le type de HASH (ex : kerberos”)

sur Hashcat récupérer le code de hash en question

bash
hashcat --h | grep -i “Kerberos”

A ce moment là, il faudra récuperer le bon code concernant notre hash

> La commande [NTH](NTH.md) permet églalement de récuperer le HASH

HASH PASS

lancer la commande pour hasher le mot de passe

bash
hashcat -m CODE SELECTFICHIER /usr/share/wordlists/rockyou.txt --force

exemple :

bash
hashcat -m 13100 kerberoast_hash.txt /usr/share/wordlists/rockyou.txt --force

Après le hash nous auront à ce moment deux possibilité :

  • hacked : mot de passe trouvé
  • Exhausted : mot de passe non trouvé