Introduction
Hashcat est un outil de récupération de mots de passe puissant et populaire. Lors de l'exécution d'une session de cracking, en particulier une qui pourrait prendre beaucoup de temps, il est crucial de surveiller sa progression et ses performances. Hashcat fournit un écran de statut détaillé en temps réel qui vous donne un aperçu de la vitesse de l'attaque, du temps estimé pour l'achèvement, des performances matérielles, et plus encore.
Dans ce laboratoire, vous apprendrez à démarrer une session Hashcat de base et à interpréter ses statistiques en temps réel. À la fin, vous serez en mesure de surveiller efficacement vos tâches de cracking de mots de passe pour vous assurer qu'elles s'exécutent de manière optimale.
Démarrer une session Hashcat
Dans cette étape, vous allez commencer une session de cracking de mots de passe à l'aide de Hashcat. Nous utiliserons un fichier de hash préconfiguré et une liste de mots (wordlist) situés dans votre répertoire ~/project.
Tout d'abord, examinons les fichiers que nous allons utiliser. Le fichier hashes.txt contient un seul hash MD5, et wordlist.txt contient une petite liste de mots de passe potentiels.
La commande de base pour démarrer une attaque par dictionnaire avec Hashcat est hashcat -m <hash_type> -a <attack_mode> <hash_file> <wordlist_file>.
-m 0spécifie que le type de hash est MD5.-a 0spécifie que le mode d'attaque est une attaque "Straight" ou par dictionnaire.
Maintenant, ouvrez un terminal et exécutez la commande suivante pour démarrer la session. Hashcat s'initialisera et commencera à tenter de cracker le hash.
hashcat -m 0 -a 0 hashes.txt wordlist.txt
Vous verrez une sortie similaire à celle ci-dessous lorsque Hashcat démarrera. Ne vous souciez pas de tous les détails pour l'instant ; laissez-le simplement s'exécuter.
hashcat (v6.2.x) starting...
...
OpenCL Platform #1: The pocl project
====================================
* Device #1: pthread-skylake-avx512, 2047/4095 MB (1023 MB allocatable), 2MCU
...
Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: XX.X kH/s (X.XXms) @ Accel:X Loops:X Thr:X Vec:X
Recovered........: 0/1 (0.00%) Digests
Progress.........: 0/5 (0.00%)
Rejected.........: 0/0 (0.00%)
Restore.Point....: 0/1 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> hashcat
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A
[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>
Laissez la session en cours et passez à l'étape suivante.
Appuyez sur 's' pour afficher l'écran de statut
Dans cette étape, vous apprendrez à demander manuellement une mise à jour du statut de votre session Hashcat en cours.
Pendant que Hashcat s'exécute, il écoute les entrées du clavier pour contrôler la session. En bas de la sortie, vous verrez une invite telle que [s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>. Cela indique les commandes disponibles.
Pour obtenir les dernières statistiques, appuyez simplement sur la touche s de votre clavier, puis appuyez sur Entrée. Hashcat affichera immédiatement un écran de statut mis à jour dans le terminal.
Allez-y et appuyez sur s maintenant.
s
Vous verrez un nouveau bloc de texte très similaire au rapport de statut initial. C'est l'écran des statistiques en temps réel, que nous allons décortiquer dans les étapes suivantes.
Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: XX.X kH/s (X.XXms) @ Accel:X Loops:X Thr:X Vec:X
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 4/5 (80.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/5 (80.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: labex -> labex
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A
Notez que certaines valeurs, comme Recovered et Progress, ont changé.
Interpréter les champs Vitesse, Progression et ETA
Dans cette étape, nous allons nous concentrer sur trois des métriques les plus importantes de l'écran de statut : Vitesse (Speed), Progression (Progress) et ETA (Estimated Time of Arrival). Comprendre ces champs vous aide à évaluer les performances et la durée de votre session de cracking.
Examinons une ligne de statut d'exemple pour chacun :
Speed.Dev.#1.........: XX.X kH/s (X.XXms)- Vitesse (Speed) : Cette ligne indique la vitesse de cracking de chaque périphérique de traitement (CPU, GPU, etc.), identifié par
#1,#2, etc. La vitesse est mesurée en hashes par seconde (H/s, kH/s, MH/s). Un nombre plus élevé est préférable. Dans notre cas, la VM utilise le CPU.
- Vitesse (Speed) : Cette ligne indique la vitesse de cracking de chaque périphérique de traitement (CPU, GPU, etc.), identifié par
Progress.........: 4/5 (80.00%)- Progression (Progress) : Ceci indique combien de mots de passe candidats ont été testés sur le nombre total dans l'espace des clés (keyspace). Dans cet exemple,
4/5signifie qu'il a testé 4 des 5 mots de notrewordlist.txt.
- Progression (Progress) : Ceci indique combien de mots de passe candidats ont été testés sur le nombre total dans l'espace des clés (keyspace). Dans cet exemple,
Time.Estimated...: 0 secs- ETA (Estimated Time of Arrival) : Ce champ, intitulé
Time.Estimated, fournit une estimation du moment où l'attaque actuelle sera terminée. Ceci est calculé en fonction de la vitesse actuelle et du travail restant dans le champProgress. Pour des tâches très courtes comme la nôtre, il deviendra rapidement 0 seconde.
- ETA (Estimated Time of Arrival) : Ce champ, intitulé
Ces trois métriques vous donnent un aperçu rapide et général des performances de votre session de cracking.
Comprendre les compteurs Rejetés et Restaurés
Dans cette étape, nous allons examiner quelques autres champs utiles sur l'écran de statut : Recovered, Rejected et Restore.Point.
Regardons à nouveau l'exemple de sortie :
Recovered........: 1/1 (100.00%) Digests- Récupérés (Recovered) : C'est le champ le plus critique pour les résultats. Il vous indique combien de hashes ont été crackés avec succès. Ici,
1/1signifie que le hash unique dans notre fichier cible a été trouvé. Une fois cela arrivé, Hashcat affichera le mot de passe cracké dans le terminal.
- Récupérés (Recovered) : C'est le champ le plus critique pour les résultats. Il vous indique combien de hashes ont été crackés avec succès. Ici,
Rejected.........: 0/4 (0.00%)- Rejetés (Rejected) : Ce compteur suit combien de candidats mots de passe de votre liste de mots (wordlist) ou de votre ensemble de règles (ruleset) ont été ignorés. Un mot de passe peut être rejeté s'il ne répond pas aux exigences de longueur ou de caractères pour un type de hash spécifique. Pour un simple MD5 et une attaque par dictionnaire, ce chiffre est généralement nul.
Restore.Point....: 4/5 (80.00%)- Point de Restauration (Restore Point) : Ceci indique la position exacte dans la liste de mots (ou l'espace des clés - keyspace) où Hashcat travaille actuellement. Si vous arrêtez et reprenez la session plus tard, Hashcat utilise ce point de restauration pour continuer là où il s'est arrêté, vous évitant de recommencer depuis le début.
En surveillant ces champs, vous pouvez suivre les cracks réussis et diagnostiquer les problèmes potentiels avec vos listes de mots.
Surveiller la température et l'utilisation du matériel
Dans cette dernière étape, vous découvrirez la section de surveillance matérielle de l'écran de statut de Hashcat et comment quitter correctement la session.
Le cracking de mots de passe est une tâche très intensive qui peut pousser votre matériel à ses limites. Hashcat intègre une surveillance intégrée pour vous aider à garder un œil sur la santé de votre système.
Regardez la ligne Hardware.Mon dans la sortie de statut :
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A- Temp : Affiche la température du périphérique en Celsius.
- Util : Affiche le pourcentage d'utilisation du périphérique (son niveau d'activité).
- Core/Mem : Affiche les fréquences d'horloge du cœur (core) et de la mémoire du périphérique.
Remarque : Dans notre environnement de laboratoire virtualisé, ces valeurs apparaissent comme N/A (Non Applicable) car Hashcat ne peut pas accéder directement aux capteurs matériels de l'hôte. Sur une machine physique avec un GPU dédié, ces champs afficheraient des données en temps réel, ce qui est essentiel pour éviter la surchauffe et garantir des performances stables.
Maintenant que notre courte session est terminée et que nous avons analysé l'écran de statut, il est temps de quitter Hashcat. Pour ce faire, appuyez sur q puis sur Entrée.
q
Hashcat arrêtera la session et vous ramènera à l'invite de commande.
Résumé
Félicitations pour avoir terminé ce laboratoire !
Vous avez appris à surveiller efficacement une session Hashcat en cours. Vous savez maintenant comment :
- Démarrer une attaque par dictionnaire basique avec Hashcat.
- Utiliser la commande
spour afficher l'écran de statut en temps réel. - Interpréter les métriques de performance clés telles que la Vitesse (Speed), la Progression (Progress) et l'Estimation du Temps d'Arrivée (ETA).
- Comprendre la signification des compteurs Récupérés (Recovered), Rejetés (Rejected) et Point de Restauration (Restore Point).
- Reconnaître les champs de surveillance matérielle et leur importance.
Ces compétences sont fondamentales pour gérer toute tâche de cracking de mots de passe, vous permettant de suivre la progression, de diagnostiquer les problèmes et de garantir que votre matériel fonctionne de manière sûre et efficace.


