NTFS诡异的数据流文件ADS
来源:互联网 发布:linux 禁止删除文件 编辑:程序博客网 时间:2024/05/18 13:27
简介
ADS全名叫做Alternate data streams,是NTFS的一个特性,它允许除一个文件文件主流之外,还可以拥有很多其他流,这些其他流我们在资源管理器中是看不到的,
而且即使知道了ADS文件的名字一时无法删除的,因为Del指令不支持ADS文件的删除。
这个特性是为了兼容Macintosh的HFS文件系统存在的,不过对于windows系统本身它十分鸡肋,和windows本身的兼容也不是很好,
基本指令
ADS的创建分为两种,单独存在的和依附于文件的,不仅仅局限于txt文本,图片声音可执行文件多可以作为流文件来存在。
单独存在流:
echo "this is a stream file" > :stream.txttype d:\winnt\notepad.exe > :np.exe
依附于文件流:
被依附的主文件内容不会改变,也不会改变文件大小,而且需要此文件的写权限。
echo "this is a stream file" > main.txt:stream.txttype d:\winnt\notepad.exe > main.txt:np.exe
查看流文件:
使用type edit等命令读取流文件时会报错,因为命令号也不能很好地支持ADS
notepad test.txt:stream.txt
清除主文件中附加的流:
删除上层目录,或者切换文件格式到FAT也可以
d:\ads>type myfile.txt > myfile.batd:\ads>del myfile.txtd:\ads>ren myfile.bat myfile.txt
运行附加流的文件:
这里运行np.exe在任务管理器中显示有可能是myfile.exe很具有迷惑性,但有些版本中是myfile.exe:np.exe
d:\ads>start d:\ads\myfile.txt:np.exed:\ads>start .\myfile.txt:np.exe
主流数据
在ADS中,$DATA代表了主流的数据,但在系统下不能成功读取。
notepad test.txt::$DATA
路径流
这个路径也是带有流的,并且在MySQL中可以用来新建目录。
select 'xxx' into outfile 'D:\\mysql\\lib::$INDEX_ALLOCATION';
官方文档
http://msdn.microsoft.com/en-us/library/ff358877.aspx
漏洞与利用
这里只是理论上的用法,懒得测试了。。。
大部分漏洞的成因是,第三方软件对ADS的处理不够谨慎,如MySQL APACHE。
目录访问权限绕过
对于IIS6.0+PHP、IIS7.5+asp、IIS7.5+php环境下,如果某目录通过HTTP Basic来认证,假设其目录下有index.php文件,我们可以通过构造如下方式来绕过认证直接访问其目录下的文件。
/admin::$INDEX_ALLOCATION/index.php/admin:$i30:$INDEX_ALLOCATION/index.asp
漏洞描述
http://www.exploit-db.com/exploits/19033/
上传文件黑名单绕过
构造这样的文件名,会建立宿主文件1.asp,但是上传内容会保存在附加流文件2.jpg中
1.asp:2.jpg
访问附加流的话是按照jpg解析,所以比较鸡肋。
构造这样的文件名,会生成一个文件夹。
1.php:$I30:$INDEX_ALLOCATION
但是这些方法只能在不修改文件名的前提下使用。
隐藏webshell
把shell写到某个文件的附加流中,再在其他文件中包含这个附加流。
在test.php中添加
<?phpinclude(“1.php:.jpg”); ?>
在1.php:.jpg中写入后门代码。访问test.php时,后门代码能成功解析。
新建目录
MySQL5.1及其之后的版本,使用UDF提权时,指定UDF必须导出在MySQL目录下的lib\plugin下才有用,而非完全版的Mysql默认安装后没有plugin这个目录,且在MySQL中没有可创建文件夹的函数。(通常很多时候在webshell中也无权限建立该目录),可用如下的SQL建立文件夹
select‘xxx’ into outfile ‘c:\\test::$INDEX_ALLOCALTION\\’;
查看文件源码
这是一个很古老的漏洞,早期版本的IIS在处理文件请求时会先判断文件扩展名是否在可执行文件扩展名列表中,如果在,则执行并返回结果,如果不在,则直接返回文件内容。NTFS文件系统支持 在文件中包含额外的数据流。$DATA是在NTFS文件系统中存储数据流的属性。当我们对一个在NTFS分区中的ASP文件发出包含$DATA请 求,IIS会检查最后一个“.”后面的扩展名,因为多了“::$DATA”,结果IIS不认为这是一个ASP文件,而文件系统可以识别该请求,于是ASP 的源代码被返回。在高版本的IIS以及其他的Web Server中测试没有发现该问题。
- NTFS诡异的数据流文件ADS
- 谈谈NTFS数据流文件
- Windows中隐藏文件的捷径---------NTFS文件流(ADS)
- NTFS不利的一面——ADS流文件
- ntfs数据流的复制
- NTFS的ADS流应用
- NTFS数据流文件里的_病毒木马_[网帖]
- SVN二次开发——让SVN、TSVN(TortoiseSVN)支持windows的访问控制模型、NTFS ADS (可选数据流、NTFS的安全属性)
- NTFS上的交换数据流
- mysql利用ntfs的ADS创建文件夹
- NTFS交换数据流实现文件隐藏
- NTFS数据流及高级文件隐藏
- 利用NTFS交换数据流隐藏文件
- ntfs 数据流
- 系统中的隐身人——ADS数据流文件
- VisualBasic.Net 2003实现NTFS文件附加数据流的读写类
- webshell的NTFS交换数据流文件隐藏及Python脚本查杀
- 替换数据流-ADS
- Machine Vision Technology Development Trend and Application Cases
- Lesson2: 掌握C++基本语法
- CentOS 6.4 图形界面自定义开启终端快捷键
- “忽悠”的精神
- 一段小状态
- NTFS诡异的数据流文件ADS
- 图像机器视觉解决方案与医疗影像解决方案
- mysql 时间相关
- linux vi 命令大全
- CentOS 6.4 精简安装桌面版安装LibreOffice
- Fedora18配置samba服务
- POI 读写 Excel
- spring 多数据源切换
- PHP连接MSSQL的问题