文章总结: 本文深入解析CVE-2025-33073漏洞,阐述利用NTLM本地认证反射控制ActiveDirectory的机制。攻击者通过操控DNS记录或中间人攻击配合强制认证,诱使lsass.exe将SYSTEM令牌注入上下文,从而经由SMB模拟执行代码夺取控制权。建议严格限制ADDNS写入权限并开启SMB签名以防御风险。 综合评分: 83 文章分类: 漏洞分析,内网渗透,红队
利用 NTLM 反射控制 Active Directory (CVE-2025-33073)
TtTeam
2026年2月4日 08:58 海南
工作原理
NTLM 本地认证是 NTLM 认证的一种特殊情况,服务器会在 NTLM_CHALLENGE 消息中告知客户端,无需在 NTLM_AUTHENTICATE 消息中计算质询响应。服务器会在质询消息中设置“协商本地调用”,创建一个服务器上下文,将其添加到全局上下文列表中,并将上下文 ID 插入到“保留”字段中。当客户端收到 NTLM_CHALLENGE 消息时,它知道需要进行本地 NTLM 认证。然后,它会将自己的令牌添加到通过“保留”字段中的 ID 传递的服务器上下文中。由于客户端和服务器位于同一台机器上,所有操作都在同一个 lsass.exe 进程中完成。最终,客户端会发送一个几乎为空的 NTLM_AUTHENTICATE 消息,服务器则使用添加到其上下文中的令牌来执行后续操作(在本例中是通过 SMB)。
当客户端(lsass.exe)收到 NTLM_CHALLENGE 消息,表明必须执行本地 NTLM 身份验证时,它会将自身的 SYSTEM 令牌复制到服务器上下文中。当服务器收到 NTLM_AUTHENTICATE 消息时,它会从上下文对象中检索该令牌,并模拟该令牌通过 SMB 执行进一步操作(在本例中,使用远程注册表服务转储 SAM 注册表单元并入侵目标机器)。
攻击者所需的前提条件
利用了LsapCheckMarshalledTargetInfo处理身份验证的方式。这需要两个条件。
我们可以在 Active Directory DNS 区域中注册 DNS 记录(默认情况下,AD 中的所有“已验证用户”都可以这样做!),或者,如果我们与我们试图利用的目标主机位于同一广播域中,我们可以发布一个类似于“localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA”的 DNS 记录,并使该记录指向攻击者控制的主机。
我们可以通过多种强制身份验证技术(例如 PetitPotam、DFSCoerce、Printerbug 等)强制执行机器帐户身份验证。所有已验证的用户,无论权限大小,都可以在 Active Directory 中满足此要求。
在绝大多数环境中,这些前提条件并不难满足。许多组织并未采取措施确保所有“已认证用户”都无法在其 AD DNS 区域中添加任意 DNS 记录。如果这个问题已经得到解决,攻击者就可以利用投毒/中间人攻击 (MiTM) 的手段。这种方法在具有大型广播域(例如 /16——是的,我们经常遇到这种情况)的扁平网络中尤其有效。GitHub上已经有一些代码库为攻击者提供了开箱即用的此类攻击解决方案。
CVE-2025-33073 的经典利用
当目标主机缺少 SMB 签名且存在 CVE-2025-33073 漏洞时,在 ntlmrelayx.py 中,成功的利用过程看起来会像这样:
这使得攻击者能够通过多种技术立即控制受影响的主机,并通过 SMB 执行代码。我们大多数人都知道,在特权会话的上下文中可以通过 SMB 执行代码,这并不令人意外。事实上,SYNACKTIV 博客也明确指出了这一点:
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:TtTeam 《利用 NTLM 反射控制 Active Directory (CVE-2025-33073)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论