本手册概述了针对 CVE-2025-55234(一个严重的 Windows SMB 权限提升漏洞)的检测、遏制和修复策略。
本手册概述了针对 CVE-2025-55234(一个严重的 Windows SMB 权限提升漏洞)的检测、遏制和修复策略。
_作者:Mark Mallia
在当今不断变化的网络风险格局中,从低权限立足点向内部网络上的 SYSTEM 级别访问的跃迁已不再是单纯的理论威胁——这是成熟攻击者的标志性动作。新披露的 Windows NTLM 身份验证漏洞 CVE‑2025‑54918 正是这种危险的例证:远程攻击者可以利用 NTLM 协商过程中的缺陷绕过 Kerberos 验证并获取完全管理权限,且无需触发用户交互。
本文将介绍 CVE‑2025‑54918 的具体利用路径,概述其对各种规模组织的影响,并提供一套经过实战检验的事件响应手册,使用 Azure Sentinel 和 Splunk 在 Azure 和 AWS 云环境中检测、遏制和修复该威胁。
重要的是,这并非孤例。2025 年出现了大量 SMB 相关漏洞,每一个都在蚕食企业网络的信任边界。如果你还没看过,请查阅我之前在《Patch-the-Path: CVE-2025-55234 检测与防御》中深入分析的 CVE‑2025‑55234(一个严重的 Windows SMB 权限提升漏洞)。这些漏洞共同描绘了一幅清晰的图景:攻击者正越来越多地瞄准核心身份验证和文件共享协议,以获取隐蔽且持久的访问权限。
严重性: 8.8(严重) 组件: NTLM 影响: 远程攻击者可在无需用户交互的情况下将低权限网络访问提升至 SYSTEM 级别权限。 攻击向量: 基于网络;适合企业环境中的横向移动。
NTLM(NT LAN Manager)是微软对用于 Windows 域登录的 Kerberos 身份验证协议的具体实现。客户端发起“协商”阶段,向 AD 控制器发送质询-响应数据包,获取票据,然后对目标系统进行身份验证。CVE‑2025‑54918 利用了 NTLM 在会话密钥派生步骤中协商会话密钥时的一个微妙竞态条件。当来自不同客户端的两个身份验证请求同时到达时,恶意请求可以利用重放早期票据来覆盖会话密钥——从而有效地向仅拥有低权限凭据的攻击者授予 SYSTEM 权限。
该漏洞由协商数据包中精心构造的 SPN(服务主体名称)字符串触发。NtLmAuth 内核程序错误地解析了该有问题的值,导致其使用了先前请求中的过期会话密钥,而不是计算一个新的。结果是远程机器将以 SYSTEM 身份在目标上进行身份验证。
| 步骤 | 描述 | 工具 | 关键产物 |
|---|---|---|---|
| 1 | 侦察与发现 – 识别域控制器并收集对 SYSVOL 共享具有读写权限的低权限用户列表(例如“user01”)。 | BloodHound, PowerView | DC01: <IP>, DomainControllerName |
| 2 | 凭据收集 – 使用 Kerberos 重放(通过 Mimikatz)从域控制器提取 user01 的票据。 | Mimikatz, PowerView | 票据‑blob |
| 3 | 精心构造的 NTLM 数据包 – 构建一个包含故意畸形 SPN 的数据包,该 SPN 在协商阶段触发 CVE‑2025‑54918。 | Metasploit(模块:auxiliary/windows/ntlm_bypass) | NTLM_Negotiate |
| 4 | 远程执行 – 通过 SMB(端口 445)将精心构造的数据包发送到目标机器 X,使其在无需用户交互的情况下以 SYSTEM 身份进行身份验证。 | PowerView, Metasploit | TargetIP: 10.1.5.23 |
| 5 | 持久化与横向移动 – 创建计划任务以运行攻击者载荷,并将访问扩展到域内其他节点。 | PowerView, Sysinternals | ScheduledTask: “NTLM‑Bypass” |
在步骤 2 之后,该链完全自动化;攻击者可以从低权限帐户跳转到同一域内任何目标上的 SYSTEM,除初始侦察外无需任何人工干预。
以下是适用于 Azure 和 AWS 环境的即用型手册。它涵盖了检测逻辑(Sentinel 的 KQL 查询;Splunk 的 SPL 查询)、遏制步骤和修复任务。该手册假设你已在所有域控制器上应用了最新的微软补丁 KB 2025‑54918。
数据连接器:
检测规则 1 – “检测到 NTLM 身份验证绕过”
Heartbeat
| where Computer == 'DC01' or Computer startswith '10.1.'
| union (Event
| where EventID in (4624, 4648)
| extend NTLM_Negotiate = tostring(parse_json(AdditionalFields).NTLM_Negotiate))
| summarize count() by Computer, TimeGenerated, NTLM_Negotiate
| where count_ > 1 and TimeGenerated between(datetime(2025-09-15T00:00Z), datetime(2025-09-16T23:59Z))
检测规则 2 – “会话密钥覆盖”
Heartbeat
| union (SysinternalsAuditEvent
| where EventID == 4624)
| summarize count() by Computer, TimeGenerated, AuthenticationPackageName
| where AuthenticationPackageName contains 'NTLM'
| where count_ > 0 and TimeGenerated between(datetime(2025-09-15T00:00Z), datetime(2025-09-16T23:59Z))
手册步骤(Azure Sentinel):
CVE‑2025‑54918。Get-MgUser -Filter "DisplayName eq 'user01'")从 Active Directory 拉取用户信息。Invoke-NTLMBypass.ps1)。Sentinel 手册完全自动化;所有步骤可在检测到后的 15 分钟内触发,从而实现快速响应。
数据连接器:
检测查询 1 – “NTLM 身份验证绕过”
index=wineventlog sourcetype=WinEventLog
AND EventCode IN (4624,4648)
| stats count by Computer, _time, NTLM_Negotiate
| where count>1
检测查询 2 – “SMB 会话密钥覆盖”
index=network_flow sourcetype=smb_packet
AND port=445
| eval ntlm_key = tostring(parse_json(_raw).NTLM_Key)
| stats count by src_ip, dest_ip, _time
| where count>5
告警与手册(Splunk Enterprise Security):
Get-NetEvent 验证嫌疑目标的 SMB 流量。Splunk 手册将配置为在检测到事件后 15 分钟的 SLA 内完成事件关闭。可自动生成报告并通过 Microsoft Teams 发送给 CISO 以供可见性。
CVE‑2025‑54918 是一个鲜明的提醒,即使是像 NTLM 这样的基础协议也可能包含影响深远的漏洞。这个漏洞之所以特别危险,在于其简单性:无需钓鱼,无需社会工程——只需要一个精心构造的数据包和一个竞态条件。对于防御者而言,这关注的焦点从用户行为转移到了基础设施加固和主动检测。
通过结合 Azure Sentinel 和 Splunk,本手册提供了一种实用、云无关的方法,用于在威胁扩散前识别和遏制它。无论你是在保护混合企业还是精简型初创公司,这里的工具和逻辑都旨在具有可操作性、可扩展性和弹性。
另外别忘了——这并非今年第一个 SMB 相关漏洞。如果你还没看过,请重新阅读我对 CVE‑2025‑55234 的分析,该漏洞通过 Windows SMB 暴露了另一个严重的提权路径。这些漏洞共同形成了一个模式:攻击者正在探测企业身份验证中的信任缝隙。我们有责任在这些缝隙变成漏洞之前将其修补。
本项目仅用于道德、教育和防御性网络安全目的。本文描述的所有技术、检测逻辑和利用模拟必须仅在你拥有明确授权的环境中使用。未经同意进行测试、利用或监控系统是严格禁止的,并可能违反法律和职业标准。请始终负责任地行动,尊重隐私,并将这些工具用于保护,而非伤害。