
POC tool for ResetNightmare (CVE-2026-27912)
Herramienta de prueba de concepto (POC) para ResetNightmare (CVE-2026-27912).
ResetNightmare es una falla de validación en el protocolo Kerberos de cambio de contraseña que permite restablecer la contraseña de cualquier cuenta de usuario/equipo objetivo, sin conocer la actual.
El ataque requiere un controlador de dominio sin parchear y la capacidad de escribir un userPrincipalName (UPN) en cualquier cuenta que usted controle.
Alternativamente, la vulnerabilidad también puede ser explotada por un atacante que tenga la capacidad de crear nuevos usuarios/equipos en cualquier OU, ya que crear un usuario/equipo le permite obtener permisos GenericWrite sobre él.
Este script automatiza todo el flujo del ataque y limpia después de sí mismo. El flujo del ataque es el siguiente:
-CreateNewPath.sAMAccountName del objetivo, por ejemplo "Administrator".NT-ENTERPRISE. Este TGT se solicitará al SPN kadmin/changepw.Tanto las cuentas de usuario como las de equipo pueden ser objetivo.

-RubeusPath.-CreateNewPath).-DC.Haga dot-source del script para cargar la función y luego llámela:
. .\ResetNightmare.ps1
Invoke-ResetNightmare `
-TargetAccount "victim" `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "controlledUser" `
-UPNUserPassword "ControlledP@ss!"
Use el sAMAccountName (que termina con $) para -TargetAccount:
Invoke-ResetNightmare `
-TargetAccount 'server$' `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "controlledUser" `
-UPNUserPassword "ControlledP@ss!"
Si tiene permiso para crear objetos en una OU/Contenedor, puede especificar el DN de la OU/Contenedor usando -CreateNewPath. Cuando se especifica, -UPNUser y -UPNUserPassword se tratan como las credenciales de la cuenta a crear, en lugar de una cuenta existente en el dominio:
Invoke-ResetNightmare `
-TargetAccount "victim" `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "attackerAcct" `
-UPNUserPassword "AttackerP@ss!" `
-CreateNewPath "OU=Temp,DC=demo,DC=lab"
Agregue -Computer para crear/usar una cuenta de equipo en lugar de una cuenta de usuario.
DESCARGO DE RESPONSABILIDAD
Este contenido se proporciona únicamente con fines educativos e informativos. Está destinado a promover la concienciación y la remediación responsable de vulnerabilidades de seguridad que puedan existir en sistemas que usted posee o está autorizado a probar. El uso no autorizado de esta información con fines maliciosos, explotación o acceso ilegal está estrictamente prohibido. Los autores no respaldan ni condonan ninguna actividad ilegal y rechazan cualquier responsabilidad derivada del mal uso del material. Además, los autores no garantizan la exactitud o integridad del contenido y no asumen ninguna responsabilidad por daños resultantes de su uso.
| Parámetro | Requerido | Descripción |
|---|
-TargetAccount | Sí | El sAMAccountName de la cuenta objetivo para el restablecimiento de contraseña. Asegúrese de incluir el $ final si apunta a una cuenta de equipo. |
-TargetNewPassword | Sí | La nueva contraseña a establecer para la cuenta objetivo. |
-UPNUser | Sí | La cuenta a la que usted puede escribirle un UPN, o la cuenta a crear si se especifica -CreateNewPath. |
-UPNUserPassword | Sí | Contraseña en texto claro para -UPNUser. |
-Computer | No | Trata a -UPNUser como una cuenta de equipo (y crea una cuenta de equipo cuando se combina con -CreateNewPath). |
-RubeusPath | No | La ruta al ejecutable de Rubeus. El valor predeterminado es ".\Rubeus.exe". |
-SupportedEncryption | No | El tipo de cifrado soportado para el TGT. El valor predeterminado es "AES256" y debería funcionar en la mayoría de los casos. Si es necesario cambiarlo, los valores soportados son: DES|RC4|AES128|AES256 |
-CreateNewPath | No | DistinguishedName de una OU/Contenedor donde tenga permisos para crear objetos. Si se especifica, los parámetros -UPNUser y -UPNUserPassword serán las credenciales del usuario a crear, en lugar de usar un usuario existente. |
-DC | No | Nombre del DC contra el que operar. Se resuelve automáticamente si no se especifica. |