Mimikatz est un utilitaire Windows open source disponible en téléchargement sur GitHub. Développé pour la première fois en 2007 pour démontrer une exploitation pratique du service LSASS (Local Security Authority Subsystem Service) de Microsoft Windows, Mimikatz est capable de vider les informations de connexion des comptes, y compris les mots de passe en texte clair stockés dans la mémoire du système.
mimikatz — français pour chat mignon — est un outil de post-exploitation destiné à aider les attaquants — qu’il s’agisse de black hat hackers, de red team hackers ou de penetration testers — à extraire les identifiants de connexion, les mots de passe et les jetons d’authentification des systèmes piratés afin d’élever les privilèges et d’obtenir un meilleur accès aux systèmes d’un réseau violé.
Ce tutoriel Mimikatz fournit une introduction à l’outil de piratage de créance, ce que fait Mimikatz et comment utiliser Mimikatz pour extraire les mots de passe de connexion d’un système cible.
Les pirates utilisent Mimikatz pour étendre leur présence sur les réseaux victimes en extrayant et en utilisant des clés qui peuvent avoir été réutilisées sur d’autres systèmes ou en extrayant des clés de comptes avec des privilèges élevés, tels que ceux utilisés par les administrateurs.
Benjamin Delpy, le chercheur français en sécurité informatique qui a créé Mimikatz, a écrit sur la page GitHub de Mimikatz que le logiciel peut être utilisé pour « extraire de la mémoire des mots de passe en texte clair, des hashs, des codes PIN et des tickets Kerberos », ou pour « effectuer des pass-the-hashs, des pass-the-ticks ou construire des tickets Golden ». Les attaques de Mimikatz exploitent les schémas d’authentification standard de Windows, ainsi que l’authentification Kerberos.
Ces capacités font de Mimikatz un outil indispensable pour les attaquants : Le cadre Mitre ATT&CK identifie au moins 20 groupes différents de menaces persistantes avancées qui ont été détectés à l’aide de Mimikatz. Cependant, Mimikatz est également un outil clé pour les défenseurs, en particulier ceux qui font des tests de pénétration ou qui effectuent des exercices d’équipe rouge pour démontrer à quel point — ou à quel point — une organisation est capable de se défendre contre de telles attaques.
L’obtenir : Comment télécharger Mimikatz et le faire fonctionner
Le meilleur endroit pour obtenir Mimikatz est la page du projet Mimikatz GitHub, où vous pouvez télécharger le code source de Mimikatz. Des binaires précompilés pour Windows sont également disponibles sur la page GitHub de Mimikatz.
Si vous choisissez de télécharger le code source de Mimikatz, vous devrez compiler le code avec Microsoft Visual Studio. Le téléchargement de toute version de Mimikatz, que ce soit le code source ou les binaires précompilés, peut être un défi, car les navigateurs et les systèmes d’exploitation modernes classent Mimikatz comme dangereux et bloquent les utilisateurs pour qu’ils ne le téléchargent pas. De nombreux produits de sécurité des points d’extrémité — y compris le propre Windows Defender de Microsoft — bloquent Mimikatz parce que le logiciel est souvent utilisé dans les attaques.
Une façon d’éviter d’être bloqué par les antimalwares est d’utiliser le module PowerShell Invoke-Mimikatz, qui permet à un attaquant exécutant PowerShell, le cadre d’automatisation des tâches de Microsoft, de charger et d’exécuter Mimikatz à distance sans avoir besoin d’écrire l’exécutable sur le disque du système ciblé.
À quoi sert Mimikatz ?
Mimikatz peut faire beaucoup de choses, et sa structure modulaire signifie que de nouvelles caractéristiques et fonctions peuvent être ajoutées à la plate-forme avec une relative facilité. Comme nous l’avons noté, l’exécution de Mimikatz en tant que module PowerShell en fait une technique d’attaque encore plus efficace.
Les principales fonctions que permet Mimikatz comprennent :
- L’extraction de mots de passe de la mémoire. Lorsqu’il est exécuté avec des privilèges d’administrateur ou de système, les attaquants peuvent utiliser Mimikatz pour extraire des jetons d’authentification en texte clair — mots de passe et PIN, par exemple — du processus LSASS s’exécutant dans la mémoire du système.
- Extraction de tickets Kerberos. En utilisant un module Kerberos, Mimikatz peut accéder à l’API Kerberos, permettant un certain nombre d’exploits Kerberos différents qui utilisent les tickets Kerberos qui ont été extraits de la mémoire système.
- Extraction de certificats et de leurs clés privées. Un module Windows CryptoAPI permet à Mimikatz d’extraire les certificats — et les clés privées qui leur sont associées — qui sont stockés sur le système de la victime.
Mimikatz devient encore plus puissant lorsqu’il est combiné avec d’autres plateformes d’attaque telles que l’utilitaire Microsoft PowerShell, la plateforme Metasploit ou d’autres outils qui permettent aux pirates d’exploiter les informations d’identification que Mimikatz extrait des systèmes de la victime.
Tutoriel pratique : Configuration et commandes de Mimikatz
Qu’il s’agisse d’exécuter Mimikatz à partir d’un exécutable s’exécutant sur un système victime ou d’exécuter un utilitaire comme PowerShell à distance, les commandes peuvent être exécutées manuellement avec une ligne de commande de console ou en exécutant un script à exécuter automatiquement.
Le format par défaut pour émettre des commandes est de saisir le module de la commande suivi de deux deux-points et du nom de la commande. Vous pouvez entrer plus d’une commande à la fois, mais toutes les commandes qui incluent des espaces doivent être mises entre guillemets.
La session de commande commence comme ceci après l’exécution de Mimikatz:
mimikatz #
Pour quitter Mimikatz, entrez la commande exit.
Le processus d’extraction des mots de passe en texte clair commence par l’invocation de la commande debug du module de privilège. Cette commande élève les permissions de Mimikatz pour obtenir le niveau de privilège de débogage, et cela ressemble à ceci:
mimikatz # privilege::debug
Privilège ’20’ OK
Pour enregistrer un journal des interactions et des résultats de Mimikatz, entrez:
mimikatz # log
Utilisation de ‘mimikatz.log’ pour le fichier journal : OK
Le fichier journal par défaut est mimikatz.log, mais vous pouvez spécifier un autre nom de fichier journal avec une commande. Par exemple :
mimikatz # log customlogfilename.log
Une fois la journalisation activée, le reste de la session sera enregistré à des fins d’exfiltration ou d’analyse.
Peut-être que la commande la plus simple et la plus productive est celle qui extrait les mots de passe en texte clair, les liste sur l’écran de la console et les écrit dans le fichier journal.
mimikatz # sekurlsa::logonpasswords
La commande logonpasswords extrait un ID utilisateur et un mot de passe pour les utilisateurs actuellement connectés et récemment connectés du système cible.
Le module sekurlsa comprend d’autres commandes pour extraire les informations d’identification Kerberos et les clés de chiffrement, et il peut même effectuer une attaque pass-the-hash en utilisant les informations d’identification extraites par Mimikatz.
Ce tutoriel Mimikatz est conçu comme une introduction à l’outil de piratage. Il vaut la peine de savoir comment Mimikatz fonctionne dans la pratique et à quel point il facilite les exploits de systèmes, même pour les attaquants non sophistiqués.