实例解析蠕虫病毒的原理 (ZT)
Abstract Keywords
Citation Yao Qing-sheng.实例解析蠕虫病毒的原理 (ZT).FUTURE & CIVILIZATION Natural/Social Philosophy & Infomation Sciences,20240324. https://yaoqs.github.io/20240324/shi-li-jie-xi-ruan-chong-bing-du-de-yuan-li-zt/
转载自 实例解析蠕虫病毒的原理 (ZT)
实例解析蠕虫病毒的原理
如今对大家的电脑威胁最大的就属网络蠕虫病毒了!网络蠕虫病毒的危害之大简直令人吃惊,从大名鼎鼎的 “爱虫” 到 “欢乐时光”,再到 “红色代码”,其破坏力越来越强,因此我们有必要了解网络蠕虫病毒。
蠕虫病毒与一般的计算机病毒不同,它不采用将自身拷贝附加到其他程序中的方式来复制自己,所以在病毒中它也算是一个 “另类”。蠕虫病毒的破坏性很强,部分蠕虫病毒不仅可以在因特网上兴风作浪,局域网也成了它们 “施展身手” 的舞台――蠕虫病毒可以潜伏在基于客户机 / 服务机模式的局域网的服务机上的软件内,当客户机访问服务机,并对有毒的软件实施下载后,病毒就神不知、鬼不觉地从服务机上 “拷贝” 到客户机上了。
其实脚本病毒是很容易制造的,它们都利用了视窗系统的开放性的特点。特别是 COM 到 COM + 的组件编程思路,一个脚本程序能调用功能更大的组件来完成自己的功能。以 VB 脚本病毒 (如欢乐时光、 I Love You 、库尔尼科娃病毒、Homepage 病毒等) 为例,他们都是把.vbs 脚本文件添在附件中,最后使用 *.htm.vbs 等欺骗性的文件名。下面我们详细了解一下蠕虫病毒的几大特性,从中找到对付蠕虫病毒的方法。
一、蠕虫病毒具有自我复制能力
我们以普通的 VB 脚本为例来看看: JavaScript 代码
1 | Set objFs=CreateObject ("Scripting.FileSystemObject") |
如果我们把这两句话保存成为.vbs 的 VB 脚本文件,点击就会在 C 盘中创建一个 TXT 文件了。倘若我们把第二句改为: JavaScript 代码
1 | objFs.GetFile (WScript.ScriptFullName).Copy ( "C:\virus.vbs" ) |
就可以将自身复制到 C 盘 virus.vbs 这个文件。本句前面是打开这个脚本文件,WScript.ScriptFullName 指明是这个程序本身,是一个完整的路径文件名。GetFile 函数获得这个文件,Copy 函数将这个文件复制到 C 盘根目录下 virus.vbs 这个文件。这么简单的两句就实现了自我复制的功能,已经具备病毒的基本特征――自我复制能力。
二、蠕虫病毒具有很强的传播性
病毒需要传播,电子邮件病毒的传播无疑是通过电子邮件传播的。对于 OutLook 来说地址簿的功能相当不错,可是也给病毒的传播打开了方便之门。几乎所有通过 OutLook 传播的电子邮件病毒都是向地址簿中存储的电子邮件地址发送内同相同的脚本附件完成的。
看看如下的代码: JavaScript 代码
1 | Set objOA=Wscript.CreateObject ( "Outlook.Application" ) |
这一小段代码的功能是向地址簿中的用户发送电子邮件,并将自己作为附件扩散出去。这段代码中的第一行是创建一个 Outlook 的对象,是必不可少的。在其下是一个循环,在循环中不断地向地址簿中的电子邮件地址发送内容相同的信件。蠕虫病毒就是这样进行传播的。
三、蠕虫病毒具有一定的潜伏性
要使病毒潜伏,对于 “脚本” 语言并不是很难的一件事,因为这种语言并不是面向对象的可视化编程,自然就不存在窗体,所以可以免去隐藏窗体的麻烦。从 I love you 病毒中,很容易看出蠕虫病毒在潜伏时的特点,它们多数是修改注册表等信息以判断各种条件及取消一些限制。以下是从 I love you 病毒中提取出的部分代码: JavaScript 代码
1 | On Error Resume Next |
上面这部分代码很明显是调整脚本语言的超时设置。下面的一段代码则是修改注册表,使得每次系统启动自动执行脚本: JavaScript 代码
1 | regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32" ,dirsystem "\MSKernel32.vbs" |
其中 MSKernel32.vbs 和 Win32DLL.vbs 是病毒脚本的一个副本。怎么样,看出蠕虫病毒是怎样潜伏的吧?
四、蠕虫病毒具有特定的触发性 在这里我们以时间触发为例,使用一个很简单的判断程序,来判断时间到了没有,如果有就开始执行代码。好,我们看看程序: JavaScript 代码
1 | x=time () |
就这么简单一个程序,就可以实现特定条件触发事件的目的。当然了,病毒制作者还可以通过监视运行某个程序而触发事件,也可以响应键盘触发事件等等。
五、蠕虫病毒具有很大的破坏性
蠕虫病毒的破坏性大家都有所了解吧?我们以著名的蠕虫病毒 Jessica Worm 中的部分破坏代码为例来加以分析说明: JavaScript 代码
1 | sub killc () |
如果以前你没有亲身体验到蠕虫病毒的厉害,那么从这个小例子中,你应该知道蠕虫病毒的厉害了吧?
六、反击蠕虫病毒
我们已经了解网络蠕虫病毒的构造,现在可以逐个击破网络蠕虫病毒几大功能模块。使网络蠕虫病毒不能这么横行无忌的破坏我们的电脑及盗窃我们的资料。
1. 首先我们应该先看看如何破解病毒的破坏力最强的功能模块――病毒的破坏性。
网络蠕虫病毒不可能像传统病毒一样调用汇编程序来实现破坏功能。它只能通过调用已经编译好的带有破坏性的程序来实现这一功能。那么我们就把本地的带有破坏性的程序改名字,比如把 format.com 改成 fmt.com,那样病毒的编辑者就无发实现用调用本地命令来实现这一功能。(这方法简单易行并不影响电脑的正常使用,但也有其不足的地方,我们会在下文中会对其不足进行说明。)
2. 我们再看看如何破解病毒的潜伏性及触发性功能模块。
它是通过死循环语句完成的,且一开机就运行这程序,等待触发条件。用 Ctrl+Alt+Del 弹出关闭程序对话框方可看见一个叫 Wscript.exe 的程序在后台运行 (那样的程序不一定是病毒,但病毒也常常伪装成那样的程序),我们为了防止病毒对我们的机算机进行破坏,我们不得不限制这类程序的运行时间 (宁可错杀一千,也不可放过一个),以达到控制的效果。首先在 “开始” 菜单的 “运行” 里输入 “Wscript”,然后会弹出一个窗体。单击 “经过以下数秒终止脚本” 前面的复选框,使复选框前面打起钩,然后调整下方的时间设为最小值即可。这样可以破解一部分这样的病毒的潜伏,消除潜伏性自然触发性就破解了。
另外,由于蠕虫病毒大多是用 VBScript 脚本语言编写的,而 VBScript 代码是通过 Windows Script Host 来解释执行的,因此将 Windows Script Host 删除,就再也不用担心这些用 VBS 和 JS 编写的病毒了!从另一个角度来说,Windows Script Host 本来是被系统管理员用来配置桌面环境和系统服务,实现最小化管理的一个手段,但对于大部分一般用户而言,WSH 并没有多大用处,所以我们可以禁止 Windows Script Host。
卸载 Windows Scripting Host:
在 Windows98 中 (NT4.0 以上同理),打开 “控制面板”,打开 “添加 / 删除程序”,点选 “Windows 安装程序”,再鼠标双击其中的 “附件” 一项,然后再在打开的窗口中将 “Windows Scripting Host” 一项的 “对勾” 去掉,然后点 “确定”,再点 “确定”,这样就可以将 Windows Scripting Host 卸载。
如果你嫌麻烦,可以到 Windows 目录中,找到 WScript.exe 和 JScript.exe,更改其名称或者干脆删除。
3. 接下来就该破解病毒的自我复制能力功能模块。
大多数利用 VBscript 编写的病毒,自我复制的原理基本上是利用程序将本身的脚本内容复制一份到一个临时文件,然后再在传播的环节将其作为附件发送出去。而该功能的实现离不开 “FileSystemObject” 对象,因此禁止了 “FileSystemObject” 就可以有效的控制 VBS 病毒的传播。具体操作方法:用 regsvr32 scrrun.dll /u 这条命令就可以禁止文件系统对象。
4. 破解完了以上四个功能模块,自然第五个功能模块传播性就不攻自破了。你还记不记得以上我们所说过的破解功能模块的不足,虽然限制别人不能调用你的带有破坏性的程序,但你也别忘了,别人可以用网页拷贝的方式放入你的计算机中,再通过以上方法对你的计算机进行危害。要彻底防治网络蠕虫病毒,还须设置一下你的浏览器。方法是:在 IE 窗口中点击 “工具→Internet 选项,在弹出的对话框中选择 “安全” 标签,再点击 “自定义级别” 按钮,就会弹出 “安全设置” 对话框,把其中所有 ActiveX 插件和控件以及 Java 相关全部选择 “禁用” 即可。不过,这样做在以后的网页浏览过程中可能会造成一些正常使用 ActiveX 的网站无法浏览。有利就有弊,您还是自己看着办吧。
只要用了以上的方法就可以有效地防范蠕虫病毒,现在,你不会认为蠕虫病毒可怕了,至少,对蠕虫病毒的神秘感打消了吧?如是,则达到了我们的目的!
Address:Department of Natural/Social Philosophy & Infomation Sciences, CHINA
Biography...
转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!
Like this article? Support the author with