Windows Sandbox 内核研究:实现 Bootkit 绕过 PatchGuard 与 DSE
Bootkitting Windows Sandbox
引言与动机
Windows Sandbox 是微软于 2019 年 5 月推出的轻量级隔离桌面环境。其特点包括:
快速启动的临时虚拟机
通过.wsb 文件配置沙箱
适用于恶意软件分析与内核研究
驱动开发环境配置
通过未公开命令CmDiag
启用开发模式:
获取调试连接字符串后,使用 WinDbg 连接至127.0.0.1:50100
。虽然可加载自定义驱动,但存在以下缺陷:
需手动复制驱动文件
网络调试连接不稳定
启动时间显著延长
沙箱内部机制
关键发现:
通过
C:\ProgramData\Microsoft\Windows\Containers\BaseImages\<GUID>\BaseLayer
可直接访问沙箱文件系统开发模式会生成
DebugLayer
目录用于覆盖 BCD/注册表配置基础镜像采用 VHDx 分层和 NTFS 重解析点技术
Bootkit 实现原理
启动流程劫持
分析发现沙箱默认加载路径:
通过修改该 EFI 文件实现:
嵌入 payload 至.bootkit 区段
劫持 OpenProtocol 服务
挂钩 winload!BlImgLoadPEImageEx
关键技术突破
绕过 BmFwVerifySelfIntegrity 自校验
动态修补 ntoskrnl.exe 内存镜像
通过修改 CiInitialize/SepInitializeCodeIntegrity 禁用 DSE
篡改 KeInitAmd64SpecificState 关闭 PatchGuard
调试技巧
创新性日志输出方案:
利用 vmwp.exe 文件访问监控特性
通过创建
\EFI\debug_message
虚拟路径传递日志强制崩溃测试点定位技术
实战应用
最终实现:
无需开启测试签名即可加载 TitanHide 等驱动
支持 DTrace/STrace 系统调用监控
完整 UEFI 开发框架集成方案
项目代码库提供了完整实现。该技术为内核研究提供了隐蔽且高效的实验环境,同时揭示了 Windows 沙箱架构的安全边界问题。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码

评论