刺球网络安全社区

 找回密码
 立即注册

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

搜索
查看: 1016|回复: 0

浅谈NTFS数据流

[复制链接]

 成长值: 217199

新浪微博达人勋

  • TA的每日心情

    2019-8-22 09:24
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    1134

    主题

    1717

    帖子

    36万

    积分

    管理员

    技术指数:★★★★★

    Rank: 9Rank: 9Rank: 9

    积分
    362833

    社区QQ达人最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    QQ
    发表于 2017-1-20 14:52:08 | 显示全部楼层 |阅读模式

    今天和大家一起来聊聊NTFS数据流,因为最近对这个东西挺好奇的,所以就搜集了一下这方面的资料。那么,什么是NTFS数据流呢?NTFS分区的数据流是一个子文件系统允许额外的数据连接到一个任意的文件中,现在的FAT文件系统格式是不支持数据流格式的,当然也可以直接建立一个数据流文件。

    其实数据流已经出现很久了,我们来直观的看看NTFS数据流到底是怎么同事,首先我准备了一个文件夹c;\test\,按win+r键调出运行栏,输入CMD打开命令提示符,然后来创建一个数据流。先建立一个有明确宿主的数据流文件,使用echo“teSt”>test.txt即可以建立一个文本文件,内容为“litest”,接下来就开始使用test.txt当宿主了。

    201701191484821662628592.jpg

    NTFS数据流的创建原理

    使用命令type将要附加的数据流文件>附加到的宿主文件(或文件夹):数据流文件名就可以创建,比如我们想将decode.exe附加到test.txt文件中,并且访问名为test.exe,就可以执行命令type decode.exe>test.txt: test.exe,这样就将decode.exe作为NTFS数据流附加到test.txt上了,大家可以对比下看都有什么区别。

    数据流的特性

    NTFS数据流在Windows系统环境下是不可显示的(当然现在也有一些工具可以查看到,微软也提供了CreateFile()这个API来查看NTFS数据流),如果上面的test.txt文件在附加NTFS数据流之前为9字节,则附加之后仍为9字节(我们可是附加了一个15360字节的东西呀),文件大小不会有任何的改变(有很强的迷惑性),由于用户几乎看不出有什么不同,所以达到了很好的隐藏特性(不过目前已经有一些杀毒软件可以很好的查杀数据流木马了)。因为NTFS数据流只存在于NTFS文件格式的系统中,因此如果将含有NTFS数据流的文件(比如这里的test.txt)先存放到非NTFS分区(比如FAT32分区),然后再转移到NTFS分区,则数据流会消失(这也是一个很好的删除数据流的方法)。如果将NTFS数据流的宿主文件(或文件夹)删除,则NTFS数据流自己也会删除(会创建也要会删除哦,不能给自己留下一堆隐患)。

    再来看看如何建立一个没有宿主(只是相对来说)的NTFS流文件,执行命令echo"this is a streamfile">:hackerxfiles.txt即可以建立一个数据流文件了(这个hackerxfiles.txt的宿主文件其实就是它的上一级文件夹,也就是test这个文件夹),怎么确定我们的数据流文件创建成功了呢?这个我们后面再说,先来看如何删除吧,试着执行del:hackerxfiles.txt,提示了“文件名、目录名或卷标语法不正确。”,不能直接的删除,大家想起前面提到的方法了吗?只需要把test文件夹挪到非NTFS分区就可以自动删除了,当然最后别忘了再挪回来。

    关于数据流的一些基本应用到这里就介绍完了,我们再来看下更实际点的应用吧,既然NTFS数据流能够给附加数据,那么我们是否能够利用呢?答案是肯定的,接下来我们就一起探索NTFS的利用价值吧。

    先来一个EXE附加一个EXE吧,执行命令type c:\test\decoda.Exe>c:\test\at.Exe:decode.Exe(之所以把要附加的数据写上完整路径,是为了帮大家更好的理解,如果你要附加的数据没有在当前目录下就需要像我这样,写出完整的路径了),双击运行这个at.Exe,看看decode.Exe会不会跟着运行,令人遗憾的是AT.EXE只是一闪而过,而我们的decode.Exe并没有运行。来看看到底要怎么执行吧,继续回到CMD下执行start./at.Exe:decode.exe就可以成功运行了。两个都是EXE文件可以附加执行,那么如果宿主是TXT的话,那我们的EXE能够执行吗?继续进行测试,执行type deCode.Exe>test.Txt:decode.exe,依然是没有任何回显,再执行看看,程序的界面依然弹了出来,结果很明显了,我们可以附加给任何后缀的文件,但是启动的时候必须要使用“./”才能正常的运行我们的附加数据(1xt文件使用edit就可以打开,但是却无法正常显示数据)。

    怎么才能显示自己创建的数据流文件呢?大家别着急,我们上面已经建立了一个hackerxfiles.Txt的流文件,目录中是不存在的,使用系统的EDIT能够打开但是却无法显示内容,我们再来使用notepad.Exe(记事本)查看吧,执行命令natepad.Exe./:hackerxfiles.txt就可以打开刚才创建的数据流文件,因为这个文件是采用上级目录作为宿主,所以这里的“:”前面保持为空即可。

    看到这里大家可能觉得还不过瘾吧,似乎没什么大用呀?感觉除了藏点自己的小秘密外好像也干不了啥的。我们再来挖掘一下,刚才已经提到了任意格式我们都能通过它来启动,那么是不是可以关联文件呢?来试试看吧,打开“我的电脑”,选择“工具”——“文件夹选项”——“文件类型”,这里我先建立了一个文件类型命名为test,然后点击高级,在用于执行操作的应用程序这里输入我们建立数据流的命令,就让这个test格式通过记事本来打开吧type c:\test\decode.Exe>c:\windows\notepad.Exe:cmd.Exe。

    出现了一个让人很郁闷的错误框,看来此路不通,我们必须通过其它的方式来执行NTFS数据流文件的创建了,虽然不能创建,那我们能不能运行呢?这里假设我已经把decode.Exe寄生到了notepad.Exe上面,填人以下命令c:\WINDOWS\NOTEPAD.EXE.decode.exe %1,成功的运行了。

    也就是说我们现在可以寄生到任意的文件上,难就难在如何运行了。不过可惜的是没能调用notepad.Exe打开我们的文件,看来除非自己再写个小程序来调用相应的程序打开该文件才行了,不过即便如此,还是有很大的利用空间的,如果用来写病毒或者木马感染还是很好玩的,所有的类型全部替换为我们的NTFS数据流木马,你干什么都会被感染,啥都干不了,直接搞死你的系统,感觉和映像劫持有点儿类似了。我们还可以配台WINRAR进行创建NTFS数据流的操作来感染系统,不仅如此,我们在肉鸡上也可以通过数据流来方便的隐藏我们的软件。

    说完了NTFS的强大,最后再来看看如何检测NTFS数据流吧,这里我给大家推荐两款工具:ScanNTFS和ADSScanner。

    我们刚才在c:\test目录下可是建立了好几个寄生文件的,来使用这两个工其分别检查一下吧,显示结果稍有差别,ADSScanner的扫描速度更快一些,结果也相对简单,不过值得一提的是ADSScanner的数据流查看功能,比如扫描出来的第一项为TXT格式,我们直接点击查看流内容就可以了,是不是非常方便呢,有了它我们就相当于有了一个私密记事本了。而ScanNTFS的扫描结果更加直观也更加详细一些,基本上这两款工具就是半斤八两,大家选择自己喜欢的使用吧。

    关于NTFS数据流的简单介绍就到这里了,希望大家喜欢,如果有什么更好的启动数据流的方法也欢迎来和我讨论。




    楼主热帖
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
     
     
    技术支持
    点击这里给我发消息
    在线客服
    点击这里给我发消息
    点击这里给我发消息
    刺球网安群①:
    刺球网安社区交流群①
    在线时间:
    8:30-21:00
     

    刺球网安 渝公网安备 50011402500080号 ( 渝ICP备15001097号-1 )申请友链|小黑屋| 刺球网络安全社区

    GMT, 2020-11-30 04:57 , Processed in 0.516414 second(s), 49 queries , Gzip On.

    Powered by 刺球网安

    © 2014-2025

    快速回复 返回顶部 返回列表