偶尔走失,从未离开

本文将介绍NTFS数据流在渗透中的作用

文章目录:

NTFS数据流在渗透中的作用

0x01 简介

NTFS 是微软Windows NT内核的系列操作系统支持的,是为了解决网络和磁盘配额,文件加密等安全特性所设计的磁盘格式,比FAT文件系统更加稳定,也更加安全。

NTFS-ADS,又称为 NTFS 交换数据流,是NTFS磁盘格式的一个特性。

在NTFS文件系统下,每个文件都可以存在多个数据流,也就是说,除了主文件流之外,还可以有很多非主文件流寄宿在主文件流中。虽然我们无法看到数据流文件,但是它是真实存在于我们系统之中的。

格式如下:

<filename>:<stream name>:<stream type>

0x02 ADS 与 文件上传

有如下payload:

bypass.php:jpg

流类型以$开头,默认流类型为data,如上payload的完整形式其实是:

bypass.php:jpg:$data

其实我们前面已经说清楚了,这个格式是创建一个与宿主文件关联的数据流文件。

提示上传成功之后,服务器上会有一个bypass.php空文件(划重点)。

cmd执行

dir /a /r

显示出了该目录的完整信息:

文件内容在数据流文件中,我们当初上传的就是一个文件流文件,之所以会顺带生成bypass.php,是因为它没有找到自己的宿主文件,所以才创建了一个。

所以说,网上对它的误会太多了,例如冒号截断漏洞,IIS 截断0day等。

它与IIS无关,也与截断无关,它只是它自己而已。

同理 bypass.php::$DATA 可以写入文件,是因为它确实向bypass.php写入了内容。

The default data stream has no name. That is, the fully qualified name for the default stream for a file called "sample.txt" is "sample.txt::$DATA" since "sample.txt" is the name of the file and "$DATA" is the stream type.

也就是说 sample.txt <--> sample.txt::$DATA

0x03 可以用来做什么呢?

1.隐藏Webshell

2.绕过HTTP基础认证

3.绕过黑名单验证上传

4.在MySql UDF提权中的利用

具体利用细节见本文末尾的参考文献

0x04 more

用网上的一张图来概括ADS在渗透中的作用

参考文献:
NTFS_ADS带来的WEB安全问题.pdf

 标签: 截断, 上传

作者  :  watcher


添加新评论