Windows隐蔽执行技巧之ADS
字数 2790 2025-10-01 14:05:44
Windows 备用数据流(ADS)技术分析与利用方法
一、ADS 基本概念
备用数据流(Alternate Data Streams,ADS)是 NTFS 文件系统的特性,允许一个文件(主文件流)附加其他隐藏的数据流。
核心特点:
- 附加数据流不影响主文件的大小和内容
- 可将一个 secret.exe (1MB) 附加到 0 字节的 note.txt 上
- 资源管理器显示 note.txt 为 0 字节,但实际携带 1MB 隐藏数据
- 使用 type 查看文件内容为空,文件大小显示为 0
二、ADS 执行方法
方法 1:WMIC(Windows Management Instrumentation Command-line)
系统兼容性:
- Windows 11 版本 25H2 已删除 WMIC
- Windows 11 版本 24H2 新安装默认删除,仅作为可选功能安装
- Microsoft 建议使用 PowerShell 替代 WMIC
调用链分析:
- 命令执行 → cmd.exe (PID: 5508)
- 创建进程 → wmic.exe (PID: 2208)
- 发送 WMI 请求 → Windows WMI Service
- 委派任务 → wmiprvse.exe (PID: 3368)
- 创建进程 → c:\note.txt:calc.exe (PID: 4648)
安全检测:通过 wmic 执行会被检测为敏感操作
方法 2:PowerShell(Windows Power Shell 5.1.26100.6584)
技术优势:
- PowerShell 内置多个 WMI cmdlet
- 无需安装其他软件或模块
- 常见的 WMIC 查询可直接替换为 PowerShell 命令
调用链分析:
- 命令执行 → PowerShell.exe (PID: 4148) 发送 CIM/WMI 请求
- 接收请求 → Windows WMI Service (svchost.exe) 委派任务给特权进程
- 执行任务 → wmiprvse.exe (PID: 3576) 建立进程
- 进程启动 → c:\note.txt:calc.exe (PID: 2968)
安全检测:通过 PowerShell 发送合法的 CIM/WMI 请求不会触发敏感操作
方法 3:Appvlp(微软 Office 应用程序虚拟化程序)
程序特性:
- 微软 Office 套件附带的应用程序虚拟化程序
- 经过微软数字签名的合法文件
- 默认路径:
C:\Program Files\Microsoft Office\root\client\appvlp.exeC:\Program Files (x86)\Microsoft Office\root\client\appvlp.exe
调用链分析:
- 命令执行 → cmd.exe (PID: 37296) → 创建进程
- 虚拟化程序 → AppVLP.exe (PID: 31644) 创建进程
- 进程启动 → C:\test\note.txt:calc.exe (PID: 26516)
- 系统服务管理器 → services.exe (PID: 1452) 启动许可证服务
- 服务宿主 → svchost.exe (PID: 28236,托管 ClipSVC) 创建许可证工具进程
- 许可证工具 → Clipup.exe (PID: 23680)
安全检测:通过微软的 AppVLP.exe 执行备用数据流不会触发敏感操作
三、ADS 查看与检测
查看限制:
- 普通的 type/cat 命令无法查看数据流
- 需要专用工具或命令查看备用数据流
四、ADS 传输局限性
1. 文件系统限制
- 仅限 NTFS 文件系统
- 移动到非 NTFS 文件系统时,所有备用数据流会被立即剥离
- 影响场景:复制到非 NTFS 的 U 盘、SD 卡、Linux、Mac 等系统
2. 应用程序限制
- 大多数应用程序和操作"无视"ADS
- 命令行 copy 命令:默认不复制备用数据流,需使用特定参数
/B(二进制模式) - 其他可用命令:xcopy、robocopy
- 文件编辑与保存:编辑保存后通常只保存主数据流,导致 ADS 丢失
3. 网络传输限制
- 上传文件/发送电子邮件/ZIP 格式都会丢失 ADS
五、ADS 传输方法
局域网传输(SMB)
环境要求:
- 目标机器为 NTFS 文件系统
- 开启 SMB 且有权限写入
方法 1:GUI 环境
- 直接复制 ADS 至对方目录
方法 2:CMD 环境
- robocopy 命令:将文件数据从一个位置复制到另一个位置
- xcopy 命令:复制文件和目录,包括子目录
互联网传输
方法:RAR 压缩包归档
- 高度依赖 WinRAR
- 归档格式必须是 RAR
- GUI 界面下勾选"保存文件流数据"
解压注意事项:
- WinRAR GUI 直接解压会触发 ADS 规则
- 7zip GUI 直接解压 note.txt 无效,会单独显示 note.txt:calc.exe 备用数据流
- 单独解压 note.txt:calc.exe 也会触发 ADS 规则
- WinRAR 命令行版解压不会触发新规则
- 自解压环境同样不会触发新规则
六、高级利用:CVE-2025-8088 WinRAR 路径遍历漏洞
影响版本:WinRAR 7.12 及以下版本
威胁等级:高危
漏洞说明:通过特殊的路径构造,绕过 WinRAR 的路径验证,将恶意文件释放到系统关键目录(例如启动/lnk 目录)
利用思路:
- 目标环境:WinRAR 7.12 及以下版本 + Office 套件
- 桌面目录可控/微信 lnk 可控
- 解压目录在桌面
利用方法:
- 使用 Extract Here 提取文件(手动提取会触发 ADS 告警)
- 触发 payload 劫持微信 lnk
- 打开微信 lnk 后触发微信与计算器(cmd 启动会产生一闪而过的黑框)
限制因素:
- LNK 文件路径最长 260 个字符限制
- 需要更改注册表项或使用组策略工具解除限制
- PowerShell 劫持方案因长度限制搁浅
七、防御建议
- 监控敏感操作:关注 wmic、PowerShell 的 WMI 调用链
- 文件系统检测:定期扫描 NTFS 文件系统中的 ADS
- 传输安全:注意文件传输过程中的 ADS 剥离现象
- 漏洞修复:及时更新 WinRAR 到最新版本,修复 CVE-2025-8088
- 权限控制:严格控制 SMB 共享写入权限
- 安全审计:监控 Office 虚拟化程序 AppVLP.exe 的异常行为
本文档基于先知社区chiou发表的文章整理,仅供安全研究和技术学习使用,请勿用于非法用途。