危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2306 浏览20582672

再谈NTFS数据流使用技巧

在我的脑海中很早之前NTFS数据流就已经是“家喻户晓”,时至今日,把“NTFS数据流”作为关键字放到Google里“跑”,依然能搜到大把大把的信息(说明这个东东一直以来有人在关注),微软推出个人PC的主流操作系统Win7后,NTFS文件系统依然存在,因此NTFS数据流是Windows世界里的一个常量,需要我们了解、熟悉并适当使用。下面把我的一些观点写下来,新手入门,高手飞过。

一、NTFS数据流基本知识

“流”是有了文件系统以后的一个概念,文件系统可以在包括终端、硬盘驱动程序和磁带驱动器的众多设备上工作,不管设备有多大的差异,文件系统都把它看成“流”的逻辑设备。一般来说流简单的分为两类——文本流和二进制流。

NTFS文件系统支持多个数据流的数据,也就是说一个文件可以有多个数据流,该文件称为宿主文件,与之关联的数据即为数据流。一般来说我们用type命令来关联一个文件的数据流,同样在编程时也能使用数据流。我们将1.txt:head.h通过include预处理将其加入到源文件中,程序能正常编译并且执行成功。

二、NTFS数据流用于隐藏文件

通过NTFS数据流来隐藏文件时一个不错的主意,很多工具无法检测到它,这也便是NTFS数据流用于免杀的一种方法,以瑞士军刀nc.exe和360为例,将nc.exe保存为c:\test\nc.exe,360能检测到。

接下来,在c:\test目录中建立一个1.txt的文本文件,然后以1.txt为宿主文件,在cmd中执行:type c:\test\nc.exe>1.txt:nc.exe,将其与1.txt进行关联,删除nc.exe,再次用360检测。在cmd中执行:start./1.txt:nc.exe能正常运行nc.exe(注意/是必须的)。

此时当然无法过360的主动了,不过从这个测试不难发现,NTFS数据流用于隐藏文件的确是一个不错的主意。

三、NTFS数据流防删除

NTFS数据流一旦删除宿主文件,也便不存在了,比如上面的1.txt:nc.exe,一旦删除1.txt则数据流也随之消失了,NTFS数据流检测的工具,常见的方法是通过BackupRead函数读取文件,查看是否有与文件有相关联的数据流,如果有则对NTFS数据名字进行读取,知道了数据流的名字,删除其宿主文件即可。为了止防删除NTFS数据流,我们可以把系统中的一些无法删除的文件当宿主,比如sam文件。sam文件始终被system.exe(系统关键进程)所访问的,所要在一定程度上可以实现防删除。

四、NTFS数据流与Web利用

NTFS数据流文件无法被IIS及apache所正常解析,因此想直接用于隐藏Webshell是不可能,如文章开头的内容一样,可以在程序中使用NTFS数据流文件,首先将webshell与宿主文件关联,然后以include的方式加载到其它的脚本文件中。

相关推荐