黑客攻防技术内幕-安全防入侵与防病毒基础(4)
3.3 病毒防护修复
从广义上讲,病毒可以归为2类:引导区病毒和文件型病毒。
1. 引导区病毒
引导区病毒隐藏在硬盘或软盘的引导区(Boot区),当计算机从感染了引导区病毒的硬盘或软盘启动,或是当计算机从受感染的软盘里读取数据时,引导区病毒就开始发作。一旦它们把自己复制到计算机的内存里,就会感染其他磁盘的引导区或是通过网络传播到其他计算机上。
第一个真正感染个人电脑的病毒Brain就是一个引导区病毒。Brain及其后续者使用了隐藏技术,使它们可以躲过当时的大多数病毒扫描软件。尽管现在软盘被当作病毒感染介质的情况已经越来越少,但引导区病毒依然是一种显著的感染威胁。更加复杂的引导区病毒可以感染计算机的主引导区记录(MBR),或者进化成为multi-partite病毒。
2. 文件型病毒
文件型病毒寄生在其他文件中,常常通过对它们的编码加密或是使用其他技术来隐藏。文件型病毒把用来启动主程序的可执行命令劫夺过去,当作它自己的运行命令。该病毒还常常会把控制还给主程序,为的是让计算机系统显得正常。
如果运行了感染病毒的程序文件,文件型病毒就会被激发。当病毒运行的时候,它可以执行大量的操作。通常它进行自我复制,并且附着在系统的其他可执行文件上,同时在上面留下标记,以后不再感染已经带毒的文件。
臭名昭著的W32/CIH.SPACEFILLER病毒(简称CIH病毒)是一个复杂的文件感染病毒,它可以改写计算机的BIOS。CIH病毒使用大量的诡计来隐藏:把自己分裂成几个部分,隐藏在某些文件中的空闲字节里,这样不会改变文件长度。
通常,文件型病毒会感染扩展名为.exe、.com、.dll、.vxd等的可执行文件,还有微软的Word文件( .DOC)和Excel文件( .XLS)和一些模板文件。但是在最近的几年中,新的文件感染性病毒在范围和种类上都有巨大的增长,已经几乎可以感染任何一种文件。
3. 宏病毒和脚本病毒
宏病毒是一种特殊的文件型病毒。宏病毒是在一些软件开发商开始在他们的产品中引入宏语言,并允许这些产品生成载有宏的数据文件之后出现的。例如,微软的Office产品系列包括很多的微软Visual Basic程序语言,这些语言使Microsoft Word和Microsoft Excel可以自动操作模板和文件的生成。第一个宏病毒Concept是在微软刚刚在Word中引入宏之后立刻出现的。
宏的功能很强大,所以相当多的软件包中都引入了宏,但同时它也吸引了大量的病毒制造者。宏病毒和脚本病毒在传播病毒中占有绝对多数,只是在最近才开始让位于通过E-mail和因特网传播的新生代病毒“蠕虫”,即脚本病毒。
脚本病毒依赖一种特殊的脚本语言(比如VBScript、JavaScript等)来起作用,同时需要主软件或是应用环境能够正确地识别和翻译这种脚本语言中嵌套的命令。正如病毒mIRC那样,只要主应用环境能够理解这种语言并且执行其功能,实际的间接感染源只需要包含一个简单的文本文件就可以起作用了。
脚本病毒在某些方面与宏病毒类似,但脚本病毒可以在多个产品环境中运行。像VBScript这样的普通语言可以在网络服务器和浏览器上运行,也可以在微软的Outlook里运行,还能在其他所有可以识别和翻译它的产品中运行。脚本语言比宏语言更具有开放终端的趋势,这样就使病毒制造者对被感染的计算机有更多的控制力。
4. 多重分裂病毒
近几年来,引导区病毒和文件型病毒之间的界限变得相当的模糊。许多病毒既能感染文件,也可以感染磁盘引导区。多重分裂病毒就是这样的病毒,它可以通过被感染的文件传播,也可以在硬盘或软盘运行的时候感染它们的引导区。现代病毒很少只使用一种方法,大多都使用以上两种,有的还使用了其他的方法。
5. 网络蠕虫程序
网络蠕虫程序是一种通过间接方式而不是直接复制自己来传播的恶意软件。有些网络蠕虫拦截E-mail系统并向世界各地发送自己的复制品,有些则出现在高速下载站点中,当然还有些同时使用这两种方法与其他技术一起传播。
蠕虫程序与病毒一样具有破坏性,传播速度比病毒还要快。蠕虫的制作者经常利用用户的心理因素,诱使用户下载并运行蠕虫。臭名昭著的“美丽莎”病毒,就是一种使用E-mail系统以惊人速度传播的蠕虫程序。它的传播速度之快史无前例,成千上万的病毒感染造成许多邮件服务器先后崩溃,人们为清除它耗费了大量的精力。
6. 病毒的特征代码
大部分的防毒软件都使用各自的特征代码来查找某些固定的病毒。特征代码是区分病毒代码与其他文件或数据的一段特殊的字节。这段代码有时是病毒内的一种数据类型,有时是加密法或者解密法,或者是其他的识别特征。有些病毒使用一种明显的信号在被它们感染的文件上挂上类似“请勿打扰”的标志,否则病毒就会重复感染文件并使文件长度无限变大,这样很容易被发觉。
有些病毒会把特征代码加密以防被检测出来。这种病毒在每次自身复制时,都可以改变特征代码或者对其进行变异来躲避检测,还有些病毒使用特征代码加密技术来进行变形。变形病毒曾经一度使很多有名的反病毒软件都束手无策,但后来人们研究发现,病毒在变形的时候通常会留下蛛丝马迹,这使它们在优秀的杀毒软件面前变得不堪一击。 这种变形病毒有一个很好的例子就是Hare病毒。Hare病毒现在还很稀少,它可以通过软盘的引导区或者受感染文件的一部分传播。在文件处理的时候它将自己载入内存,并覆盖一部分硬盘主引导记录。Hare病毒就使用了变形技术来企图逃过病毒扫描。制毒者还时常使用某些隐藏技术来保护病毒不被发现。这类技术包含简单的重定向功能,能够在检查磁盘扇区时显示无毒的假象,而事实上病毒正躲藏在我们想要检查的扇区里等待机会发作。它们还使用更为高级的技术使病毒躲藏在文件、未使用过的或未格式化的硬盘空间里,或者操作系统通常不会接触到的地方。
所有类型的病毒都有可能使用隐藏技术,但是引导区病毒与文件型病毒使用的更多 一些。
3.3.1 概念(又称尼姆达)蠕虫病毒
1. 尼姆达(Nimda)病毒的危害
Nimda病毒爆发后,很多用户十分关心这个据说会比“红色代码”造成更大损失的病毒会对被感染计算机系统造成什么样的破坏。从目前来看,其发作后只是针对计算机系统的漏洞进行自我复制和传播,从而降低计算机运行速度和引起网络阻塞,目前还没有诸如对文件操作等恶性破坏。但用户千万不要因为看到Nimda病毒目前对系统没有什么恶性破坏而掉以轻心,Nimda病毒可能给用户造成的直接扟失是它可以把传染计算机的C盘设为无密码的完全共享,这样用户文件就会被恶意的攻击者复制、删除和修改。
2. 尼姆达(Nimda)病毒的传播方式
Nimda病毒会通过E-mail传播,当用户邮件的正文为空,似乎没有附件,实际上邮件中嵌入了Nimda病毒的执行代码,当用户用Outlook、Outlook Express(没有安装微软的补丁程序包的情况下)收邮件,在预览邮件时Nimda病毒就已经在不知不觉中运行了。Nimda病毒执行时会将自己复制到临时目录,然后再在临时目录中的副本中运行。Nimda病毒还会在Windows的System目录中生成load.exe文件,同时修改System.ini中的shell从shell=explorer.exe改为explorer.exe load.exe-dontrunold,使Nimda病毒在下次系统启动时仍然被激活。另外,在System目录下,Nimda病毒还会生成一个副本riched20.dll。它会把Windows系统中存在的riched20.dll目录覆盖。
而Nimda病毒复制到临时目录下的副本(有两个文件,文件名为???????.tmp.exe),则会被Nimda病毒在系统下次启动时将他们删除(修改Wininit.ini文件)。
为了通过邮件将自己传播出去,Nimda病毒使用MAPI函数读取用户的E-mail并从中读取SMTP地址和E-mail地址。Nimda病毒还在Windows的临时目录下生成一个eml格式的临时文件,大小为79 225字节,该文件已经用BASE64编码将Nimda病毒包含进去。然后,Nimda病毒就用取得的地址将带毒邮件发送出去。
Nimda病毒的第2种传播途径就是用跟CodeBlue极其相似的方法,即利用IIS的UNICODE漏洞进行传播。
Nimda病毒的第3种传播途径是通过局域网的共享资源传播到其他Windows系统下。
另外,Nimda病毒运行时会利用ShellExcute执行系统中的一些命令,如NET.EXE、USER.EXE、SHARE.EXE等命令,将Guest用户添加到Guests、Administrators组(针对Windows NT/2000/XP)并激活Guest用户,然后将C盘根目录共享。
如果计算机里有以上所述的一些文件或是执行了空的eml格式文件那也证明该计算机中有了Nimda病毒。
3. 尼姆达(Nimda)清除方法
注意:
在处理之前请大家必须切断一切网络连接。
● Windows NT/2000/XP 系统中的手工清除方法
(1) 将IIS服务Scripts目录中的TFTP*.exe和ROOT.exe文件全部删除。
(2) 当受到尼姆达病毒的入侵后,系统中会出现一些新的共享,应该将其共享属性去掉。
(3) 查看一下administrators组中是否加进了guest用户,如果有则应将guest用户从administrators组中删除。
(4) 使用杀毒软件进行查杀,彻底清除Nimda病毒.
● Windows 9x/Me 系统中的手工清除方法
(1) 重新启动机器,按F8键进入启动菜单并选择Safe mode命令,进入安全模式。
(2) 再切换到C:\Windows\temp目录,删除文件长度为57 344字节的文件。(如果temp目录里有许多文件,又不方便查找,那么就按Ctrl+A快捷键全部选中,然后按Shift+Delete快捷键彻底全部删除,这对系统基本没有什么大的影响,temp只是一个系统存放临时文件的目录。)
(3) 然后再进入系统C:\Windows\System目录中查看Riched20.DLL的文件大小,系统的正常文件大小应该在100KB以上,而Nimda病毒的副本大小为57 344字节,如果有长度为57 344字节的Riched20.DLL,则删除。
(4) 再打开C:\Winnt目录里的System.ini文件,在[Load]中如果有一行shell=Explorer.exe load.exe -dontrunold,则改为shell=Explorer.exe。
(5) 把C盘的完全共享取消掉。
(6) 搜索整个硬盘,把所有Readme.eml文件删除,在没有对系统进行免疫修复前,请不要打开任何Readme.eml文件,按Ctrl+A快捷键选取全部的Readme.eml文件,然后按Shift+Delete快捷键将其彻底全部删除(注:如果单击了单个Readme.eml文件,Nimda病毒将利用系统漏洞重新运行)。
(7) 再接搜索整个硬盘,把所有*.eml文件删除,在没有对系统进行免疫修复前,请不要打开任何*.eml文件,按Ctrl+A快捷键选取全部的*.eml文件,然后按Shift+Delete快捷键将它彻底全部删除;(注:如果单击了单个*.eml文件,Nimda病毒将利用系统漏洞重新运行)。
● 工具清除Nimda病毒
尼姆达—— 金山毒霸病毒专杀工具,如图3-11。
文件名称:Duba_Concept.exe
文件大小:99KB
系统平台:Windows 95/98/ME/2000/NT
专杀工具下载:http://www.iduba.net/download/other/tool_010919_concept.htm
图3-11 查杀尼姆达工具
下面介绍该工具的使用方法。
(1) 启动Windows操作系统(Windows 95/98/Me/NT)
(2) 切断一切网络链接(重要!)
(3) 运行Duba_Concept.exe程序,然后根据Duba_Concept.exe上的设置选择路径进行清除。默认情况下,在检查硬盘上的文件前,Duba_Concept会先扫描内存中是否存在Nimda病毒,如果存在,则会在内存中清除病毒。
(4) 随后,Duba_Concept程序将根据用户的选择进行清除工作,对Windows下可见的所有驱动器的全部文件进行查毒,并自动清除所找到的Nimda病毒。
(5) 如果用户计算机上装有IIS,请单击界面上的【微软公司安全升级】的链接,Duba_Concept会自动指引用户下载微软的补丁程序运行补丁程序后重启系统,即可在将来免除Nimda病毒的攻击。
(6) 至此,Nimda病毒就从用户的计算机里完全被清扫出去了。
● 尼姆达(Nimda)免疫方案:
• 打上微软的官方补丁程序SP2
微软官方已经为Windows 2000系统目前发现的漏洞做了补丁程序,可以弥补绝大部分的Windows 2000漏洞。SP2共100MB左右,可以到以下网址下载:
http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp
• 使用天网个人版防火墙的修补程序
在天网个人版防火墙中提供了天网安全检测修补系统,可以检查出Windows中严重的系统漏洞并自动修复它。目前的天网个人版(测试版)中所带的漏洞检测与修复系统已经可以检查和修复Nimda病毒赖以传染和传播的IE浏览器漏洞,经过漏洞检测与系统修复之后,Nimda病毒就无法在用户机器上自动运行了。
• 将WSH(Windows Scripting Host)功能删除可预防此类病毒的破坏
单击【开始】→【设置】→【控制面板】→【添加/删除程序】命令→【WINDOWS安装程序】对话框中打开【附件】列表框,取消对【组件】中的Windows scripting Host(约占空间1.1MB)的选择,单击【确定】即可,不过这样可能会影响一些功能的使用。