Introduction
Hashcat est un outil de récupération de mots de passe puissant et populaire. Le craquage de mots de passe peut être un processus très long, prenant parfois des heures, des jours, voire des semaines. Pour cette raison, il est crucial de savoir comment gérer ces tâches de longue durée. Vous pourriez avoir besoin de mettre une tâche en pause pour libérer des ressources système, ou vous pourriez être confronté à un arrêt inattendu du système. Sans une gestion de session appropriée, vous devriez recommencer tout le processus depuis le début, perdant ainsi un temps précieux.
Dans ce laboratoire, vous apprendrez les bases de la gestion de session dans Hashcat. Vous pratiquerez le démarrage d'une session nommée, sa mise en pause et sa reprise interactives, ainsi que son arrêt et sa restauration à l'aide des fonctionnalités intégrées de gestion de session de Hashcat. Ces compétences sont essentielles pour toute utilisation pratique de Hashcat.
Démarrer une session de craquage de longue durée
Dans cette étape, vous allez démarrer une tâche de craquage de mots de passe et lui donner un nom de session spécifique. Nommer une session est la première et la plus importante étape pour la gestion, car cela indique à Hashcat de suivre et de sauvegarder la progression de cette tâche spécifique.
Nous utiliserons une attaque par dictionnaire basique. La structure de la commande utilise plusieurs indicateurs (flags) :
-m 0: Spécifie le type de hash.0correspond à MD5.-a 0: Spécifie le mode d'attaque.0correspond à une attaque directe (par dictionnaire).--session <name>: Assigne un nom à la session actuelle. Ceci est crucial pour la mise en pause et la reprise.
Tout d'abord, assurez-vous d'être dans le répertoire ~/project, où le script d'installation a créé les fichiers nécessaires (hashes.txt et wordlist.txt).
Exécutez maintenant la commande suivante pour démarrer une session de craquage nommée my_session :
hashcat -m 0 -a 0 hashes.txt wordlist.txt --session my_session
Après avoir exécuté la commande, Hashcat s'initialisera et affichera un écran de statut dans votre terminal. Cet écran fournit des informations en temps réel sur la progression du craquage.
hashcat (v6.2.x) starting...
...
Session..........: my_session
Status...........: Running
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#*.........: ...
...
Progress.........: 123456/1000001 (12.34%)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Remarquez la ligne Session..........: my_session, qui confirme le nom de notre session. Le Status est Running (En cours), et la barre de Progress (Progression) avance. Laissez le processus s'exécuter pendant quelques instants avant de passer à l'étape suivante.
Mettre la session en pause en appuyant sur 'p'
Dans cette étape, vous apprendrez comment mettre en pause une session Hashcat active. Ceci est utile si vous avez besoin d'allouer temporairement les ressources de votre ordinateur à une autre tâche sans perdre votre progression de craquage.
Hashcat fournit un menu interactif en bas de son écran de statut. Vous pouvez voir les options disponibles : [s]tatus [p]ause [r]esume [b]ypass [q]uit.
Pour mettre la session en pause, appuyez simplement sur la touche p de votre clavier pendant que la fenêtre du terminal Hashcat est active. Vous n'avez pas besoin d'appuyer sur Entrée.
Appuyez sur p maintenant.
Vous verrez le champ Status (Statut) à l'écran passer immédiatement de Running (En cours) à Paused (En pause).
...
Session..........: my_session
Status...........: Paused
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Pendant que la session est en pause, Hashcat arrête tout traitement et l'utilisation du GPU/CPU pour la tâche tombe à zéro. Cependant, l'application reste active dans votre terminal, attendant de nouvelles instructions.
Reprendre la session en appuyant sur 'r'
Dans cette étape, vous allez reprendre la session que vous venez de mettre en pause.
Tout comme vous avez utilisé la touche p pour mettre en pause, vous pouvez utiliser la touche r pour reprendre. Cela indiquera à Hashcat de continuer le processus de craquage à partir du point exact où il a été mis en pause.
Tant que le terminal Hashcat est toujours actif, appuyez sur la touche r.
Le champ Status (Statut) repassera de Paused (En pause) à Running (En cours), et vous verrez les indicateurs Progress (Progression) et Speed (Vitesse) redevenir actifs.
...
Session..........: my_session
Status...........: Running
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
La session est maintenant de nouveau en cours d'exécution, et aucune progression n'a été perdue. Ce cycle de pause/reprise peut être répété autant de fois que nécessaire.
Arrêter la session et comprendre le fichier .restore
Dans cette étape, vous apprendrez comment arrêter complètement une session et inspecter le fichier que Hashcat utilise pour sauvegarder son état. Ceci est différent de la mise en pause ; l'arrêt quitte l'application entièrement. C'est ce que vous feriez si vous aviez besoin d'éteindre votre ordinateur.
Pour arrêter la session proprement, appuyez sur la touche q (pour quit/quitter).
Appuyez sur q maintenant.
Hashcat arrêtera le processus de craquage et se fermera, vous ramenant à l'invite de commande.
Lorsque vous utilisez une session nommée, Hashcat sauvegarde automatiquement sa progression dans un fichier de restauration. Ce fichier porte le même nom que votre session avec l'extension .restore.
Vérifions que ce fichier a été créé. Listez les fichiers de votre répertoire actuel :
ls -l
Vous devriez voir my_session.restore dans la liste des fichiers.
-rw-r--r-- 1 labex labex 28 Jul 10 10:30 hashes.txt
-rw-r--r-- 1 labex labex 48 Jul 10 10:32 my_session.restore
-rw-r--r-- 1 labex labex 8888898 Jul 10 10:30 wordlist.txt
Ce fichier contient toutes les informations dont Hashcat a besoin pour reprendre la session plus tard, y compris les arguments de ligne de commande originaux et le dernier candidat mot de passe qui a été testé. Vous pouvez visualiser son contenu avec la commande cat :
cat my_session.restore
La sortie sera une série de lignes contenant la configuration et la progression de la session. Ce fichier est la clé des puissantes capacités de gestion de session de Hashcat.
Restaurer une session précédente avec les drapeaux --session et --restore
Dans cette dernière étape, vous apprendrez comment restaurer une session qui a été complètement arrêtée. Ceci est extrêmement utile pour reprendre le travail après un redémarrage ou après avoir intentionnellement arrêté une tâche de longue durée.
Pour restaurer une session, vous utilisez le drapeau --restore conjointement avec le drapeau --session pour spécifier quelle session reprendre. Un avantage majeur de cette méthode est que vous n'avez pas besoin de fournir à nouveau le type de hash original, le mode d'attaque ou les chemins de fichiers. Hashcat lit toutes ces informations à partir du fichier .restore.
Exécutez la commande suivante pour restaurer my_session :
hashcat --session my_session --restore
Hashcat démarrera à nouveau et chargera automatiquement l'état du fichier my_session.restore. Vous verrez l'écran de statut apparaître, et surtout, la Progress (Progression) commencera là où elle s'était arrêtée, et non depuis le début.
...
Session..........: my_session
Status...........: Running
...
Progress.........: 123456/1000001 (12.34%) -> (Resuming from where it was stopped)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Vous avez restauré avec succès une session arrêtée. Vous pouvez maintenant la laisser s'exécuter jusqu'à la fin ou appuyer sur q pour quitter à nouveau.
Résumé
Dans ce laboratoire, vous avez acquis les compétences essentielles pour gérer les sessions de craquage dans Hashcat. Vous savez désormais comment gérer les tâches de longue durée sans craindre de perdre votre progression en cas d'interruption.
Vous avez appris à :
- Démarrer une session nommée en utilisant le drapeau
--session, qui est la base de la gestion de session. - Contrôler interactivement une session en cours en appuyant sur
ppour mettre en pause etrpour reprendre. - Arrêter proprement une session avec
qet comprendre qu'Hashcat crée automatiquement un fichier.restorepour sauvegarder l'état. - Restaurer une session complètement arrêtée en utilisant les drapeaux
--sessionet--restore, vous permettant de reprendre le travail efficacement.
Maîtriser ces fonctionnalités est essentiel pour utiliser Hashcat efficacement sur toute tâche de craquage de mot de passe non triviale.


