Introduction
Dans ce laboratoire, vous allez explorer comment optimiser les performances de hashcat, un puissant outil de récupération de mots de passe, en utilisant ses profils de charge de travail (workload profiles). Le réglage du profil de charge de travail vous permet d'affiner la consommation des ressources de hashcat, en trouvant un équilibre entre la vitesse brute de déchiffrement et la réactivité globale du système. Ceci est crucial lorsque vous devez effectuer une tâche de déchiffrement de longue durée sur une machine également utilisée pour d'autres activités.
Vous apprendrez à :
- Comprendre les différents profils de charge de travail disponibles dans
hashcat. - Établir une référence de performance de base (baseline performance benchmark).
- Tester et comparer les profils "Low Power" (Faible puissance) et "High Performance" (Haute performance).
- Appliquer ces connaissances à un scénario de déchiffrement pratique.
Comprendre le but des profils de charge de travail avec -w
Dans cette étape, vous allez découvrir l'option -w (ou --workload-profile) dans hashcat. Cette option contrôle la gestion interne de la charge de travail de hashcat, affectant la pression qu'elle exerce sur votre CPU et votre GPU.
Il existe quatre profils principaux :
-w 1(Faible puissance / Low Power) : Minimise l'utilisation des ressources. Le système reste très réactif, mais la vitesse de déchiffrement est considérablement réduite. Idéal pour une exécution en arrière-plan sur un poste de travail.-w 2(Par défaut / Default) : Un profil équilibré qui offre de bonnes performances tout en maintenant le système raisonnablement utilisable.-w 3(Haute performance / High Performance) : Maximise la vitesse de déchiffrement en utilisant davantage de ressources système. Le système peut devenir lent.-w 4(Cauchemar / Nightmare) : Pour des configurations de déchiffrement dédiées et hautement optimisées. Il pousse le matériel à ses limites absolues et peut entraîner une instabilité du système ou des plantages sur des machines standard.
Commençons par afficher les informations d'aide pour cette option spécifique. C'est une bonne pratique pour comprendre les fonctionnalités de tout outil en ligne de commande.
Exécutez la commande suivante dans votre terminal pour trouver la description de l'option de profil de charge de travail dans le menu d'aide de hashcat :
hashcat --help | grep "workload-profile"
Vous devriez voir un résultat décrivant l'option -w et ses niveaux disponibles.
-w, --workload-profile | ## | Enable a specific workload profile. See below. | -w 3
Workload Profiles:
==================
## | Profile | Performance | Memory | Unattended | Base Tuning
-+-----------+-------------+--------+------------+-------------
1 | Low-Power | 10 % | 1/4 | No | -n 1 -u 1024
2 | Default | 90 % | 1/2 | No | -n 8 -u 256
3 | High-Perf | 100 % | Full | No | -n 64 -u 64
4 | Nightmare | 100 % | Full | Yes | -n 512 -u 32
Cela confirme les différents profils et donne un aperçu de leur impact sur les performances et l'optimisation du système.
Exécuter un benchmark pour établir une référence
Dans cette étape, vous allez établir une référence de performance (baseline). Une référence est une mesure standard que vous pouvez utiliser comme point de comparaison. Nous allons exécuter le mode benchmark intégré de hashcat avec ses paramètres par défaut (équivalent à -w 2).
Le mode benchmark (-b) permet à hashcat de mesurer ses performances sur divers algorithmes de hachage sans avoir besoin de fichiers de hachage d'entrée. Nous allons tester spécifiquement l'algorithme MD5, désigné par le numéro de mode 0 (-m 0).
Exécutez la commande suivante pour lancer le benchmark pour MD5 :
hashcat -b -m 0
hashcat va démarrer et tester les performances de votre système pour le type de hachage MD5. Portez une attention particulière à la sortie. Après quelques instants, il affichera un tableau de résultats. Ce qui vous intéresse est la colonne Speed (Vitesse).
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 299.4 MH/s (46.38ms) @ Accel:128 Loops:256 Thr:64 Vec:1
...
Note : La vitesse que vous voyez (par exemple, 299.4 MH/s) variera en fonction des ressources de la machine virtuelle. L'important est de noter mentalement ce chiffre. C'est votre performance de référence avec le profil de charge de travail par défaut.
Tester le profil basse puissance avec -w 1
Dans cette étape, vous allez tester le profil de charge de travail "Basse puissance" (Low Power). Comme son nom l'indique, ce profil est conçu pour être peu gourmand en ressources système. C'est le choix idéal lorsque vous avez besoin d'exécuter hashcat pendant une période prolongée sans impacter votre capacité à utiliser l'ordinateur pour d'autres tâches.
Nous allons exécuter le même benchmark que lors de l'étape précédente, mais cette fois-ci, nous ajouterons le drapeau -w 1 pour sélectionner explicitement le profil basse puissance.
Exécutez la commande suivante :
hashcat -b -m 0 -w 1
Une fois de plus, hashcat exécutera son benchmark pour l'algorithme MD5. Observez la sortie et trouvez la valeur Speed (Vitesse).
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 37.8 MH/s (48.13ms) @ Accel:1 Loops:1024 Thr:1 Vec:1
...
Comparez cette nouvelle vitesse avec la référence que vous avez enregistrée à l'étape 2. Vous devriez remarquer que la vitesse est significativement plus faible. Cela démontre le compromis : vous sacrifiez la performance brute pour une meilleure réactivité du système.
Tester le profil haute performance avec -w 3
Dans cette étape, vous allez tester le profil de charge de travail "Haute performance" (High Performance). Ce profil fait le contraire du profil basse puissance : il demande à hashcat d'utiliser autant de ressources système que possible pour atteindre la vitesse de cracking maximale. C'est le profil que vous utiliseriez sur une machine dédiée où la performance est la seule priorité.
Exécutons à nouveau le benchmark, cette fois en utilisant le drapeau -w 3.
Exécutez la commande ci-dessous :
hashcat -b -m 0 -w 3
hashcat effectuera le benchmark MD5 en utilisant les paramètres de haute performance. Vérifiez la valeur Speed (Vitesse) dans la sortie.
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 315.1 MH/s (43.80ms) @ Accel:64 Loops:64 Thr:64 Vec:1
...
Comparez cette vitesse à la fois à la référence (étape 2) et au résultat du profil basse puissance (étape 3). Vous devriez constater que c'est la vitesse la plus rapide jusqu'à présent, probablement même plus rapide que le profil par défaut. Cela confirme que -w 3 priorise avec succès la vitesse par rapport à la réactivité du système.
Comparer la performance et la réactivité du système
Dans cette dernière étape, vous allez consolider vos découvertes et les appliquer à une tâche de cracking pratique (bien que simple).
Jusqu'à présent, vous avez observé la relation suivante :
- Vitesse (
-w 1) < Vitesse (Par défaut) < Vitesse (-w 3)
Cela illustre clairement le compromis géré par les profils de charge de travail. Maintenant, utilisons le profil haute performance pour cracker le hash d'exemple qui a été préparé pour vous au début du laboratoire. Le répertoire ~/project contient un fichier de hash sample.hash et un fichier de dictionnaire wordlist.txt.
Nous utiliserons la commande suivante :
-m 0: Spécifie le type de hash MD5.-a 0: Sélectionne une attaque par dictionnaire directe (straight dictionary attack).sample.hash: Le fichier contenant le hash à cracker.wordlist.txt: Le fichier contenant les mots de passe potentiels.-w 3: Le profil haute performance pour obtenir le résultat le plus rapidement possible.
Exécutez la commande pour démarrer le processus de cracking :
hashcat -m 0 -a 0 sample.hash wordlist.txt -w 3
Comme le mot de passe se trouve dans notre petit fichier de dictionnaire, hashcat le trouvera presque instantanément. La sortie affichera le hash cracké et le mot de passe correspondant.
...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 29
* Keyspace..: 4
81d38d4b393528b4c444097c69141559:labex
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 81d38d4b393528b4c444097c69141559
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 268.2 MH/s (0.01ms) @ Accel:64 Loops:64 Thr:64 Vec:1
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 3/4 (75.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> labex
Hardware.Mon.#1..: Temp: 48c Util: 98% Core:1800MHz Mem:3500MHz Bus:16
Started: ...
Stopped: ...
La ligne clé est 81d38d4b393528b4c444097c69141559:labex, qui montre le hash original suivi du mot de passe récupéré, labex. Vous avez utilisé avec succès un profil de charge de travail pour optimiser une tâche de cracking.
Résumé
Félicitations pour avoir terminé ce laboratoire ! Vous avez appris avec succès comment utiliser les profils de charge de travail de hashcat pour gérer la performance et les ressources système.
Dans ce laboratoire, vous avez :
- Appris l'objectif de l'option
-wet ses différents profils (-w 1,-w 2,-w 3). - Utilisé le mode benchmark (
-b) pour établir une référence et mesurer la performance sous différents profils. - Observé le compromis direct entre la vitesse de cracking et la réactivité du système.
- Appliqué le profil haute performance à une tâche pratique de cracking de mots de passe.
Comprendre comment ajuster vos outils est une compétence clé pour tout professionnel technique. Vous pouvez maintenant appliquer ces connaissances pour choisir les paramètres hashcat appropriés à toute situation, que vous ayez besoin de la vitesse maximale sur une machine dédiée ou d'une tâche discrète en arrière-plan sur votre poste de travail personnel.


