- Description
- Fonctionnalités
- Prérequis
- Installation
- Usage
- Organisation du code
- Personnalisation
- Résolution des problèmes
- Stratégie à adopter
- Wordlists intéressantes dans SecLists
- Différence entre Pantagrule et Best64
Ce script bash automatise le processus de craquage de mots de passe avec Hashcat, en combinant différentes approches :
- Dictionnaires bruts
- Dictionnaires avec des règles
- Attaques par masques personnalisés
Le script inclut des fonctionnalités avancées telles que la gestion des logs avec des niveaux de gravité, un suivi en temps réel, et un système de verrouillage pour éviter les conflits entre les processus.
- Automatisation des attaques Hashcat en trois étapes : dictionnaires, règles, et masques.
- Vérification automatique si un mot de passe a été trouvé après chaque attaque.
- Génération de logs détaillés avec horodatage et niveaux de gravité (INFO, WARNING, ERROR).
- Gestion des conflits avec un système de verrouillage (
/tmp/hashcat.lock
). - Résumé final des résultats après toutes les tentatives.
- Sauvegarde automatique des mots de passe trouvés dans un fichier dédié.
Avant d'utiliser ce script, assurez-vous d'avoir :
- Hashcat installé sur votre machine.
- Vous pouvez installer Hashcat via votre gestionnaire de paquets ou en téléchargeant la version officielle depuis hashcat.net.
- Les droits d'exécution sur le script (
chmod +x script.sh
). - Les fichiers de dictionnaires et de règles mentionnés dans le script.
- Par exemple :
rockyou.txt
,darkweb2017.txt
,best64.rule
.
- Par exemple :
- Un fichier de hash compatible avec l'algorithme 22000 (Wi-Fi WPA/WPA2).
- Clonez ce dépôt sur votre machine :
git clone https://github.com/<votre-utilisateur>/<votre-projet>.git cd <votre-projet>
- Modifiez les chemins des fichiers de dictionnaires et des règles dans le script pour correspondre à votre environnement.
Exécutez le script avec un fichier de hash en argument :
./script.sh <fichier_de_hash>
./script.sh hashes.hc22000
Le script :
- Suivra trois étapes pour tenter de craquer les mots de passe.
- Sauvegardera les mots de passe trouvés dans le fichier
cracked_password.txt
. - Enregistrera tous les événements dans un fichier de log (
trace_follow.log
).
Pour suivre l'avancement en direct, utilisez la commande :
tail -f trace_follow.log
Étape | Description |
---|---|
Vérifications | Vérifie la présence et la validité des fichiers nécessaires. |
Étape 1 | Teste les dictionnaires bruts fournis. |
Étape 2 | Combine les dictionnaires avec des règles pour générer des variations de mots de passe. |
Étape 3 | Utilise des masques pour effectuer des attaques par force brute ciblées. |
Résumé final | Affiche un récapitulatif des résultats. |
cracked_password.txt
: Contient les mots de passe trouvés.trace_follow.log
: Fichier de log détaillant chaque étape.
Ajoutez vos fichiers de dictionnaires dans la section suivante :
DICT_FILES=(
"/chemin/vers/votre_dictionnaire.txt"
"/autre/chemin/dictionnaire2.txt"
)
Ajoutez vos fichiers de règles dans la section suivante :
RULES=(
"/chemin/vers/votre_regle.rule"
)
Ajoutez ou modifiez les masques personnalisés dans la section suivante :
MASKS=(
"?d?d?d?d?d?d?d?d" # Exemple : 12345678
"?u?l?d?l?l?d?u?u" # Exemple complexe
)
- Hashcat affiche une erreur ou s'arrête :
Vérifiez que votre matériel supporte les paramètres utilisés (GPU, CPU). Vous pouvez ajuster les options dans la commande Hashcat (-D
,-w
, etc.). - Le fichier de verrouillage bloque l'exécution :
Supprimez manuellement le fichier/tmp/hashcat.lock
si nécessaire.
Utilise d'abord un dictionnaire simple pour tester les mots de passe les plus probables.
hashcat -m 22000 -a 0 hash.22000 rockyou.txt --status --status-timer=60
Exemple : Teste password123
et variantes communes.
Teste les mots de passe composés uniquement de chiffres sur 8 caractères (standards de box).
hashcat -m 22000 -a 3 hash.22000 ?d?d?d?d?d?d?d?d --increment
Exemple : Teste 12345678
, 87654321
.
Prépare une wordlist combinant noms courants en France, box internet (Free, SFR, etc.), et chiffres.
hashcat -m 22000 -a 1 hash.22000 noms_box_fr.txt num_4_digits.txt
Exemple : Teste Freebox2021
, Livebox1234
.
Fichier noms_box_fr.txt
(exemple) :
Freebox
Livebox
Bbox
Waya
Ajoute systématiquement les options d’optimisation pour gagner en performance.
hashcat -w 4 -O -m 22000 hash.22000 rockyou.txt
Exemple : Priorise la vitesse sur les GPU modernes en désactivant certaines limites.
Astuce : À appliquer pour toutes les commandes sauf en cas de crash ou limitation matérielle.
Utilise des règles puissantes pour des mutations complexes après les tests simples.
hashcat -m 22000 -a 0 hash.22000 wordlist_fr.txt -r /path/to/pantagrule/pantagrule.rule
Exemple : Transforme password
en P@ssw0rd123
.
Teste les structures spécifiques comme une clé générée automatiquement :
hashcat -m 22000 -a 3 hash.22000 ?u?l?l?d?d?d?d
Exemple : Abc12345
.
- Toujours commencer simple : wordlists générales, chiffres.
- Progressivement augmenter la complexité : hybrides et règles.
- Optimisation matérielle essentielle à chaque étape pour des performances maximales.
Voici quelques wordlists spécifiques de SecLists qui peuvent être utiles pour WPA/WPA2 :
-
Passwords/common.txt
- Les mots de passe les plus courants, très efficace pour tester rapidement.
- Exemple :
123456
,password
,admin
.
-
Passwords/xato-net-10-million-passwords.txt
- 10 millions de mots de passe basés sur des fuites réelles.
- Exemple :
qwerty123
,sunshine2022
.
-
Passwords/Wi-Fi/Common-WiFi-WPA2-Passphrases.txt
- Ciblé pour les SSID de box et mots de passe par défaut.
- Exemple :
freebox1234
,livebox5678
.
-
Passwords/darkweb2017-top10000.txt
- Basé sur les leaks des bases de données du dark web.
- Exemple :
hunter2
,iloveyou
.
-
Usernames/top-usernames-shortlist.txt + Numéros
- Combinez cette liste avec des chiffres (hybride
-a1
). - Exemple :
admin1234
,user2023
.
- Combinez cette liste avec des chiffres (hybride
- Une des règles les plus complexes pour hashcat, issue de transformations des attaques les plus efficaces.
- Utilise des mutations avancées comme :
- Substitutions (
a
→@
,o
→0
). - Ajouts (
123
,!
). - Combinaisons dynamiques.
- Substitutions (
- Objectif : Tester un grand nombre de permutations en peu de temps.
- Exemple transformation :
- Entrée :
password
- Sortie :
P@ssw0rd!123
- Entrée :
- Une règle plus légère et rapide, orientée vers les transformations les plus communes.
- Adaptée pour des ressources limitées ou un premier passage rapide.
- Objectif : Moins de transformations mais haut taux de réussite sur des mots de passe simples.
- Exemple transformation :
- Entrée :
admin
- Sortie :
admin123
- Entrée :
Critère | Pantagrule | Best64 |
---|---|---|
Complexité | Élevée | Faible |
Nombre de règles | ~1 million | ~64 |
Performance | Nécessite un GPU performant | Rapide sur tout système |
Cas d’usage | Longues attaques avancées | Tests rapides |
Recommandation :
- Pantagrule : Utiliser après avoir testé avec des règles simples comme Best64 ou dans une attaque finale.
- Best64 : Toujours commencer par celle-ci pour identifier rapidement les mots de passe faibles.