Extraire les hachages de mots de passe avec hashdump dans Meterpreter

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez l'une des techniques de post-exploitation les plus courantes : l'extraction des hachages de mots de passe à partir d'une cible Windows compromise. Plus précisément, vous utiliserez la commande hashdump disponible dans la charge utile Meterpreter de Metasploit. Ces hachages, une fois obtenus, peuvent être décryptés hors ligne pour révéler les mots de passe des utilisateurs, permettant ainsi une escalade de privilèges ou un mouvement latéral au sein d'un réseau.

Pour cet exercice éducatif, nous travaillerons dans un environnement simulé de Metasploit Framework. Cela vous permettra d'apprendre les commandes exactes et le flux de travail sans avoir à configurer un réseau complexe victime/attaquant. Vous commencerez avec une session Meterpreter pré-établie sur une machine Windows simulée.

Vos objectifs sont de :

  • Accéder à une session Meterpreter active.
  • Utiliser la commande hashdump pour extraire les hachages de mots de passe.
  • Comprendre la structure des hachages extraits.
  • Enregistrer les hachages dans un fichier pour une utilisation future.

Obtenir une session Meterpreter avec des privilèges SYSTEM

Dans cette étape, vous allez démarrer la console Metasploit simulée et interagir avec la session Meterpreter préexistante. Dans un scénario réel, l'obtention de cette session impliquerait l'exploitation d'une vulnérabilité sur la machine cible. Pour ce laboratoire, la session vous a été préparée.

Tout d'abord, naviguez dans le répertoire de simulation qui a été créé par le script de configuration.

cd ~/project/metasploit-simulation

Maintenant, démarrez la console Metasploit simulée en exécutant le script msfconsole.

./msfconsole

Vous devriez voir une bannière de bienvenue et l'invite msf6 >. Cela indique que vous êtes dans la console principale de Metasploit. Pour voir les sessions actives, utilisez la commande sessions avec l'indicateur -l (list).

sessions -l

Vous verrez la sortie suivante, montrant une session active avec un ID de 1.

Active sessions
===============

  Id  Name  Type                     Information                  Connection
  --  ----  ----                     -----------                  ----------
  1         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ WIN-PC  10.0.2.15:4444 -> 10.0.2.16:49152

La sortie montre que nous avons une session meterpreter exécutée en tant que NT AUTHORITY\SYSTEM, ce qui correspond au niveau de privilège le plus élevé sur un système Windows. Ceci est crucial pour l'extraction des hachages.

Maintenant, interagissez avec cette session en utilisant son ID.

sessions -i 1

Votre invite passera de msf6 > à meterpreter >, confirmant que vous êtes maintenant à l'intérieur de la session Meterpreter sur la machine cible.

Charger l'extension API standard priv si nécessaire

Dans cette étape, vous allez charger l'extension priv. Cette extension Meterpreter fournit des commandes pour l'escalade de privilèges et pour accéder à des parties sensibles du système d'exploitation, telles que la base de données Security Account Manager (SAM) où sont stockés les hachages de mots de passe.

Bien que de nombreuses charges utiles Meterpreter modernes chargent automatiquement les extensions nécessaires lorsqu'une commande est appelée, il est de bonne pratique de savoir comment les charger manuellement. Cela garantit que vous disposez des fonctionnalités requises.

Dans l'invite meterpreter >, tapez la commande suivante pour charger l'extension priv :

load priv

Le simulateur confirmera que l'extension a été chargée avec succès.

[+] Loading extension priv...
[+] Loaded extension: priv

Avec l'extension priv chargée, vous avez maintenant accès à des commandes telles que hashdump.

Exécuter le module de post-exploitation hashdump

Dans cette étape, vous allez exécuter la commande hashdump. C'est la raison principale pour laquelle nous avons chargé l'extension priv. Cette commande fonctionne en lisant la base de données SAM directement depuis la mémoire du système, contournant ainsi les protections sur disque. Ceci est possible car notre session s'exécute avec des privilèges SYSTEM.

Maintenant que vous êtes dans l'invite Meterpreter et que vous avez chargé l'extension priv, exécutez simplement la commande hashdump.

hashdump

La commande s'exécutera et affichera une liste d'utilisateurs et leurs hachages de mots de passe correspondants à l'écran.

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
labex-user:1001:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::

Vous avez réussi à extraire les hachages de mots de passe de la machine Windows simulée. Dans la prochaine étape, nous analyserons la structure de cette sortie.

Observer les hachages NTLM extraits de la base de données SAM

Dans cette étape, vous apprendrez à interpréter la sortie de la commande hashdump. Comprendre ce format est essentiel pour savoir quoi faire des hachages que vous avez collectés.

Examinons une ligne de la sortie que vous avez générée à l'étape précédente :

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

Cette chaîne est délimitée par des deux-points et comporte plusieurs champs :

  1. Nom d'utilisateur : Administrator

    • C'est le nom du compte utilisateur.
  2. Identifiant relatif (RID) : 500

    • C'est un identifiant unique pour le compte au sein du domaine. Le RID 500 correspond toujours au compte administrateur par défaut.
  3. Hachage LM : aad3b435b51404eeaad3b435b51404ee

    • C'est le hachage pour l'ancien protocole d'authentification LAN Manager. Sur les systèmes Windows modernes, il s'agit souvent d'un hachage vide ou "nul", comme on le voit ici. Cette valeur spécifique indique qu'aucun hachage LM n'est stocké.
  4. Hachage NTLM : 31d6cfe0d16ae931b73c59d7e0c089c0

    • C'est le hachage NT LAN Manager, utilisé par toutes les versions modernes de Windows. C'est le hachage que vous utiliseriez dans un outil de cassage de mots de passe hors ligne comme John the Ripper ou Hashcat.
  5. Commentaire et répertoire personnel : :::

    • Ces trois derniers champs sont généralement vides et ne sont pas utilisés pour le cassage.

En observant cette sortie, vous pouvez identifier les comptes utilisateurs actifs et, surtout, leurs hachages NTLM, qui représentent leurs mots de passe dans un format non réversible.

Sauvegarder les hachages dans un fichier pour le cassage hors ligne

Dans cette dernière étape, vous allez sauvegarder les hachages collectés dans un fichier texte. Il est de pratique courante de sauvegarder les preuves et le butin d'un système compromis pour une analyse et une utilisation ultérieures. Stocker les hachages dans un fichier permet de les intégrer facilement dans un logiciel de cassage de mots de passe.

Tout d'abord, vous devez quitter l'environnement simulé msfconsole pour revenir à votre shell Linux habituel. Tapez exit à l'invite meterpreter > pour revenir à l'invite msf6 >, puis tapez à nouveau exit.

exit

Vous devriez maintenant être de retour à l'invite meterpreter >. Tapez à nouveau exit pour quitter la simulation.

exit

Vous devriez maintenant être de retour dans votre répertoire ~/project/metasploit-simulation.

Ensuite, créez un nouveau fichier nommé hashes.txt en utilisant l'éditeur de texte nano.

nano hashes.txt

Maintenant, copiez la sortie des hachages de votre terminal (la sortie de la commande hashdump à l'étape 3) et collez-la dans l'éditeur nano. Le contenu devrait ressembler à ceci :

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
labex-user:1001:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::

Appuyez sur Ctrl+X pour quitter nano, puis sur Y pour confirmer que vous souhaitez enregistrer les modifications, et enfin sur Entrée pour confirmer le nom du fichier.

Pour vérifier que le fichier a été correctement sauvegardé, vous pouvez afficher son contenu avec la commande cat.

cat hashes.txt

Vous avez réussi à sauvegarder les hachages de mots de passe dans un fichier, prêts pour le cassage hors ligne.

Résumé

Dans ce laboratoire, vous avez réussi à effectuer une technique classique de post-exploitation en utilisant une session Meterpreter simulée.

Vous avez appris à :

  • Naviguer et interagir avec les sessions dans la console Metasploit Framework.
  • Charger des extensions Meterpreter comme priv pour obtenir des fonctionnalités supplémentaires.
  • Exécuter la commande hashdump pour extraire les hachages de mots de passe NTLM d'une cible Windows.
  • Comprendre le format des hachages extraits, en identifiant le nom d'utilisateur, le RID et le hachage NTLM.
  • Sauvegarder les hachages collectés dans un fichier pour une utilisation hors ligne avec des outils de cassage de mots de passe.

Cette compétence est un élément fondamental des tests d'intrusion, car elle fournit souvent les clés nécessaires pour étendre l'accès à travers un réseau.