☰
CVE-2024-49385 BlueHammer:Windows Defender 提权漏洞全景导读(读懂 2024 最重磅 PoC)
2026/10/8 7:20:25 网站建设 项目流程

CVE-2024-49385 BlueHammer:Windows Defender 提权漏洞全景导读(读懂 2024 最重磅 PoC)

【免费下载链接】BlueHammerRepository hosting the bluehammer vulnerability项目地址: https://gitcode.com/gh_mirrors/bl/BlueHammer

BlueHammer(CVE-2024-49385)是针对Windows Defender 提权漏洞的公开 PoC 项目:任何普通用户都无需管理员权限,只需等待一次 Defender 病毒库自动更新,就能把系统最高权限(SYSTEM)抓在手里。本仓库是研究该漏洞最完整的公开代码样本,本文将从零基础视角带你读懂它的完整攻击链。🛡️

一、30 秒了解:BlueHammer 是什么?

关键信息内容
漏洞编号CVE-2024-49385
受影响组件Microsoft Defender Antivirus(MsMpEng.exe 签名更新流程)
攻击效果普通用户 → 本地管理员 → SYSTEM 提权
前置条件无需管理员、无需特殊软件,仅需系统正常联网并接收 Defender 更新
项目性质漏洞 PoC(概念验证)代码仓库

项目 README.md 只留下了一段耐人寻味的 PGP 签名留言,大意是在质疑厂商明知风险却仍然这样设计——这也侧面说明该漏洞源于Windows Defender 更新机制本身的设计缺陷,而非某个偶发 Bug。

⚠️ 提示:本仓库是漏洞研究用途的 PoC,普通用户只需了解其原理用于防御;切勿在真实生产系统上运行利用代码。

二、漏洞核心:为什么"杀毒软件"反而成了提权跳板?

正常情况下,Defender 以SYSTEM 权限运行并负责"保护"系统,而 SAM 文件(存储所有用户密码哈希的数据库,位于C:\Windows\System32\Config\SAM)被系统严格保护,普通用户根本无法读取。

BlueHammer 的巧妙之处在于:它不攻击 Defender,而是"借用" Defender 的手。

🧠 一句话原理:Defender 更新病毒库时,会按外部指定的路径去创建/写入文件。攻击者通过对象管理器符号链接(Object Manager Symbolic Link)把这个路径"偷换"成卷影副本中的 SAM 文件,让 SYSTEM 权限的 Defender 替自己打开并泄露了 SAM——这就是本漏洞的本质:路径遍历 + 符号链接重定向导致的权限提升。

三、完整攻击链:5 个阶段逐步拆解 🧩

以下是 FunnyApp.cpp 中wmain主流程的通俗版还原:

阶段 1:蹲守一次 Defender 病毒库更新

程序通过 Windows Update 组件轮询是否存在 "Microsoft Defender Antivirus + Definition Updates" 类别的更新(见 FunnyApp.cpp 的CheckForWDUpdates)。没有更新?每 30 秒重试一次,直到出现为止。

阶段 2:下载官方真实更新包

找到更新后,程序从微软官方渠道下载真实的病毒库更新程序,从其资源段中解出update.cab并展开(FunnyApp.cpp 的GetUpdateFiles)。使用官方真实文件是为了让后续更新流程在 Defender 眼中"完全正常",不易触发异常检测。

阶段 3:冻结 Defender + 创建卷影副本(VSS)

这是整个 PoC 最有工程含量的部分:

  1. 写入一个测试文件(EICAR 字符串)引诱 Defender 开始活动(FunnyApp.cppTriggerWDForVS);
  2. 注册 Cloud Files 同步根(CfRegisterSyncRoot),当 Defender 访问时触发回调(FunnyApp.cppFreezeVSS);
  3. 用oplock(独占锁)+ 卷影副本快照的组合,把 Defender 短暂"冻住",并锁定一个刚创建的卷影副本——其中的 SAM 文件此时无人占用、可被 SYSTEM 读取。

阶段 4:RPC 调用 + 符号链接偷换路径(漏洞触发点)⭐

这是 CVE-2024-49385 的核心。PoC 调用 Defender 的内部 RPC 接口:

  • 接口 UUID:c503f532-443a-4c69-8300-ccd1fbdb3839,端点IMpService77BDAF73-B396-481F-9042-AD358843EC24
  • 调用函数:ServerMpUpdateEngineSignature(FunnyApp.cppCallWD)
  • 传入参数是一个对象管理器命名空间路径,其中包含攻击者创建的符号链接

Defender 收到请求后,会以 SYSTEM 身份跟随符号链接去"创建新定义更新目录",而攻击者已把链接目标指向卷影副本\Windows\System32\Config\SAM。结果:SYSTEM 进程替攻击者打开了 SAM,且文件句柄被转储出来(FunnyApp.cpp 主利用循环)。

逆向得到的完整接口定义见 windefend.idl,MIDL 自动生成的客户端/服务端存根分别位于 windefend_c.c 和 windefend_s.c。

阶段 5:解密 SAM → 改密码 → 获得 SYSTEM

拿到 SAM 句柄后,PoC 在用户态完成了传统"离线破解"的全部动作(FunnyApp.cpp SAM 处理段):

  1. 从注册表取出 LSABoot Key(GetLSASecretKey);
  2. 用 AES + DES 层层解密,还原每个用户的NTLM 密码哈希;
  3. 通过samlib.dll把任意一个管理员账号的密码临时改为已知值(FunnyApp.cppChangeUserPassword);
  4. 用该账号登录,若为管理员则伪造 SYSTEM 令牌、创建服务,把命令行控制台直接开在攻击者的桌面会话里(FunnyApp.cpp);
  5. 事后还会把密码改回去,做到"无痕"。

四、仓库文件导读:如何系统地读这份 PoC 📚

文件作用阅读建议
FunnyApp.cppPoC 主程序(3313 行),含全部攻击逻辑从wmain(L2864)入手,按注释分区读
windefend.idl逆向出的 Defender 私有 RPC 接口定义了解漏洞接口的原始形态
windefend_c.cMIDL 生成的 RPC 客户端存根重点看NdrClientCall2对应 42 号过程
windefend_s.cMIDL 生成的 RPC 服务端存根对比理解消息如何被 Defender 处理
windefend_h.hRPC 接口头文件找到Proc42_ServerMpUpdateEngineSignature(L1356)
offreg.h离线读取注册表 Hive 的接口(OR 系列 API)理解 SAM/SYSTEM 解密如何在线完成
FunnyApp.sln / FunnyApp.vcxprojVisual Studio 工程文件用 VS 打开可逐函数调试阅读

🔍 阅读路线建议:README.md(背景)→wmain主流程 →CallWD(漏洞触发)→DoSpawnShellAsAllUsers(后利用)→windefend.idl(接口细节)。

五、为什么这个漏洞"最重磅"?🔥

  1. 零门槛:不需要管理员、不需要 UAC 弹窗、不需要其他漏洞做前置——一台正常联网、开着 Defender 的 Windows 电脑就是目标;
  2. 高隐蔽:全部行为"寄生"在官方更新流程中,文件来自微软官方渠道,杀毒软件很难自我检测;
  3. 影响面大:Windows 10/11 上 Defender 默认开启,企业办公终端普遍中招;
  4. 微软已确认修复:该漏洞在随后的 Windows 安全更新中修补。如果你的系统长期未更新,风险极高——这正是"保持系统自动更新"价值的最有力例证。

六、普通用户与运维的防御清单 ✅

  • 立即检查:确认 Windows 更新为最新,尤其安装 Defender 相关安全补丁;
  • 确认状态:在 Windows 安全中心查看病毒与威胁防护的"最新更新"时间;
  • 企业加固:对核心服务器启用 Defender 的Tamper Protection(篡改保护),并限制普通账号访问C:\ProgramData\Microsoft\Windows Defender目录的监听权限;
  • 最小暴露:非必要不关闭 Defender 自动更新——讽刺的是,正是"及时更新"同时带来了防护与修复;
  • 监控审计:关注事件日志中异常的卷影副本创建(VSS 活动)与MsMpEng.exe非预期文件操作。

七、写在最后

BlueHammer 是 2024 年漏洞研究领域的标志性作品之一:它没有复杂的内存破坏,却用最"正统"的 Windows 机制(符号链接、卷影副本、oplock、RPC)完成了一次教科书级的提权。读懂它,你收获的不只是一个 CVE,更是对Windows 权限边界与对象管理器命名空间的深刻理解。🚀

免责声明:本文仅作安全研究与防御参考。利用漏洞攻击他人系统属于违法行为,请务必遵守当地法律法规。

【免费下载链接】BlueHammerRepository hosting the bluehammer vulnerability项目地址: https://gitcode.com/gh_mirrors/bl/BlueHammer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询