
POC tool for ResetNightmare (CVE-2026-27912)
Outil de preuve de concept (POC) pour ResetNightmare (CVE-2026-27912).
ResetNightmare est une faille de validation dans le protocole Kerberos Change Password qui permet de réinitialiser le mot de passe de n'importe quel compte utilisateur/ordinateur cible, sans connaître le mot de passe actuel.
L'attaque nécessite un contrôleur de domaine non corrigé, ainsi que la possibilité d'écrire un userPrincipalName (UPN) sur n'importe quel compte que vous contrôlez.
Alternativement, la vulnérabilité peut également être exploitée par un attaquant ayant la capacité de créer de nouveaux utilisateurs/ordinateurs dans n'importe quelle OU, car créer un utilisateur/ordinateur permet d'obtenir des permissions GenericWrite sur celui-ci.
Ce script automatise l'intégralité du déroulement de l'attaque et nettoie automatiquement après son exécution. Le déroulement de l'attaque est le suivant :
-CreateNewPath.sAMAccountName de la cible, par exemple "Administrator".NT-ENTERPRISE. Ce TGT sera demandé au SPN kadmin/changepw.Les comptes utilisateur et ordinateur peuvent tous deux être ciblés.

-RubeusPath.-CreateNewPath).-DC.Chargez le script en dot-source pour charger la fonction, puis appelez-la :
. .\ResetNightmare.ps1
Invoke-ResetNightmare `
-TargetAccount "victim" `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "controlledUser" `
-UPNUserPassword "ControlledP@ss!"
Utilisez le sAMAccountName (se terminant par $) pour -TargetAccount :
Invoke-ResetNightmare `
-TargetAccount 'server$' `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "controlledUser" `
-UPNUserPassword "ControlledP@ss!"
Si vous avez la permission de créer des objets dans une OU/Conteneur, vous pouvez spécifier le DN de l'OU/Conteneur à l'aide de -CreateNewPath. Lorsqu'il est spécifié, -UPNUser et -UPNUserPassword sont traités comme les informations d'identification du compte à créer, au lieu d'un compte existant dans le domaine :
Invoke-ResetNightmare `
-TargetAccount "victim" `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "attackerAcct" `
-UPNUserPassword "AttackerP@ss!" `
-CreateNewPath "OU=Temp,DC=demo,DC=lab"
Ajoutez -Computer pour créer/utiliser un compte ordinateur au lieu d'un compte utilisateur.
AVERTISSEMENT
Ce contenu est fourni à des fins éducatives et informatives uniquement. Il vise à promouvoir la sensibilisation et la correction responsable des vulnérabilités de sécurité qui peuvent exister sur les systèmes que vous possédez ou que vous êtes autorisé à tester. L'utilisation non autorisée de ces informations à des fins malveillantes, d'exploitation ou d'accès illégal est strictement interdite. Les auteurs n'approuvent ni ne cautionnent aucune activité illégale et déclinent toute responsabilité découlant d'une mauvaise utilisation de ce matériel. De plus, les auteurs ne garantissent pas l'exactitude ou l'exhaustivité du contenu et déclinent toute responsabilité en cas de dommages résultant de son utilisation.
| Parameter | Required | Description |
|---|
-TargetAccount | Oui | Le sAMAccountName du compte à cibler avec la réinitialisation du mot de passe. Assurez-vous d'inclure le $ final si vous ciblez un compte ordinateur. |
-TargetNewPassword | Oui | Le nouveau mot de passe à définir pour le compte cible. |
-UPNUser | Oui | Le compte sur lequel vous pouvez écrire un UPN, ou le compte à créer si -CreateNewPath est spécifié. |
-UPNUserPassword | Oui | Mot de passe en clair pour -UPNUser. |
-Computer | Non | Traite -UPNUser comme un compte ordinateur (et crée un compte ordinateur lorsqu'il est combiné avec -CreateNewPath). |
-RubeusPath | Non | Le chemin vers l'exécutable Rubeus. La valeur par défaut est ".\Rubeus.exe". |
-SupportedEncryption | Non | Le type de chiffrement pris en charge pour le TGT. La valeur par défaut est "AES256" et devrait fonctionner dans la plupart des cas. Si vous devez modifier cette valeur, les valeurs prises en charge sont : DES|RC4|AES128|AES256 |
-CreateNewPath | Non | DistinguishedName (DN) d'une OU/Conteneur où vous avez les permissions de créer des objets. S'il est spécifié, les paramètres -UPNUser et -UPNUserPassword seront les informations d'identification de l'utilisateur à créer, au lieu d'utiliser un utilisateur existant. |
-DC | Non | Nom du DC à utiliser. Il est automatiquement résolu s'il n'est pas spécifié. |