NTFS数据流文件里的_病毒木马_[网帖]

随着杀毒软件功能的日益强大,木马病毒已经不再局限于设置文件属性来达到隐藏自身的目的。一种更为隐蔽,危害更为巨大的文件隐藏方式正逐渐被木马所利用,通过这种方法,木马可以在系统中“隐形”,甚至躲过绝大多数杀毒软件的查杀,这种方法就是 利用NTFS数据流隐藏木马NTFS数据流本是NTFS文件格式中的一种正常功能,但是却可以被一些木马病毒所利用,而杀毒软件对NTFS数据流文件的检测能力十分薄弱,很多木马病毒就趁此机会,利用NTFS数据流将自己完全隐藏在系统中。下面,就让我们和NTFS数据流木马来一次“亲密接触”。

什么是 NTFS数据流?

    在介绍NTFS数据流之前,我们先简单了解一下NTFS文件系统。NTFS是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。NTFS比FAT文件系统更稳定,更安全,功能也更为强大。如果要让 FAT文件系统转换为NTFS文件系统,可以在“命令提示符”中输入“convert 分区盘符: /fs:ntfs”,即可将该分区的文件系统转换为 NTFS。
     NTFS交换数据流(alternate data streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS 文件系统下,每个文件都可以存在多个数据流,就是说除了主 文件流之外还可以有许多非主文件流寄宿在主文件流中。它使用资源派生来维持与文件相关的信息,虽然我们无法看到数据流文件,但是它却是真实存在于我们 的系统中的。创建一个数据交换流文件的方法很简单,命令为“宿主文件:准备与宿主文件关联的数据流文件”。 那么为什么我们无法看到系统中的数据流文件呢,是Windows为了防止我们误删数据流文件而故意设置的障碍吗?答案是否定的,我们之所以无法在系统中看 到NTFS数据流文件,是因为Windows中的很多工具对数据流文件的支持并不是很好,就像“资源管理器”,我们无法在“资源管理器”中看到有关数据流文件的变 化。这种缺陷让木马有机可趁,通过NTFS数据流将自己隐藏起来,从此就从“资源管理器”中消失了。例如Rootkit木马中的文件隐藏功能,就是利用了NTFS数据 流。

NTFS数据流的创建实例

    相信不少看了上文介绍的读者朋友还是对NTFS数据流一头雾水,没有关系,下面我们通过实例来深入了解一下NTFS数据流。
    创建宿主文件
    宿主文件在这里指的就是普通文件,是在Windows中可以正常显示、运行、编辑的任何类型文件。我们先来创建一个txt格式的文本文档,把它作为宿主文件

。运行“记事本”,随意输入一些内容,例如“测试——宿主文件”,然后将其保存为C:\test\suzhu.txt。接着我们在suzhu.txt上点右键,选择 “属性”,可以发现其文件大小为16字节。
    关联数据流文件
    宿主文件创建完成后,我们再来创建一个数据流文件,将其与宿主文件关联,看看宿主文件会发生什么变化。点击“开始”→“运行”,输入cmd运行“命令

提示符”,切换到C:\test\目录中,输入命令“echo " 测试——数据流文件" > suzhu.txt:shujuliu.txt”。这样我们就创建了一个名为shujuliu.txt,内容为

“测试 ——数据流文件”的数据流文件,并与宿主文件suzhu.txt进行了关联。
小贴士:在“命令提示符”中输入创建数据流命令后,不会有提示,但数据流文件已经成功创建了。
创建一个数据流文件
    让我们回到C:\test\目录中,可以发现在该文件夹中只有一个 suzhu.txt,而没有数据流文件shujuliu.txt,即使在“命令提示符”中使用“dir”命令也找

不到shujuliu.txt。既然宿主文件suzhu.txt和数据流文件shujuliu.txt进行了关联,那么是不是shujuliu.txt的内容合并到suzhu.txt中了呢?我们打开

suzhu.txt,其中的内容并没有改变,仍然是“测试——宿主文件”,而文件大小仍是16字节。
    那么数据流文件 shujuliu.txt哪去了呢?还是用“命令提示符”让它现形吧,在“命令提示符”中输入命令 “notepad suzhu.txt:shujuliu.txt”,在弹

出的记事本程序中就会出现数据流文件shujuliu.txt的内容。而我们在 “命令提示符”中使用type、edit等命令对数据流文件进行编辑时,将会出现错误,这是

因为“命令提示符”还不能很好地支持数据流文件。记事本虽然能够打开数据流文件,但并不表示它能完全支持NTFS数据流,这一点我们在“另存为”数据流文件的时候就会发现。
记事本也不能完全支持数据流
    创建数据流文件
    我们除了能将数据流文件和宿主文件进行绑定外,还能够创建单独的数据流文件。在“命令提示符”中输入“echo "测试—— 数据流文件" > 

:shujuliu2.txt”,这样就创建了一个名为shujuliu2.txt的数据流文件,而这个文件无论是在“资源管理器”还是在“命令提示符”中使用“dir”命令,都是

无法看到的。可以说,这个文件已经在系统中隐身了,我们只能通过输入命令 “notepad :shujuliu2.txt”得知它的存在,而即使知道它的存在,我们也无法删

除,因为命令提示符中“del”命令已经失去了作用。唯一能将之删除的办法,就是删除其上一级目录,如果单独的数据流文件存在于磁盘根目录,那么删除它将

是一件很痛苦的事。
    上文中的数据流文件我们都是以文本文档举的例子,而数据流文件是不局限于文本文档的,任何文件都可以作为数据流文件,包括可执行程序,图片,声音

等等。这就至少造成两个隐患:一是黑客入侵后可能将黑客工具通过数据流隐藏起来,当然也有病毒发作后将病毒文件进行隐藏的;二是通过某些途径,让数据

流文件可以自动执行,起到隐藏木马的效果。说了那么多,黑客到底是如何利用NTFS数据流进行攻击的呢?接着往下看。

利用NTFS数据流进行攻击

    NTFS 数据流原理看似很复杂,但是利用起来却很简单,这里我们要用到一款使用率极高的软件Winrar,用它将NTFS数据流打造成最恐怖的黑客武器。
    首先创建一个文件夹test,将我们准备好的木马程序muma.exe放到这个文件夹中。进入“命令提示符”,输入命令 “type muma.exe:muma.exe”,这样就为

muma.exe创建了一个数据流文件,完成后将test文件夹中的muma.exe删除。返回到上一级目录,在test文件夹上单击右键,在出现的菜单中选择“添加到

test.rar”。
小贴士:如果没有该选项,表示你没有安装 Winrar。
    双击刚才创建的test.rar,点击Winrar工具栏上的“添加”按钮,浏览选中test文件夹。在出现的“压缩文件名和参数”面板中切换到“高级”选项卡,选

中其中的“保存文件数据流”选项,点击“确定”即可。
Winrar可以保存数据流
    在 Winrar中选中test文件夹,点击Winrar工具栏上的“自解压格式”按钮。在“自解压格式”标签的“自解压模块”中选中 “Default.SFX”,然后点击“

高级自解压选项”按钮。出现高级自解压面板后,在其“常规”标签的“解压后运行”中填入 “test:muma.exe”。切换到“模式”标签,勾选其中的“全部隐

藏”。全部设置完成后点击“确定”,这样就创建了一个极为隐蔽的自解压木马,甚至可以躲过杀毒软件的查杀,当用户双击这个自解压文件后,就会运行里面

的数据流木马。
数据流木马运行设置

NTFS数据流木马的查杀

    到目前为止,很多杀毒软件仍然不能较好地查杀本机上的NTFS数据流文件和利用数据流制作的木马,不过在查杀NTFS数据流文件方面做的比较好的杀毒软件

还是有的,例如卡巴斯基,McAfee等。如果你装的不是这些杀毒软件,也没有关系,我们可以使用一些专业的NTFS数据流检查工具,找出隐藏在系统中的恶意文

件。
    专业检测NTFS数据流文件的工具有Sfind.exe、Streams.exe、 lads.exe等,这里我们以lads.exe为例进行介绍。lads.exe是一个命令下的工具,需要在“命

令提示符”中使用。在“命令提示符”中运行lads.exe,程序会自动检测当前目录中的NTFS数据流文件,如果要检测子目录中的数据流文件,可以在lads.exe运

行的同时添加一个参数 “/s”,这样就可以检测到子目录中的数据流文件了。对指定文件夹进行检测时,可以使用“lads.exe 文件夹路径”命令。
用 lads.exe检测数据流
    对于上文中介绍的那种利用NTFS数据流制作的木马自解压文件,也是可以防范的。首先当我们下载到一个自解压文件时,不要双击运行,可以在自解压文件上点击鼠标右键,选择“用Winrar打开”,如果发现其中的文件夹是空的,那么就要留个心眼了,很可能这就是一个数据流木马陷阱。其次,不管杀毒软件是不是能查杀NTFS数据流木马,木马程序运行后,在内存中还是会还原出来的,一般的杀毒软件都带有内存监控功能,可以将木马程序在内存中拦截下来。因此,勤升级杀毒软件也是防范NTFS数据流木马比较有效的办法。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘要:NTFS是Microsoft公司开发的一种有着良好安全性和稳定性的高性能文件系统,NTFS文件文件夹中附加多个额外的数据流,但是其访问一直没有很好的解决办法,本文使用VB2003实现NTFS文件附加数据流的读写类,提供.Net框架下NTFS文件附加数据流的完整解决方案。 关键词:VB.Net NTFS 数据流 类 在项目中选择添加引用->浏览->选择“JWBStreamOP.dll”文件->确定,即可成功引用。 4.1 类的声明: Dim myStreamOP As New ClassJWBStreamOP(“NTFS文件完整路径”) 4.2 属性: 该类共有3个只读属性 属性名 返回值类型 备注 FileName String 只读,在成功声明后使用 Ready Boolean 只读,该类可操作时为True Ver String 只读,类版本、版权信息 4.3 方法 该类共有6个方法: 4.3.1 OpenNTFSStream(ByVal sStreamName As String) As System.IO.FileStream 打开指定文件(声明时指定)的指定数据流,返回值为指定数据流的FileStream接口。 参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件名 4.3.2 GetNTFSStreamSize(ByVal sStreamName As String) As Long 获取指定数据流的大小,返回实际大小,执行失败返回-1 参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件名 4.3.3 AddNTFSStream(ByVal toHidName As String, ByRef percentDone As Double) As Boolean 添加附加数据流,返回执行结果。 参数列表 类型 传递方式 参数说明 toHidName String ByVal 待添加的文件路径 percentDone Double ByRef 传递一个完成百分比的参数 4.3.4 SaveNTFSStream(ByVal sStreamName As String, ByVal outFileName As String, ByRef percentDone As Double) As Boolean将指定的数据流保存为文件,返回执行结果。 参数列表 类型 传递方式 参数说明 sStreamName String ByVal 流文件名 outFileName String ByVal 保存文件路径 percentDone Double ByRef 传递一个完成百分比的参数 4.3.5 ReadNTFSStreamsName() As String() 获取文件的所有附加数据流名称,返回名称数组。 4.3.6 DeleteNTFSStream(ByVal sStreamName As String) As Boolean 删除指定数据流,返回执行结果。 参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值