标签: 隐藏文件

利用ntfs属性隐藏windows后门文件的方法

浅析ADS(供选数据流)隐藏Windows后门的方法 ADS (供选数据流/ alternate data stream)NTFS使用Master File Table (MFT) 来管理文件。windows系统中的每个文件都对应一个MFT记录。而每一个MFT记录由若干个属性(attribute)组成,用来描述该文件的具体信息。比如 $FILE_NAME 属性描述了该文件的文件名和创建修改访问时间,而$DATA属性包含了该文件的具体内容。很多人想当然的认为一个文件只能有一个$DATA属性,这是错误的。在NTFS中,一个文件可以有多个$DATA属性。比如我现在想给test.txt加入一个名为ThisIsAnADS的$DATA属性: 1c:\test>echo Hello, freebuf! > test.txt:ThisIsAnADS 你可能发现了这两个$DATA属性还是略有不同的,第一个没有名称,而第二个有名称(ThisIsAnADS)!通常人们称第一个为主数据流(primary data stream )。主数据流在文件创建的同时就被创建了,并且默认没有名称,所以也叫做未名数据流 (unnamed data stream)。第二个是我们后来创建的,并且赋予了名称(ThisIsAnADS)。这个就是供选数据流 (alternate data stream,ADS)。绝大多数用户只会和主数据流打交道,从某种意义上来说,ADS对用户是隐藏的。用常规的dir命令和windows文件管理器都没法发现ADS。而当我们查看文件内容的时候也仅仅显示主数据流的内容。 123456789101112c:\test>dir test.txtVolume in drive C is OSVolume Serial Number is F467-BAF0 Directory of c:\test 2015-07-26 10:29 13 test.txt1 File(s) 13 bytes0 Dir(s) 42 991 456 256 bytes free c:\test>type test.txtHello, world! 看!dir和type命令只显示了主数据流的长度和内容。但是我们可以使用dir /r 命令来列出ADS 12345678910c:\test>dir /r test.txtVolume in drive C is OSVolume Serial Number is F467-BAF0 Directory of c:\test 2015-07-26 10:29 13 test.txt18 test.txt:ThisIsAnADS:$DATA1 File(s) 13 bytes0 Dir(s) 42 991 382 528 bytes free 我们也可以用powershell命令Get-Content来查看ADS的内容