Yoann's Workshop

> blog sécurité

[Intermédiaire] Récupérer un mot de passe Windows avec Mimikatz

Mimikatz est un outil libre et gratuit qui permet d’effectuer plusieurs actions sur les systèmes Windows, comme l’extraction de hashes, l’injection de bibliothèques ou encore le contournement de certaines GPO.

Outre ces actions, Mimikatz va nous permettre d’extraire des mots de passe Windows en clair de manière simple et très rapide (de l’ordre de la minute).

Contexte

Imaginons que notre victime soit un ami qui a la mauvaise habitude de ne jamais verrouiller sa session Windows (disons Windows Seven 64 bits) lorsqu’il va prendre un café.

Pour lui faire une petite farce ludique, nous avons besoin dans un premier temps d’une clé USB (ou une carte SD) sur laquelle nous allons mettre Mimikatz (code disponible ici).

Une fois téléchargé et dézipé sur la clé (j’ai pris pour ma part le fichier binaire .7z), nous attendons que notre victime s’éloigne de son PC… Pendant ce temps, regardons un peu les prérequis pour réussir cette attaque.

Prérequis

Nous avons besoin:

  • D’un accès physique à la machine.
  • D’un port USB (ou un lecteur de cartes) pour monter la clé contenant le code (il est bien évidemment possible de récupérer directement le code sur Internet ou de le récupérer dans un mail mais cela demande plus de temps et nécessite d’effacer ses traces).
  • D’une machine avec un Windows supérieur à Windows 2000.

De plus, il faut savoir:

  • que l’architecture (32 ou 64 bits) n’est pas importante.
  • que le compte Windows de la victime doit disposer de droits de debug. En général, beaucoup d’utilisateurs activent le compte « super admin » qui dispose de tels droits. Ce compte est activable en faisant clic droit sur l’icône « Ordinateur », puis « Gérer »  -> « Outils système » -> « Utilisateurs et groupes » -> « Administrateur » puis décocher l’option « Le compte est désactivé ».

Mise en oeuvre

Une fois notre victime absente, il suffit de brancher la clé USB sur la machine cible et de lancer l’exécutable mimikatz en fonction de l’architecture de la machine (dossier x64 pour une architecture 64 bits, dossier Win32 pour les versions 32 bits (x86)).

Un terminal se lance alors. La première étape consiste à activer le mode debug. Pour cela, il faut lancer la commande « privilege::debug« , comme le montre la figure suivante:

Activation des privilèges de debug

Activation des privilèges de debug

Dans les anciennes versions de Mimikatz, nous devions utiliser la commande « inject::process lsass.exe sekurlsa.dll » pour injecter la DLL sekurLSA (une librairie de manipulation des données du processus lsass qui permet de récupérer les mots de passe en clair) dans le processus Lsass.exe qui gère les mécanismes de sécurité locale et d’authentification des utilisateurs (LSASS pour Local Security Authority Subsystem Service).

Néanmoins, les dernières versions de Mimikatz permettent de récupérer les mots de passe sans injection, en utilisant simplement la commande « sekurlsa::logonPasswords« .
Le résultat de cette commande nous donne des informations sur la session de l’utilisateur (ID, nom de l’utilisateur, nom de la machine, etc.) et son mot de passe (ligne wdigest):

Récupération du mot de passe en clair

Récupération du mot de passe en clair

L’attaquant pourra alors avoir accès directement à la machine de l’utilisateur (de manière physique voir distante) et pourra aussi essayer d’utiliser ce mot de passe pour d’autres services/applications/sites (réseaux sociaux, e-commerce, forums, etc.) car il est bien connu que beaucoup de gens utilisent toujours le même mot de passe.

Conclusion

Comme nous venons de le voir, il est très facile et rapide de récupérer le password d’une session Windows d’un utilisateur négligeant.

Pour éviter ce type de problèmes, il est ainsi conseillé:

  • de verrouiller sa session lorsque l’on n’est pas devant l’écran (il est possible de récupérer et changer les mots de passe avec d’autres utilitaires, mais ces derniers ont la plupart du temps besoin d’un redémarrage ce qui nécessite plus de temps et sera moins furtif car l’utilisateur se rendra compte que sa machine a redémarré)
  • d’éviter d’utiliser le compte « super administrateur » quand la machine est physiquement accessible (un ordinateur portable par exemple) ou que l’utilisateur n’a pas besoin de droits spéciaux (admin).

Ce type d’attaque permet enfin de voir qu’un mot de passe robuste (dans notre cas R0$?bub!!) n’est pas  toujours synonyme de sécurité.

Variante

Dans l’introduction, je parlais de faire une petite blague au collègue victime, sachez qu’il est possible de changer le mot de passe d’un compte « super administrateur » sans utiliser de logiciel tiers et en moins de 10 secondes. Pour cela, il suffit de lancer un terminal (« touche super » + ‘R’ puis de taper « cmd » et de valider avec la touche entrée). Cette commande démarre un terminal dans lequel il suffit de taper la commande suivante:

net user nomSession nouveauPassword

Exemple pour mettre "toto123" en mot de passe de l'utilisateur "Administrateur":
net user Administrateur toto123

Il suffit ensuite de verrouiller la session avec la touche « Super » + ‘L’ et de prendre un malin plaisir à voir la victime s’acharner sur son clavier pour essayer de se logger ;)

Liens

  • Le blog de Mimikatz ici
  • Une explication sur le fonctionnement des authentifications Windows ici
  • Une procédure détaillée pour activer le compte super admin sous Windows 7 ici

Posted under: intermédiaire, tuto

Tagged as: ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.