Hidden Alternative Data Streams 的进阶利用技巧

发布于 2024-11-15 05:03:38 字数 7512 浏览 5 评论 0

0x00 前言

在渗透测试中,ADS(供选数据流/ alternate data stream) 通常用于在文件中隐藏 payload,这种方式最大的优点是不影响文件大小,普通用户很难察觉

为此,微软提供了 "dir /r" 操作,可用来查看文件的 ADS,同时,Win XP 以后的系统禁止用户从 ADS 里直接执行程序,限制了 ADS 的利用

然而,通过一些特殊用法和技巧,我们能够更好的隐藏 ADS,并且能够从 ADS 里直接执行程序 :)

说明:

写本文的初衷是偶然看到了一篇有趣的文章,作者:lex Inführ,地址如下: http://insert-script.blogspot.co.at/2012/11/hidden-alternative-data-streams.html

该文章介绍了一些绕过 ADS 检测工具的技巧,并给出了通过 wmi 执行 ADS 的方法

本文将基于 lex Inführ 的文章,结合我的研究心得,对 ADS 的利用技巧作扩充,分享如何清除这些特殊的 ADS,帮助大家提升对 ADS 的认识

0x01 简介

本文将要介绍以下内容:

  • ADS 常规利用方法
  • ADS 常规检测工具
  • 特殊 ADS 对检测工具的绕过
  • 特殊 ADS 的清除
  • 防御建议

0x02 常规利用

ADS:

适用于 NTFS 文件系统,基础知识可参考如下文章: http://www.freebuf.com/articles/73270.html

创建 ADS:

对文件,命令行:

echo test1 > test.txt:ThisIsAnADS

创建成功后,test.txt 文件大小不变

对文件夹,命令行:

echo test1 > c:\test\ads\1:ThisIsAnADS

注: 需要绝对路径

查看文件中的 ADS:

命令行:

dir /r

如图

Alt text

可获得文件夹和文件中包含的 ADS 信息

查看 ADS 内容:

命令行: more < test.txt:ThisIsAnADS

如下图,获得 ADS 的具体内容

Alt text

删除 ADS:

命令行: more < test.txt > testcopy.txt

使用 more 命令查看文件的主数据流并输出,即可变相实现 ADS 的删除

如下图,testcopy.txt 不包含多余 ADS

Alt text

注: more 命令在显示较长数据时会截断,逐屏显示输出,这里面就存在一个 bug,如果文件过大,导致 more 命令需要分屏显示的时候,就会造成数据显示不完整,导致文件生成失败

0x03 ADS 的执行

1、通过 wmi

命令行:

type putty.exe > test.txt:putty.exe

wmic process call create c:\test\test.txt:putty.exe

如图

Alt text

程序执行后,进程名为 test.txt:putty.exe

2、通过 powershell

代码如下:

$ps = new-object System.Diagnostics.Process
$ps.StartInfo.Filename= "c:\test\test.txt:putty.exe"
$ps.StartInfo.RedirectStandardOutput = $True
$ps.StartInfo.UseShellExecute = $False
$ps.start()

0x04 常规检测工具

1、ADSCheck.exe

下载地址:https://sourceforge.net/projects/adscheck/

查看 ADS: 可查看指定文件夹下所有文件

命令: ADSCheck.exe c:\test\ads

如图

Alt text

删除 ADS: 可删除指定路径下的所有 ADS

命令: ADSCheck.exe c:\test\ads /d

如图

Alt text

2、Streams.exe

下载地址:https://technet.microsoft.com/en-us/sysinternals/streams.aspx

查看 ADS: 查看单个文件

命令: streams.exe c:\test\ads\test.txt

如图

Alt text

删除 ADS: 删除单个文件的 ADS

命令: streams.exe -d c:\test\ads\test.txt

如图

Alt text

实例测试:

浏览器下载的文件在打开时会弹框提示

如图

Alt text

原因:下载的文件默认添加 adsZone.Identifier:$DATA

验证:查看 ADS:

more < putty_download.exe:Zone.Identifier:$DATA

获得内容如下:

[ZoneTransfer]
ZoneId=3

去除 ADS:无法使用 more 命令,因为 putty_download.exe 过大,需要分屏显示,导致文件生成失败

可使用 streams.exe

去除 ADS 后,打开文件不再弹框提示

0x05 特殊 ADS

1、...文件

创建特殊文件...

命令如下:

type putty.exe > ...:putty.exe

wmic process call create c:\test\ads\...:putty.exe

putty.exe 成功执行,进程名为 ...:putty.exe

特别的地方:

(1) ADS 被隐藏

  • dir /r 无法查询
  • 工具 ADSCheck.exe 和 streams.exe 显示不存在 ADS

如图

Alt text

(2) 该文件无法被删除

尝试各种方法,无法删除,如图

Alt text

2、特殊 COM 文件

创建特殊名称文件 COM1

注:

经测试,系统目前支持的文件名称为 COM1 至 COM9 必须有前缀 \\.\ ,否则提示系统找不到指定文件

补充 1:

特殊名称 nul 也有同样效果,该方法由 Evi1cg 测试得出

补充 2:

其他特殊文件格式也可以隐藏 ADS,包括如下格式的后缀名:

CON、AUX、PRN、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9

type putty.exe > \\.\C:\test\ads\LPT4:putty.exe

注:更多特殊文件名称可参考:

https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file

补充 3:

也可以使用前缀 \\?\ ,具有相同效果

命令如下:

type putty.exe > \\.\C:\test\ads\COM1:putty.exe

wmic process call create \\.\C:\test\ads\COM1:putty.exe

注:执行 wmic process call create c:\test\ads\COM1:putty.exe 不会执行程序

putty.exe 成功执行,进程名为 COM1:putty.exe

特别的地方:

(1) ADS 被隐藏

  • dir /r 无法查询
  • 工具 ADSCheck.exe 和 streams.exe 显示不存在 ADS

(2) 无法直接删除

3、磁盘根目录

管理员权限

type putty.exe >C:\:putty.exe wmic process call create C:\:putty.exe

putty.exe 成功执行,进程名为 :putty.exe

特别的地方:

(1) ADS 被隐藏

  • dir /r 无法查到
  • 使用 streams.exe 可以查看

(2) 无法直接删除

0x06 特殊 ADS 的清除

1、...文件

方法 1:删除该目录下所有文件:

del *.*

但是不现实

方式 2:使用短文件名

dir /x

如图

Alt text

找到...文件对应的短文件名为 A535~1

命令行:del A535~1

成功删除

2、特殊 COM 文件

命令行:del \\.\C:\test\ads\COM1

3、磁盘根目录

使用 streams.exe

管理员权限:streams.exe -d C:\

0x07 防御建议

对于用户来说,如果在系统中发现特殊名称的文件并且无法删除,需要提高警惕,也许其中会包含 payload

对照本文,特殊文件及清除方法如下:

(1) ...

借助短文件名删除

(2) COM1-COM9

del \.\C:\test\ads\COM1

(3) 磁盘根目录

借助 streams.exe 查看和删除

0x08 小结

本文介绍了进一步隐藏 ADS 的利用技巧,结合攻击方式分享了具体的清除方法和防御建议,希望能够帮助大家。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

思念绕指尖

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

一梦浮鱼

文章 0 评论 0

mb_Z9jVigFL

文章 0 评论 0

伴随着你

文章 0 评论 0

耳钉梦

文章 0 评论 0

18618447101

文章 0 评论 0

蜗牛

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文