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

调用链分析

  1. 命令执行 → cmd.exe (PID: 5508)
  2. 创建进程 → wmic.exe (PID: 2208)
  3. 发送 WMI 请求 → Windows WMI Service
  4. 委派任务 → wmiprvse.exe (PID: 3368)
  5. 创建进程 → c:\note.txt:calc.exe (PID: 4648)

安全检测:通过 wmic 执行会被检测为敏感操作

方法 2:PowerShell(Windows Power Shell 5.1.26100.6584)

技术优势

  • PowerShell 内置多个 WMI cmdlet
  • 无需安装其他软件或模块
  • 常见的 WMIC 查询可直接替换为 PowerShell 命令

调用链分析

  1. 命令执行 → PowerShell.exe (PID: 4148) 发送 CIM/WMI 请求
  2. 接收请求 → Windows WMI Service (svchost.exe) 委派任务给特权进程
  3. 执行任务 → wmiprvse.exe (PID: 3576) 建立进程
  4. 进程启动 → c:\note.txt:calc.exe (PID: 2968)

安全检测:通过 PowerShell 发送合法的 CIM/WMI 请求不会触发敏感操作

方法 3:Appvlp(微软 Office 应用程序虚拟化程序)

程序特性

  • 微软 Office 套件附带的应用程序虚拟化程序
  • 经过微软数字签名的合法文件
  • 默认路径:
    • C:\Program Files\Microsoft Office\root\client\appvlp.exe
    • C:\Program Files (x86)\Microsoft Office\root\client\appvlp.exe

调用链分析

  1. 命令执行 → cmd.exe (PID: 37296) → 创建进程
  2. 虚拟化程序 → AppVLP.exe (PID: 31644) 创建进程
  3. 进程启动 → C:\test\note.txt:calc.exe (PID: 26516)
  4. 系统服务管理器 → services.exe (PID: 1452) 启动许可证服务
  5. 服务宿主 → svchost.exe (PID: 28236,托管 ClipSVC) 创建许可证工具进程
  6. 许可证工具 → 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 可控
  • 解压目录在桌面

利用方法

  1. 使用 Extract Here 提取文件(手动提取会触发 ADS 告警)
  2. 触发 payload 劫持微信 lnk
  3. 打开微信 lnk 后触发微信与计算器(cmd 启动会产生一闪而过的黑框)

限制因素

  • LNK 文件路径最长 260 个字符限制
  • 需要更改注册表项或使用组策略工具解除限制
  • PowerShell 劫持方案因长度限制搁浅

七、防御建议

  1. 监控敏感操作:关注 wmic、PowerShell 的 WMI 调用链
  2. 文件系统检测:定期扫描 NTFS 文件系统中的 ADS
  3. 传输安全:注意文件传输过程中的 ADS 剥离现象
  4. 漏洞修复:及时更新 WinRAR 到最新版本,修复 CVE-2025-8088
  5. 权限控制:严格控制 SMB 共享写入权限
  6. 安全审计:监控 Office 虚拟化程序 AppVLP.exe 的异常行为

本文档基于先知社区chiou发表的文章整理,仅供安全研究和技术学习使用,请勿用于非法用途。

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.exe C:\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发表的文章整理,仅供安全研究和技术学习使用,请勿用于非法用途。