logo

Manipulation de mots de passe d’utilisateurs avec Mimikatz

En utilisant les commandes ChangeNTLM et SetNTLM dans Mimikatz, les attaquants peuvent manipuler les mots de passe d’utilisateurs et élever leurs privilèges dans l’Active Directory. Découvrons ces commandes et leur fonctionnement.

Sélection de contenu connexe :

ChangeNTLM

La commande ChangeNTLM opère une modification de mot de passe. Pour utiliser cette commande, vous devez connaître le mot de passe actuel du compte ou son hachage de mot de passe NTLM, qui peut être beaucoup plus facile à voler que les mots de passe en texte clair. Par défaut, la capacité de changer le mot de passe d’un utilisateur est accordée à Tout le monde, donc cette commande peut être exécutée par tout utilisateur sans aucun privilège particulier.

Voici un exemple d’utilisation de la commande pour changer le mot de passe d’un utilisateur ne connaissant que le hachage du mot de passe actuel :

Cette opération produira l’événement ID 4723 dans le regsitre des événements du contrôleur de domaine.

SetNTLM

La commande SetNTLM réalise une réinitialisation de mot de passe. Pour l’exécuter, vous n’avez pas besoin de connaître le mot de passe actuel de l’utilisateur, mais vous devez disposer du droit de réinitialisation du mot de passe pour ce compte, qui n’est pas accordé à Tout le monde par défaut.

Voici un exemple d’utilisation de la commande pour réinitialiser le mot de passe d’un utilisateur :

Cette opération produira l’événement ID 4724 dans le registre des événements du contrôleur de domaine.

Scénario d’attaque : ChangeNTLM

Compromettre le hachage du mot de passe d’un utilisateur permet à un adversaire de mener des attaques pass-the-hash. Toutefois, ces attaques se limitent généralement à un accès à la ligne de commande des systèmes et des applications. Pour s’introduire dans Outlook Web Access (OWA), SharePoint ou une session de travail à distance, l’attaquant peut avoir besoin du mot de passe de l’utilisateur en texte clair. L’adversaire peut réaliser l’attaque et couvrir ses traces en quatre étapes très simples :

  1. Compromettre le hachage NTLM d’un compte.
  2. Modifier le mot de passe en utilisant ce hachage.
  3. Utiliser le mot de passe en texte clair pour accéder aux applications ou services désirés.
  4. Rétablir la valeur précédente du mot de passe en se servant du hachage volé.

Cette attaque est très utile pour exploiter davantage les comptes compromis.

Scénario d’attaque : SetNTLM

Dans ce cas de figure, un attaquant a compromis un compte avec un accès limité au domaine. L’exploitation de ce chemin d’attaque implique la réinitialisation des mots de passe de l’utilisateur pour prendre le contrôle de son compte, mais l’attaquant ne veut pas attirer l’attention des utilisateurs sur le fait que leur compte a été compromis par la modification de leur mot de passe. Comment l’attaquant peut-il réinitialiser les mots de passe des utilisateurs puis rétablir leurs anciennes valeurs une fois la cible compromise ? En utilisant SetNTLM.

L’attaquant peut suivre ce procédé simple :

  1. Utiliser Bloodhound pour identifier un chemin d’attaque qui exploite les autorisations de l’Active Directory et les réinitialisations de mots de passe.
  2. Exploiter ce chemin d’attaque, en réinitialisant les mots de passe selon les besoins.
  3. Une fois l’accès privilégié obtenu, utiliser Mimikatz pour extraire l’historique des mots de passe NTLM pour tous les comptes compromis.
  4. Utiliser SetNTLM pour appliquer les hachages NTLM précédents aux comptes, en rétablissant la valeur antérieure des mots de passe.

Note : il est possible de procéder de même en utilisant la commande DSInternals Set-SamAccountPasswordHash.

Exemple

Supposons que nous disposions du chemin d’attaque suivant, qui nous fera passer de notre utilisateur actuel à administrateur de domaine en trois réinitialisations de mot de passe :

Maintenant que nous savons quels comptes doivent être compromis, il nous faut exécuter l’attaque aussi rapidement que possible pour ne pas alarmer les utilisateurs. Nous pouvons créer un script pour le chemin d’attaque de la réinitialisation du mot de passe en utilisant quelques éléments de base de PowerShell. Le script suivant part d’un mot de passe et suit la chaîne d’attaque, se faisant passer pour chaque utilisateur compromis jusqu’à atteindre l’objectif de l’administrateur de domaine :

Ensuite, nous lançons une nouvelle session PowerShell en tant qu’administrateur de domaine et effectuons une opération DCSync pour obtenir l’historique des mots de passe NTLM pour tous les comptes :

De là, nous rétablissons la valeur des mots de passe à l’aide de la commande SetNTLM :

Et voilà ! Nous sommes maintenant devenus administrateur de domaine et avons couvert nos traces du mieux que nous pouvions pour éviter que les utilisateurs ne se rendent compte que leurs comptes avaient été compromis en cours de route.

Détecter et prévenir les attaques SetNTLM et ChangeNTLM

Détecter les attaques

Lorsqu’un adversaire utilise l’attaque ChangeNTLM, il génère un événement 4723, mais le sujet et le compte cible sont différents, comme illustré ci-dessous. Cela diffère donc des modifications de mot de passe normales effectuées par les utilisateurs eux-mêmes, où les deux valeurs sont identiques. Dans le cas où les administrateurs procèdent à la réinitialisation des mots de passe, ils effectuent une réinitialisation et génèrent un événement 4724.

Prévenir les attaques

Pour réduire le risque d’attaques SetNTLM, contrôlez les droits de réinitialisation des mots de passe dans le répertoire. Pour réduire le risque d’attaques ChangeNTLM, contrôlez où et comment les hachages des utilisateurs sont stockés.

Comment Netwrix peut vous aider

La Solution de Sécurité Active Directory de Netwrix vous permet de sécuriser votre Active Directory de bout en bout – de la mise en évidence des failles de sécurité dans vos paramètres AD actuels à la détection d’attaques sophistiquées en temps réel et à la réponse instantanée aux menaces. Cette solution vous assure que toutes les identités, les données sensibles auxquelles elles donnent accès et l’infrastructure de l’AD sous-jacente sont propres, comprises, correctement configurées, étroitement surveillées et rigoureusement contrôlées – ce qui vous facilite la vie et renforce la sécurité de votre organisation.