zoukankan      html  css  js  c++  java
  • Windows 备用数据流(ADS)的妙用___转载

    NTFS交换数据流(Alternate Data Streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流。通俗的理解,就是其它文件可以“寄宿”在某个文件身上,而在资源管理器中却只能看到宿主文件,找不到寄宿文件。利用ADS数据流,我们可以做很多有趣的事情。 

      一、ADS数据流文件的创建 

      在NTFS分区创建ADS数据流文件有两种形式:一是指定宿主文件;二是创建单独的ADS文件。常用的创建命令有两个:echo和type。 

      1、创建指定宿主文件的ADS数据流文件 

      第一步:创建宿主文件 

      宿主文件是指在Windows中可以正常显示、运行或编辑的任何类型文件。假设D:盘为NTFS分区,我们用记事本创建一个txt格式的文本文件host.txt,随意输入一些内容,保存在D:盘根目录中。记住该文件的大小。 

      第二步:关联数据流文件 

      进入DOS提示符状态,在“D:>”状态输入命令“echo "this is a test file">host.txt:ads.txt”。这样我们就创建了一个名为ads.txt,内容为“this is a test file”的数据流文件,并与宿主文件host.txt进行了关联,即ads.txt文件成了host.txt的一个寄生文件。此时,无论是用dir命令还是在资源管理器中,均无法看到ads.txt文件,只能看到host.txt文件,且其大小未发生任何改变! 

      2、创建单独的ADS数据流文件 

      在DOS提示符状态输入命令“echo "this is a test file">:ads.txt”,这样就在当前目录下创建了一个未指明宿主文件的名为ads.txt的数据流文件,它同样无法看到。可以说,这个文件已经在系统中隐身了。由于未指定宿主文件,一般的方法无法删除,唯一能将之删除的办法就是删除其上一级目录。如果这样的单独数据流文件存在于磁盘根目录,那么删除它将是一件非常棘手的事! 

      除了文本文件以外,包括可执行文件在内的任何常规文件都可以被设置成ADS数据流文件。例如“type c:winntsystem32sol.exe>host.txt:sol2.exe”命令就会把sol.exe文件设置成host.txt的ADS数据流文件sol2.exe。我们甚至可以对系统的一些重要文件附加数据流文件,如:“type im-age.bmp>c:windowsexplore.exe:im-age.bmp”命令就会将图片image.bmp设为explore.exe的数据流文件。不难看出,ADS数据流文件的基本创建形式就是宿主文件名:数据流文件名,中间用冒号间隔。 

      二、ADS数据流文件的查看 

      在上述例子中,我们创建了一个ads.txt寄宿在host.txt文件上,如何查看 ads.txt文件呢?可以用“notepad host.txt:ads.txt”命令来查看ads.txt文件的内容(如图一所示),你会发现其内容正是“this is a test file”。依此类推,用“mspaint.exe ex-plore.exe:image.bmp”命令就可以查看寄宿在explore.exe中的图片。实际上,ADS数据流文件的通用查看方法是:ADS文件对应的打开/编辑程序 宿主文件名:数据流文件名。 

      在当前目录执行dir /r 命令,在文件末端会有:$DATA

      三、ADS数据流文件的应用 

      在实践中,ADS数据流文件有以下的常见应用:一是隐藏/加密文件。例如命令“type 1.bmp>song.mp3:1.bmp”可以将1.bmp图像隐藏到mp3歌曲中,1.bmp设为ADS数据流文件后,自身可以删除,song.mp3文件又看不出任何异样,用mspaint等程序依然可以通过song.mp3文件查看到1.bmp图像。因此,用ADS数据流文件隐藏/加密文件具有较强的隐蔽性和安全性,只要宿主文件没有删除,数据流文件就比较安全。更何况宿主文件可以是系统的一些重要的核心的文件。二是通过winrar批量隐藏/保存重要文件。首先将要隐藏的文件打包成RAR压缩包,再执行命令“type 1.rar>song.mp3:1.rar”即可将这些文件设为song.mp3的数据流文件。winrar有一个重要的特性——支持数据流压缩!打开winrar的压缩对话框,单击“高级”标签,勾选“NTFS选项”中的“保存文件数据流”选项,即可将ADS数据流文件连同宿主文件一起打包压缩,这样就方便了数据流文件的压缩和异地存储。ADS数据流文件的特殊性质决定了它还有另外一类运用——制作病毒或木马。事实上,当前很多病毒、木马就是利用数据流文件来躲避杀毒软件查杀的。与此同时,杀毒软件对ADS数据流技术的支持并不是很好,这些都导致了病毒木马的进一步泛滥。 

      四、ADS数据流文件的执行 

      当一个可执行文件被隐藏在ADS数据流文件中后,我们可以通过start命令来执行这个程序。假设我们用“type c:windowssystem32 otepad.exe>host.txt:np.exe”命令将记事本设为了host.txt文件的数据流文件,那么就可以通过“start .host.txt:np.exe”命令来运行记事本。请注意:命令行中的“.”是相对路径表示方法,说明当前目录就是host.txt所在的目录。如果当前目录不是host.txt所在的目录,则应用绝对路径表示法指明host.txt所在的路径,否则,系统会报错!当ADS数据流文件是一个VBS脚本文件时,也可以通过windows的 WSH来执行,例如“wt host.txt:ads.vbs”。 

      五、ADS数据流文件的检测 

      Microsoft KnowledgeBase 中Q101353号文章承认了基于API的win32不能很好地支持ADS。因此,操作系统本身难以发觉ADS数据流文件的存在。我们必须借助第三方软件来检测 ADS。常见的工具有LADS (List Alternate Data Streams)、Streams、Sfind等,其中LADS是较好的工具,下载地址:http://www.vkil.net/tools/lads_4.00.rar。LADS是一个命令行工具,将其拷到NTFS分区的根目录中,然后执行“LADS /S”,它就会对所在分区进行全盘检测,一旦发现有ADS文件,就会在屏幕上列出来(如图三所示)。此外,冰刃IceSword v1.22中文版(下载地址:http://cqdxa.ddvip.com:81/down/IceSword122cn.zip)也可以检测并删除ADS文件。方法如下:启动IceSword,打开文件管理器,选中NTFS分区,然后单击右键,弹出如图四所示的界面,选择其中的“枚举ADS(包含子目录)”。对于检测出的ADS,可以直接点选并删除。 

      六、ADS数据流文件的删除 

      ADS数据流文件有三种删除方式。一是直接删除宿主文件,二是将宿主文件移到FAT32等非NTFS分区中;三是利用工具软件,如IceSword删除。 

     

  • 相关阅读:
    【Elasticsearch 技术分享】—— ES 常用名词及结构
    【Elasticsearch 技术分享】—— Elasticsearch ?倒排索引?这都是什么?
    除了读写锁,JUC 下面还有个 StampedLock!还不过来了解一下么?
    小伙伴想写个 IDEA 插件么?这些 API 了解一下!
    部署Microsoft.ReportViewe
    关于TFS强制undo他人check out
    几段查看数据库表占用硬盘空间的tsql
    How to perform validation on sumbit only
    TFS 2012 Disable Multiple Check-out
    在Chrome Console中加载jQuery
  • 原文地址:https://www.cnblogs.com/feiyucha/p/9940895.html
Copyright © 2011-2022 走看看