Manipulation des mots de passe utilisateur avec Mimikatz
Sep 28, 2022
En utilisant les commandes ChangeNTLM et SetNTLM dans Mimikatz, les attaquants peuvent manipuler les mots de passe des utilisateurs et élever leurs privilèges dans Active Directory. Examinons ces commandes et leur fonction.
Contenu connexe sélectionné :
ChangeNTLM
La commande ChangeNTLM effectue un changement de mot de passe. Pour utiliser cette commande, vous devez connaître soit le mot de passe actuel du compte, soit son hash de mot de passe NTLM, qui peut être beaucoup plus facile à voler que les mots de passe en 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 n'importe quel utilisateur sans privilèges spéciaux.
Voici un exemple d'utilisation de la commande pour changer le mot de passe d'un utilisateur en connaissant seulement le hachage du mot de passe actuel :
Cela produira l'ID d'événement 4723 dans le journal des événements du contrôleur de domaine.
SetNTLM
Cette commande effectue une réinitialisation de mot de passe. Son exécution ne nécessite pas de connaître le mot de passe actuel de l'utilisateur, mais elle requiert que vous disposiez du droit de Réinitialisation du mot de passe sur le 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 :
Cela produira l'ID d'événement 4724 dans le journal des événements du contrôleur de domaine.
Scénario d'attaque : ChangeNTLM
Compromising a user’s password hash enables an adversary to perform pass-the-hash attacks. However, those attacks are typically limited to command-line access to systems and applications. To log into Outlook Web Access (OWA), SharePoint or a remote desktop session, the adversary may need the user’s cleartext password. They can perform the attack and cover their tracks in four quick steps:
- Compromettre le hachage NTLM d'un compte.
- Changez le mot de passe en utilisant le hachage.
- Utilisez le nouveau mot de passe en clair pour accéder aux applications ou services souhaités.
- Rétablissez le mot de passe à sa valeur précédente en utilisant le hash volé.
Cette attaque est très utile pour exploiter davantage les comptes compromis.
Scénario d'attaque : SetNTLM
Dans ce scénario, un attaquant a compromis un compte avec un accès limité au domaine et . Exploiter cette voie d'attaque implique de réinitialiser les mots de passe des utilisateurs pour prendre le contrôle de leurs comptes, mais l'attaquant ne veut pas alerter les utilisateurs du fait que leur compte a été compromis en changeant leur mot de passe. Comment l'attaquant peut-il réinitialiser les mots de passe des utilisateurs puis les remettre à leurs anciennes valeurs une fois la cible compromise ? Entrez SetNTLM.
L'attaquant peut suivre ce chemin de base :
- Utilisez Bloodhound pour identifier un chemin d'attaque qui exploite les permissions Active Directory et la réinitialisation des mots de passe.
- Exploitez le chemin d'attaque, en réinitialisant les mots de passe selon les besoins.
- Une fois l'accès privilégié obtenu, utilisez Mimikatz pour extraire l'historique des mots de passe NTLM de tous les comptes compromis.
- Utilisez SetNTLM pour appliquer les hachages NTLM précédents aux comptes, en rétablissant les mots de passe tels qu'ils étaient.
Note: La même opération peut être réalisée en utilisant la commande Set-SamAccountPasswordHash.
Exemple
Supposons que nous ayons le chemin d'attaque suivant qui nous permettra de passer de notre utilisateur actuel à Domain Admin en trois réinitialisations de mot de passe :
Maintenant que nous savons quels comptes doivent être compromis, nous voulons exécuter l'attaque le plus rapidement possible pour ne pas alarmer les utilisateurs. Nous pouvons écrire un script pour la réinitialisation du mot de passe en utilisant du PowerShell de base. Le script suivant prendra un mot de passe et suivra la chaîne d'attaque, en se faisant passer pour chaque utilisateur compromis en cours de route jusqu'à atteindre l'objectif de l'Administrateur du Domaine :
Ensuite, nous lancerons une nouvelle session PowerShell en tant qu'Admin du Domaine et effectuerons une opération de DCSync pour obtenir l'historique des mots de passe NTLM de tous les comptes :
À partir de là, nous rétablirons les mots de passe à leurs valeurs antérieures en utilisant la commande SetNTLM :
Et voilà. Nous sommes maintenant devenus un Domain Admin et nous avons couvert nos traces du mieux que nous pouvons pour éviter que les utilisateurs se rendent compte que leurs comptes ont été compromis en cours de route.
Détection et prévention des attaques SetNTLM et ChangeNTLM
Détection des attaques
Si un attaquant utilise l'attaque ChangeNTLM, cela générera un événement 4723, mais le compte sujet et le compte cible seront différents, comme indiqué ci-dessous. Cela se démarquera des changements de mot de passe normaux que les utilisateurs effectuent eux-mêmes, où les deux valeurs seront identiques. Si les administrateurs doivent réinitialiser des mots de passe, ils effectueront une réinitialisation et généreront un événement 4724.
Prévenir les attaques
Pour atténuer le risque d'exécution d'attaques SetNTLM, contrôlez les droits de réinitialisation de mot de passe dans l'annuaire. Pour atténuer le risque d'attaques ChangeNTLM, contrôlez comment et où les hachages d'utilisateur sont stockés.
Comment Netwrix peut aider
La solution Netwrix Active Directory Security Solution vous aide à sécuriser votre Active Directory de bout en bout — en mettant en évidence les lacunes de sécurité dans vos paramètres AD actuels jusqu'à la détection d'attaques sophistiquées en temps réel et la réponse instantanée aux menaces. Elle vous aide à garantir que toutes les identités, les données sensibles auxquelles elles donnent accès et l'infrastructure AD sous-jacente sont propres, comprises, correctement configurées, étroitement surveillées et strictement contrôlées — rendant votre vie plus facile et l'organisation plus sécurisée.
Partager sur
En savoir plus
À propos de l'auteur
Jeff Warren
Directeur des produits
Jeff Warren supervise le portefeuille de produits Netwrix, apportant plus d'une décennie d'expérience dans la gestion et le développement de produits axés sur la sécurité. Avant de rejoindre Netwrix, Jeff dirigeait l'organisation des produits chez Stealthbits Technologies, où il a utilisé son expérience en tant qu'ingénieur logiciel pour développer des solutions de sécurité innovantes à l'échelle de l'entreprise. Avec une approche pratique et un don pour résoudre des défis de sécurité complexes, Jeff se concentre sur la création de solutions pratiques qui fonctionnent. Il est titulaire d'un BS en Systèmes d'Information de l'Université du Delaware.
En savoir plus sur ce sujet
Exemple d'analyse des risques : Comment évaluer les risques
Le Triangle CIA et son application dans le monde réel
Créez des utilisateurs AD en masse et envoyez leurs identifiants par e-mail à l'aide de PowerShell
Comment créer, modifier et tester des mots de passe en utilisant PowerShell
Comment ajouter et supprimer des groupes AD et des objets dans des groupes avec PowerShell