尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
终极解析:BlueHammer 的 VSS 卷影复制技巧——FreezeVSS 如何用 HarddiskVolumeShadowCopy 冻结 Defender
终极解析BlueHammer 的 VSS 卷影复制技巧——FreezeVSS 如何用 HarddiskVolumeShadowCopy 冻结 Defender【免费下载链接】BlueHammerRepository hosting the bluehammer vulnerability项目地址: https://gitcode.com/gh_mirrors/bl/BlueHammerBlueHammer 是一款研究 Windows Defender 防御机制的开源漏洞 PoC 项目。它的核心看点是FreezeVSS函数通过监听HarddiskVolumeShadowCopy卷影复制对象配合云文件同步根与批量 oplock 锁在 Defender 更新签名前将其冻结从而劫持其签名更新流程。本文将用小白也能懂的方式完整拆解这套 VSS 卷影复制技巧的实现思路。一、BlueHammer 是什么30 秒看懂项目背景BlueHammer 仓库见 README.md自述为 Repository hosting the bluehammer vulnerability托管 bluehammer 漏洞的仓库。作者以一种调侃的语气写道Im just really wondering what was the math behind their decision...这说明它针对的是 Windows Defender 签名更新流程中的一个设计缺陷Defender 在应用新引擎签名前会创建卷影副本VSS而这个环节可以被攻击者卡住使 Defender 长时间处于半冻结状态并被迫从攻击者指定的目录加载签名。仓库结构非常精简核心文件一览文件作用FunnyApp.cppPoC 主程序包含全部核心技巧windefend.idl逆向出的 Defender 私有 RPC 接口定义windefend_h.h / windefend_c.c / windefend_s.c由 IDL 生成的 RPC 存根代码offreg.h / offreg.lib离线注册表操作库用于离线攻击场景FunnyApp.sln / FunnyApp.vcxprojVisual Studio 工程文件FunnyApp.rc / resource.h资源脚本与资源定义 下文聚焦主角VSS 卷影复制相关的四段代码全部位于 FunnyApp.cpp 中标注为 Volume shadow copy functions 的区块。二、核心概念VSS 卷影复制与 HarddiskVolumeShadowCopy 速成在深入代码前先补齐两个必备知识点 1️⃣ 什么是 VSS 卷影复制Windows 的 Volume Shadow Copy Service卷影复制服务能在不中断系统运行的前提下为卷上的文件拍一张快照。Defender 更新引擎签名时会先做快照确保更新失败可以回滚。2️⃣ HarddiskVolumeShadowCopy 又是什么每个 VSS 快照在 Windows 内核的设备命名空间中都会注册一个设备对象名字固定形如\Device\HarddiskVolumeShadowCopy0、\Device\HarddiskVolumeShadowCopy1……也就是说只要枚举\Device目录就能实时发现系统里新出现的卷影副本——这正是 BlueHammer 抓住 Defender 更新时机的雷达。三、整体链路从检查更新到冻结 Defender 的 4 步流程BlueHammer 的主流程可以概括为一条流水线CheckForWDUpdates → GetUpdateFiles → TriggerWDForVS → RPC 调用 ServerMpUpdateEngineSignature (发现新签名) (下载解包) (冻结等快照) (骗 Defender 加载假签名)第 1 步检查更新— CheckForWDUpdates() 调用 Windows Update 组件查询是否存在 Microsoft Defender Antivirus 分类的 Definition Updates没有就每 30 秒轮询一次。第 2 步下载解包— GetUpdateFiles() 通过 WinInet 下载 Defender 官方更新包解析 PE 的.rsrc资源段抽出update.cab再用 FDI 库解包成签名文件列表。第 3 步冻结 捕获快照— TriggerWDForVS() 是本文主角内部调度下面两个线程。第 4 步RPC 劫持— 通过逆向出的私有接口windefend.idlUUIDc503f532-443a-4c69-8300-ccd1fbdb3839接口名IMpService77BDAF73调用Proc42_ServerMpUpdateEngineSignature把签名目录指向攻击者构造的路径Defender 便会加载伪造签名。下面逐个拆解 VSS 相关的两大技巧。四、技巧一用 NtQueryDirectoryObject 监听新的 HarddiskVolumeShadowCopy 目标一旦 Defender 为更新创建了新快照立刻拿到它的设备路径。实现位于 ShadowCopyFinderThread()思路分三层1. 快照基线枚举辅助函数 RetrieveCurrentVSSList() 先用NtOpenDirectoryObject打开\Device对象目录再用NtQueryDirectoryObject遍历其中所有对象筛选出TypeName为Device且名字以HarddiskVolumeShadowCopy开头见 第 1093-1098 行的条目形成一份运行前已有快照的基线链表LLShadowVolumeNames。2. 轮询发现新面孔主循环反复枚举\Device目录把当前枚举到的HarddiskVolumeShadowCopy*与基线对比第 1272-1296 行名字在基线里出现过 →continue跳过出现了基线之外的新名字→ 判定为新创建的快照拼出完整路径\Device\HarddiskVolumeShadowCopyN跳出循环。3. 验证快照可用拿到新路径后追加\Windows子路径用NtCreateFile尝试打开第 1323-1336 行如果返回STATUS_NO_SUCH_DEVICE就重试直到能成功打开——这说明快照已完成挂载可以安全使用。为什么用 NT 原生 API 而不是 Win32因为HarddiskVolumeShadowCopy对象位于内核对象命名空间Win32 的卷影 API如IVssCreateSnapshot无法直接枚举谁刚生成了新快照只能靠对象目录轮询这种硬桥硬上的方式。五、技巧二FreezeVSS 如何用云文件同步根冻结 Defender⭐ 这是 BlueHammer 最精妙的部分——FreezeVSS() 线程由 第 1723 行 创建。它的武器不是杀进程而是让 Defender 主动卡死在文件操作上。5.1 布下陷阱注册 Cloud Files 同步根Defender 引擎MsMpEng.exe即 WinDefend 服务进程在扫描和更新时会对临时目录做目录级访问而 Windows 的云文件Cloud Files / CF框架允许任何程序把目录注册为同步根并在有进程访问时收到回调。FreezeVSS做了如下准备以 PoC 自身所在目录为同步根调用CfRegisterSyncRootProviderName填了句大实话LIHATEMICROSOFT第 1473 行创建带FILE_FLAG_DELETE_ON_CLOSE的 GUID 命名锁文件通过CfConnectSyncRoot注册CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS回调第 1533 行。5.2 精准识别只冻结 Defender 进程回调函数 CfCallbackFetchPlaceHolders() 里有一处关键判断先用 GetWDPID() 打开服务控制管理器查出WinDefend服务的进程 ID再与回调上下文里的ProcessInfo-ProcessId比对第 1388 行。是 Defender 在访问→ 打印 Defender flagged.先等一个锁文件就绪事件见下再回复一个占位文件placeholder并故意挂起回调让 Defender 的文件操作阻塞在半路是其他进程→ 回复空占位数组快速放行避免误伤系统。5.3 双锁齐下批量 oplock 完成冻结在回调等待期间FreezeVSS主线程对锁文件发起FSCTL_REQUEST_BATCH_OPLOCK异步请求第 1556 行拿到ERROR_IO_PENDING后才SetEvent(hnotifylockcreated)唤醒回调。此时形成一道双重死锁Defender 的目录访问被 CF 回调卡住回调又在等 oplock 建立一旦 Defender或其更新流程触碰锁文件批量 oplock 请求会被打破。等到GetOverlappedResult返回FreezeVSS打印出标志性语句第 1570 行WD is frozen and the new VSS can be used.随后置位hvssready事件主线程就知道Defender 已被冻结新卷影快照可以安全利用了。六、技巧三EICAR 诱饵文件——如何让 Defender 乖乖创建快照光有雷达和锁还不够得让 Defender主动开始一次签名更新它会为更新创建 VSS 快照。TriggerWDForVS() 用了一个经典诱饵写 EICAR 测试文件第 1620-1665 行代码里把标准 EICAR 字符串反着存储用 rev() 函数运行时还原——既保证功能又避免静态字符串被扫描器直接命中抢占 RstrtMgr.dll 的批量 oplock第 1668-1693 行对%windir%\System32\RstrtMgr.dll独占打开并发起FSCTL_REQUEST_BATCH_OPLOCK把 oplock 当作Defender 动了的信号量再开一次 EICAR 文件第 1696-1698 行触发 Defender 检测行为oplock 随之打破PoC 确认 Defender 已上钩确认新快照等ShadowCopyFinderThread线程返回拿到新HarddiskVolumeShadowCopy路径启动 FreezeVSS用WaitForMultipleObjects同时等待线程退出和hvssready事件确保冻结成功才继续第 1732-1740 行。至此诱饵 → 快照 → 冻结三件套闭环完成。七、配套能力私有 RPC 接口与离线注册表VSS 技巧只是前半程冻结 Defender 后的后半程依赖两个配套模块 私有 RPC 接口windefend.idl 是逆向出的 Defender 内部 RPC 接口定义windefend_h.h 等由 MIDL 生成。PoC 在 CallWD() 中用RpcStringBindingComposeW以ncalrpc方式绑定接口IMpService77BDAF73调用Proc42_ServerMpUpdateEngineSignature把签名目录替换为\??\GLOBALROOT\Sessions\N\BaseNamedObjects\{GUID}\WDUpdateDirectory这类命名对象符号链接由 NtCreateSymbolicLinkObject 创建从而让 Defender 加载攻击者投放的新签名。 离线注册表工具offreg.h offreg.lib 提供离线注册表访问能力配合 FunnyApp.cpp 中的 SAM 解析逻辑bootkey 重排、AES-CBC 解密 LSA 密钥、SAM 库偏移解析可在获取 VSS 快照后直接对离线系统画像做密码哈希提取——这也是 BlueHammer 选择 VSS 路线的终极目的卷影副本 一个不受内存保护机制约束的离线系统镜像。八、安全启示普通用户与运维该如何防范虽然 BlueHammer 只是研究 PoCREADME 中作者还承认 There are few bugs in the PoC但它暴露的弱点值得警惕✅监控 VSS 异常活动定期用vssadmin list shadows或审计日志关注非系统组件创建的卷影副本✅保护 WinDefend 服务与关键 DLL利用 WDAC/AppLocker 限制对RstrtMgr.dll等系统文件的独占打开与 oplock 抢占✅审计云文件同步根注册CfRegisterSyncRoot是合法 API但恶意进程注册同步根并长期阻塞回调属于异常行为可通过进程回调检测✅及时更新 Defender 与系统本漏洞依赖Defender 会响应更新并创建快照这一行为链路官方修复后链路即失效。九、相关文件索引模块路径PoC 主程序全部核心逻辑FunnyApp.cppVSS 快照监听线程FunnyApp.cpp#L1169-L1350FreezeVSS 冻结线程FunnyApp.cpp#L1463-L1598TriggerWDForVS 总调度FunnyApp.cpp#L1601-L1762Defender RPC 接口定义windefend.idlRPC 客户端/服务器存根windefend_c.c · windefend_s.c离线注册表库offreg.h · offreg.lib项目说明README.md工程与资源FunnyApp.sln · FunnyApp.rc · resource.h⚠️ 本文为安全研究科普所有技术细节仅供理解 Windows Defender 防御机制与 VSS 卷影复制原理之用请勿将相关技术用于非法用途。【免费下载链接】BlueHammerRepository hosting the bluehammer vulnerability项目地址: https://gitcode.com/gh_mirrors/bl/BlueHammer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

VS Code 设置 JSON 文件怎么改到 TaoToken:统一 Key 与 API 通道配置大纲

VS Code 设置 JSON 文件怎么改到 TaoToken:统一 Key 与 API 通道配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/8 23:37:01
AI工具WorkBuddy篇:8_换电脑后,数据如何迁移

AI工具WorkBuddy篇:8_换电脑后,数据如何迁移

本教程面向完全没接触过文件迁移的新手,手把手教你把旧电脑上的 WorkBuddy(含全部记忆、人格、技能、项目数据)完整搬到新电脑,做到“换电脑不换魂”。请按顺序从头读到尾,再动手操作。一句话总览迁移 复制 3 个隐藏文…

📅 2026/10/8 23:37:01
text-to-cad 实战:从自然语言到 STEP/STL 三维模型生成全链路解析

text-to-cad 实战:从自然语言到 STEP/STL 三维模型生成全链路解析

1. 从一句话到三维模型:text-to-cad 到底在解决什么问题第一次听到 text-to-cad 这个词,我脑子里蹦出来的画面是:对着电脑敲一句“给我画一个 806010mm、四角带 M4 沉头孔的安装板”,然后软件自己把模型建好、导出 STEP 文件丢给我…

📅 2026/10/8 23:37:01
MORE NEWS

更多资讯

📰

毕设实战:MHK在线学习小程序全栈链路拆解与避坑指南

简介:面向微信小程序毕业设计的MHK在线学习小程序项目包,基于微信开发者工具JavaMySQL实现,采用前后端分离结构,覆盖学生与管理员双角色完整闭环。学生端支持注册登录、考试资讯浏览与详情查看,并内置听力训练、阅读训…

📰

飞书CLI开源后,Claude Code办公自动化实战大纲:从Base URL改到TaoToken开始

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Claude Fable 5 正式发布,TaoToken 统一 Key 接入 Anthropic 新模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

headcount 16部门选型完全指南:CFO、CTO、CISO等角色该装哪些技能

headcount 16部门选型完全指南:CFO、CTO、CISO等角色该装哪些技能 【免费下载链接】headcount An agent organization structured as a company — 15 departments, 125 skills, each independently installable, citing the standards and regulators that settle …

📰

Hermes Desktop多Profile多Agent协作指南:多主机AI工作流如何搭建

Hermes Desktop多Profile多Agent协作指南:多主机AI工作流如何搭建 【免费下载链接】hermes-desktop The safest, simplest way to manage Hermes from your Mac. Pure SSH. No gateways, no exposed ports, no browser layer. 项目地址: https://gitcode.com/gh_m…

📰

东莞高导热低膨胀液态芯片封装胶制造厂家企业全景分析,晋咸新材料资质齐全

核心原理科普:芯片封装胶如何破解大功率算力时代的散热与应力难题在AI算力爆发、服务器芯片功率持续攀升的当下,芯片封装材料正成为制约设备稳定性的关键一环。简单来说,芯片工作时产生的热量需要通过封装胶快速导出,同时封装胶还…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬