Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ResetNightmare — POC tool for ResetNightmare (CVE-2026-27912) | Kitploit
工具/GitHubGitHub/semperis-community/resetnightmare
Authentication & AuthorizationPrivilege EscalationPassword AttacksExploitationPenetration TestingRed Teaming
GitHubsemperis-community/resetnightmare

ResetNightmare

POC tool for ResetNightmare (CVE-2026-27912)

查看仓库
1903117天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ResetNightmare

用于 ResetNightmare (CVE-2026-27912) 的概念验证(POC)工具。

ResetNightmare 是 Kerberos 更改密码协议中的一个验证缺陷,允许在不知道当前密码的情况下重置任何目标用户/计算机帐户的密码。 该攻击需要一个未打补丁的域控制器,并且能够在你控制的任何帐户上写入 userPrincipalName (UPN)。 或者,拥有在任何 OU 中创建新用户/计算机权限的攻击者也可以利用此漏洞,因为创建用户/计算机后,攻击者将获得对其的 GenericWrite 权限。

攻击流程

此脚本自动化整个攻击流程,并在执行后自行清理。 攻击流程如下:

  1. 攻击者拥有一个可以写入 UPN 的用户或计算机。这可以是已有的,也可以使用 -CreateNewPath 创建。
  2. 攻击者将所控制帐户的 UPN 设置为目标的 sAMAccountName,例如 "Administrator"。
  3. 攻击者随后可以请求 "Administrator" 用户名的 TGT,名称类型为 NT-ENTERPRISE。该 TGT 将请求到 kadmin/changepw SPN。
  4. 攻击者清除自己的 UPN,只留下目标的 UPN 解析到自身。
  5. 攻击者随后使用所持有的 TGT 为 "Administrator" 用户重置密码,而无需知道之前的密码值。
  6. 如果攻击成功,目标的密码已被更改,攻击者现在可以使用新凭证进行身份验证。

用户和计算机帐户都可以作为目标。

image

要求

  • 带有 PowerShell 的 Windows。
  • ActiveDirectory PowerShell 模块。
  • 脚本使用 Rubeus.exe,已在针对 .NET Framework 4.6.2 编译的 Rubeus 上进行测试。 将其放在当前目录中,或使用 -RubeusPath 指向它。
  • 以下任一条件:
    • 一个你拥有且可以写入 UPN 的域帐户。
    • 在 OU/容器中创建帐户的权限(使用 -CreateNewPath 指定)。
  • 一个未打补丁的目标域控制器。可以使用 -DC 指定。

用法

点源(dot-source)该脚本以加载函数,然后调用它:

root@kitploit:~
. .\ResetNightmare.ps1

Invoke-ResetNightmare `
    -TargetAccount "victim" `
    -TargetNewPassword "NewP@ssw0rd!" `
    -UPNUser "controlledUser" `
    -UPNUserPassword "ControlledP@ss!"

以计算机帐户为目标

对 -TargetAccount 使用 sAMAccountName(以 $ 结尾):

root@kitploit:~
Invoke-ResetNightmare `
    -TargetAccount 'server$' `
    -TargetNewPassword "NewP@ssw0rd!" `
    -UPNUser "controlledUser" `
    -UPNUserPassword "ControlledP@ss!"

创建新的受控帐户

如果你有权限在 OU/容器中创建对象,可以使用 -CreateNewPath 指定 OU/容器的 DN。指定后,-UPNUser 和 -UPNUserPassword 将被视为要创建的帐户的凭证,而不是域中已有的帐户:

root@kitploit:~
Invoke-ResetNightmare `
    -TargetAccount "victim" `
    -TargetNewPassword "NewP@ssw0rd!" `
    -UPNUser "attackerAcct" `
    -UPNUserPassword "AttackerP@ss!" `
    -CreateNewPath "OU=Temp,DC=demo,DC=lab"

添加 -Computer 以创建/使用计算机帐户而不是用户帐户。

参数

免责声明
此内容仅用于教育和信息目的。它旨在促进对您拥有或有权测试的系统上可能存在的安全漏洞的认识和负责任地修复。严禁将本信息用于恶意目的、利用或非法访问。作者不认可或纵容任何非法活动,并且不对因滥用本材料而产生的任何责任负责。此外,作者不保证内容的准确性或完整性,并且不对因使用本内容而导致的任何损害承担责任。

下载工具
参数必需描述
-TargetAccount是要重置密码的目标帐户的 sAMAccountName。如果目标是计算机帐户,请确保包含尾随的 $。
-TargetNewPassword是要为目标帐户设置的新密码。
-UPNUser是你可以写入 UPN 的帐户,或者如果指定了 -CreateNewPath,则为要创建的帐户。
-UPNUserPassword是-UPNUser 的明文密码。
-Computer否将 -UPNUser 视为计算机帐户(在与 -CreateNewPath 结合使用时,创建计算机帐户)。
-RubeusPath否Rubeus 可执行文件的路径。默认为 ".\Rubeus.exe"。
-SupportedEncryption否TGT 支持的加密类型。默认值为 "AES256",在大多数情况下应可使用。如需更改,支持的值有:
DES|RC4|AES128|AES256
-CreateNewPath否你拥有创建对象权限的 OU/容器的 DistinguishedName。如果指定,-UPNUser 和 -UPNUserPassword 参数将是所创建用户的凭证,而不是使用现有用户。
-DC否要操作的 DC 名称。如果未指定,将自动解析。