Getty Images
Mimikatz : comment ce logiciel pirate identifiants et mots de passe Windows
Ce logiciel bien connu est capable de dérober identifiants et mots de passe. De quoi détourner des comptes d’utilisateurs et se déplacer dans le système d’information.
Mimikatz est un utilitaire Windows open source disponible au téléchargement sur GitHub. Développé depuis 2007 par le chercheur français Benjamin Delpy, initialement pour faire la démonstration pratique de l’exploitation d’une vulnérabilité du service de sous-système d’autorité de sécurité locale de Windows, ou lsass, Mimikatz est capable d’aller récupérer, en mémoire vive, des informations relatives aux sessions en cours, dont des mots de passe en clair.
Mimikatz [pour chats mignons, oui, N.D.R.] est un outil de post-exploitation utilisé par les attaquants – légitimes, ou pas, dans un test d’intrusion ou un engagement red team – pour étendre leur accès à un environnement dans lequel ils ont pris position.
L’essayer permet à tout le moins de prendre conscience de la manière dont il peut être mis en œuvre par des cyberdélinquants pour accéder à de nouveaux systèmes de l’environnement ou à des niveaux de privilèges plus élevés – en exploitant les mécanismes d’authentification standard de Windows comme Kerberos. Et ce n’est pas un luxe : le framework ATT&CK du Mitre recense au moins 20 groupes avancés différents (APT) utilisant Mimikatz dans le cadre de leurs activités.
Télécharger et essayer Mimikatz
Le meilleur endroit pour obtenir Mimikatz est sa page projet sur GitHub, où son code source est disponible. Des binaires précompilés pour Windows y sont également téléchargeables. Le code source devra être compilé avec Microsoft Visual Studio avant toute chose. Mais le téléchargement de n’importe quelle 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 empêchent les utilisateurs de le télécharger. De nombreux produits de sécurité des postes de travail – y compris le Windows Defender de Microsoft – bloqueront Mimikatz parce que le logiciel est souvent utilisé dans des attaques.
Pour éviter cela, il est possible d’utiliser par exemple le module PowerShell Invoke-Mimikatz : il permet à un attaquant de charger et exécuter Mimikatz à distance via le framework d’administration et d’automatisation de Microsoft, sans avoir besoin d’écrire l’exécutable sur le disque du système visé.
Que sait faire Mimikatz ?
Mimikatz peut faire beaucoup de choses, et sa structure modulaire permet de lui ajouter de nouvelles fonctionnalités avec une relative facilité. Pour l’essentiel, l’outil permet notamment :
- L’extraction de mots de passe de la mémoire. Lorsqu’il est exécuté avec les privilèges administrateur ou système, Mimikatz permet d’extraire des jetons d’authentification en texte clair – mots de passe et code PIN, par exemple – du processus lsass s’exécutant en mémoire vive.
- L’extraction des tickets Kerberos. En utilisant un module Kerberos, Mimikatz peut accéder à l’API correspondante, ce qui permet d’activer un certain nombre d’exploits différents utilisant des tickets Kerberos qui ont été extraits de la mémoire vive.
- L’extraction de certificats et de leurs clés privées. Un module CryptoAPI de Windows 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 victime.
Mimikatz devient encore plus puissant lorsqu’il est combiné avec Microsoft PowerShell, ou des plateformes offensives telles que Metasploit.
Commandes de base
Une fois lancé, Mimikatz peut être contrôlé manuellement, pas à pas, via une interface en lignes de commande, par le truchement d’un script afin d’automatiser le processus.
Par défaut, on commence par indiquer le nom du module à utiliser, suivi de deux doubles points, et du nom de la commande. Il est possible d’indiquer plusieurs commandes à la fois, mais toute commande comprenant des espaces doit être mise entre guillemets.
La session de commande commence ainsi après le lancement de Mimikatz :
mimikatz #
La commande exit permet de quitter Mimikatz.
Le processus d’extraction des mots de passe commence par l’appel de la commande de débogage du module des privilèges. Cette commande élève le niveau de privilèges de Mimikatz, et cela ressemble à ceci :
mimikatz # privilege::debug
Privilege '20' OK
Pour enregistrer un journal des interactions et des résultats obtenus, entrez :
mimikatz # log
Using 'mimikatz.log' for logfile : OK
Le fichier journal par défaut est mimikatz.log, mais il est possible de spécifier un autre nom de fichier avec la même commande. Par exemple :
mimikatz # log nomdufichierdelog.log
Une fois l’enregistrement activé, le reste de la session sera enregistré à des fins d’exfiltration ou d’analyse.
La commande la plus simple et la plus productive est peut-être celle qui extrait les mots de passe en texte clair, les liste sur l’écran de la console et les écrit dans le fichier de journalisation.
mimikatz # sekurlsa::logonpasswords
La commande logonpasswords extrait un ID utilisateur et un mot de passe pour tous les utilisateurs actuellement connectés et récemment connectés du système cible.
Le module sekurlsa inclut d’autres commandes pour extraire les informations d’identification Kerberos et les clés de chiffrement, et il peut même effectuer une attaque en pass-the-hash en utilisant les informations d’identification extraites par Mimikatz.
Cette très courte introduction à Mimikatz permet de mesurer à quel point il peut contribuer à rendre accessibles les déplacements dans un environnement après intrusion initiale, même pour des attaquants peu sophistiqués.