OE真的很受伤──OE攻防谈
网络与通信
编者按:微软的Outlook Express(OE)是大家最常用的邮件客户端软件,同时已经成为黑客们的主要攻击目标,这使得微软公司丢尽了颜面──OE真的很受伤!本文就OE谈谈关于它的一些危险漏洞及其解决办法。
一、OE下的VBS病毒
VBS病毒最普遍的传播途径就是通过OE。它利用MAPI(函数库)的Sendmail函数向OutLook地址簿中的所有邮件地址发送染毒的E-mail,染毒邮件以附件、HTML格式正文、隐藏在HTML格式页面中Script程序等方式构成。VBS病毒还可通过IRC客户端软件mIRC或PIRCH进行传播,这种传播方式主要是通过修改mIRC、PIRCH安装路径中的script.ini文件,使中毒用户连接到IRC通道时向同一通道中的其他用户传播VBS病毒。
通常情况下,VBS病毒会搜索本地及局域网中具有特定扩展名的文件(如.vbs、.vbe、.js、.css、.jse、.sct等等),并用VBS病毒代码覆盖原文件达到感染的目的。
利用OE传播的病毒基本上都是由VBScript编写的,其自我复制的原理是利用程序将本身的脚本内容复制一份到临时文件中,然后在传播环节将它作为附件发送出去。
Set so=CreateObject("Scripting.FileSystemObject")
so.GetFile(WScript.ScriptFullName).Copy("C:\dateiname.vbs")
上面两行程序就可以将病毒自身复制到C盘根目录下dateiname.vbs这个文件中。
从上面所讲的例子中不难看出,在它们的源代码中,都用到了一个重要的对象:WScript。
WScript:
全称Windows Scripting Host,它是Win98新增加的功能,属于一种批次语言/自动执行工具。它所对应的程序“C:\Windows\WScript.exe”是一个脚本语言解释器,正是它使得脚本可以被执行(就像执行批处理程序一样)。
防范方法:
1.通用规则
①发现邮箱中出现不明来源邮件时应小心谨慎对待,尤其是带有可执行附件的邮件,如.exe、.vbs、.js等。
②尽量关闭邮件“预览”特性。
③对于利用文件扩展名做文章的病毒,应不要隐藏系统中已知文件类型的扩展名。操作方法:选择“控制面板→查看→文件夹选项→查看→文件和文件夹”,去掉“隐含已知文件类型的扩展名”前的“√”。当然Windows系统下对于一些特别的文件扩展名无法正常显示,比如“垃圾虫ScrapWorm”利用的“SHS”扩展名称,具有该扩展名的文件,即使用户使用了以上的方法也不能显示出扩展名,解决的方法是:在注册表[HEY_CLASSES_ROOT\ShellScrap]主键下,有一个键值“NeverShowExt”,它是导致“.shs”文件扩展名无法显示的罪魁祸首。删除这个键值,你就可以看到“.shs”扩展名了。
④收到新邮件时尽量使用“另存为”选项为邮件做备份(注意分类储存,不要在同一目录下存放所有邮件),此时还可以为邮件起一个更一目了然的名字,既备份,又方便管理查阅,一举两得。
2.防止病毒发作
禁止VBScript(JScript)文件执行的几个办法:
①在“我的电脑→工具→文件夹选项”对话框中,点击“文件类型”,删除以VBS、VBE、JS、JSE为后缀名的文件与应用程序的映射(图1)。

②在Windows目录中,找到WScript.exe和JScript.exe,将其更改名称或者删除。
③卸载Windows Script Host。在Win98中(WinNT 4.0以上同理)中,打开“控制面板”,再打开“添加/删除程序”,点选“Windows安装程序”,用鼠标双击其中的“附件”,然后在打开的窗口中将“Windows Scripting Host”一项的“√”去掉,如(图2)所示,然后点“确定”,再点“确定”,这样就可以将Windows Scripting Host卸载了。

3.防止病毒“复制”
VBScript(JScript)中的磁盘文件和目录操作几乎都是通过FileSystemObject对象来实现的,禁止FileSystemObject可以使用以下三种方法:
①修改注册表,将FileSystemObject改成一个任意的名字,只有知道该名字的用户才可以创建该对象,该键值位于:[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}\ProgID]@="Scripting.FileSystemObject"。
②运行Regsvr32 scrrun.dll /u,所有的用户将无法创建FileSystemObject。
③运行cacls %systemroot%\system32\scrrun.dll /d guests,匿名用户(包括IUSR_Machinename用户)无法使用FileSystemObject。我们还可以对ASP文件或者脚本文件设置权限(必须在NTFS文件格式下),通过验证的非Guests组用户可以使用FileSystemObject。
4.防止病毒“传播”
①禁止OE的自动收发邮件功能
设置方法:点击“工具→选项”,选择“常规”选项卡,取消“启动时发送和接收邮件”选项和“每隔XX分钟检查一次新邮件”选项(图3)。然后再选择“发送”选项卡,取消“立即发送邮件”选项(图4)。


②在“通讯簿”中尽量不要设置太多的名单。
③OE防毒妙招
在OE的通讯簿中加入名为“!0000”的联系人。如果感染病毒,OE从通讯簿中首先选取“!0000”,而“! 0000”是一个无效地址,发送失败,OE就会放弃继续发送,从而有效地防止病毒的传播。
5.安装反病毒软件
特别是带有邮件监控功能的反病毒软件,对电子邮件进行实时查杀,确保安全。
二、OE浏览信件硬盘会被格式化
使用OE还存在另一种危险──浏览信件硬盘会被格式化!如果哪天你收到的E-mail中含有用VBScript编写的恶意HTML代码,只要你一浏览该信件,你的硬盘就会被格式化!假设你收到HTML格式的信件,有如下代码(以下是其主要部分):
只要你打开该邮件,你的D盘就被格式化了!如果在上面这句中把“D:”换为“E:”,格式化的就是E盘了!语句中的“format”也可换为“deltree”等命令,如变为这样:WSHShell.run("start.exe/m deltree/y C:\Windows\System\*.*"),就会删除中招者C:\Windows\System文件夹下的所有文件!
防范方法:
1.将Windows系统里比较危险的程序改名,比如format.com、deltree.exe等。你可以将它们改为一些容易记的名字,如format.com改为format.com.old。
2.尽量关闭邮件“预览”特性。
3.运行IE,点击“工具→Internet选项→安全→Internet区域的安全级别”,把安全极别由“中”改为“高”(图5)。然后,点击“自定义级别”按钮,在弹出的窗口中,禁用“对标记为可安全执行脚本的ActiveX控件执行脚本”选项(图6)。 接着,在此窗口中找到“脚本→活动脚本”,选择“禁止”,并按“确定”(图7)。



4.卸载Windows Script Host。方法前面已经讲过。
5.在“我的电脑→工具→文件夹选项”对话框中,点击“文件类型”,删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射。
三、OE预览邮件会中木马
因为OE存在错误的MIME头漏洞,利用该漏洞制作的邮件,木马可用Base64方式编码隐藏在邮件的正文中,只要你预览该信件,木马就会悄悄地在后台运行,中了木马会怎样,我想大家都会知道吧!
防范方法:
1.最好的办法是不使用IE和OE。可以用Netscape等其他浏览器代替IE,用Foxmail等其他电子邮件客户端软件代替OE。如果非要用,建议按下面的方法进行操作:
①运行IE,点击“工具→Internet选项→安全→Internet区域的安全级别”,把安全极别由“中”改为“高”。
②接着点击“自定义级别”按钮,在弹出的窗口中,禁用“对标记为可安全执行脚本的ActiveX控件执行脚本”选项,禁用IE的“活动脚本”和“文件下载”功能,禁用所有的ActiveX控制和插件。
③在资源管理器中点击“查看→文件夹选项→查看”,将“隐藏已知文件扩展名”前面的“√”取消(图8)。

④禁止以Web方式使用资源管理器(图9)。

⑤永远不直接从IE浏览器中选择打开文件。
2.禁止邮件预览属性,以OE和Foxmail为例:在OE中点击“工具”菜单中的“选项”,打开“选项”对话框,点击“阅读”标签,将如(图10)0所示的地方不选即可;在Foxmail中右键点击你的账户,选择“属性”,找到“字体与显示”,将“使用嵌入式IE浏览器显示HTML邮件”前面的“√”取消(图11)1。


3.不要受陌生人的诱惑打开别人给你的URL。如果确实想看,可以通过一些下载工具把页面下载下来,然后用记事本等一些文本编辑工具打开查看源代码。
4.微软公司为该漏洞提供了一个补丁,赶快到下面所列出的地址去看看吧:http://www.microsoft.com/windows/ie/download/critical/q290108/default.asp。
四、用OE收发邮件可能被别人骗收
如果你在使用OE,那还存在另外一种危险:别有用心的人可以通过给你发一封邮件,使你发给朋友的信件发到他那里!
实验:假设你和你朋友及攻击者的信箱分别为a@hotmail.com、b@hotmail.com、c@hotmail.com,现在攻击者要让你发给你朋友的信件发到他的信箱,他会怎么做呢?首先,他会给你发一封如下所示信件:
From: "b@hotmail.com"
Reply-To: "b@hotmail.com"
To: a
Subject: how to catch you on Friday?
然后,他将此信发到你的信箱a@hotmail.com。在你看来,收到的这封信,就是你朋友从b@hotmail.com这个信箱发来的,看到来信你当然要立即回信了,此时,OE地址簿会将b@hotmail.com作为名字和c@hotmail.com地址对应起来,如果你在“收件人”栏中直接敲进地址b@hotmail.com,Outlook会将地址解释成"b@hotmail.com"
防范方法:
现在要说说如何防止邮件被骗收了。其实这个漏洞只存在于OE中,并且只对OE 5.5 SP1及其以前版本有效。因此如果你不使用OE或使用OE5.5 SP1以上版本就不会有事。再不然,你可以将“自动将我的回复对象添加到通讯簿”(英文版对应为“Automatically put people I reply to in my address book”)前面的“√”去掉,就可以放心大胆地使用OE了。
五、OE邮件可能被窃
利用OE的“标识”功能,可以添加、管理与切换标识,达到多用户之间邮件互相保密的目的。如果在标识上加有密码,就可阻止他人进入而保护自己的信件。但这一功能的安全性真的这么可靠吗?看过下面的几行文字后马上你就会找到答案了。
首先,在OE中给每一用户建立一个标识,并设置好密码。然后,我们来做个小小的试验:打开“我的电脑”或“资源管理器”,按照下面这个路径(假设你的操作系统安装在C盘Windows文件夹下):C:\Windows\Application Data\Identities\{6E4779C2-0AD8-11D6-8363-B345645BDC40}\Microsoft\OE,一层层地打开文件夹,这就是OE默认的存储邮件的文件夹,在该文件夹下,“收件箱.dbx”、“发件箱.dbx”、“已发送邮件.dbx”、“已删除邮件.dbx”、“草稿.dbx”等文件清清楚楚的展现在我们眼前(图12)2!请注意,在你的电脑中,你看到的OE默认的存储邮件的路径可能与本文稍有不同,具体说来就是那个“{}”里面的内容有可能不相同。OE建立了几个标识就有几个名称为一串数字并带有“{}”的文件夹,默认情况下这些标识对应的文件夹都在C:\Windows\Application Data\Identities下。

既然我们可以看到C:\Windows\Application Data\Identities下各个标识对应文件夹下的文件,那么就应该把别的标识下的文件拷贝到自己的OE标识下。比方说,把别人的“收件箱.dbx”文件拷贝出来,并覆盖掉你这里的“收件箱.dbx”。打开OE试试,天,他(她)收到的信件都到我的收信箱里了!
上面我们主要利用了拷贝别人标识下文件的方法,其实还有更简单的方法可以让你在两分钟内破了别人的标识!具体步骤是:在“开始→设置→控制面板→用户”中增加一个新用户,然后在“开始/注销×××”中将当前的用户注销,并以新用户登录Windows。然后运行OE,切换标识试试,密码框全变成了灰色,现在你想进哪个标识都可以了!
(文中所有“标识”依照现行文字规范标准,应改为“标志”,希望微软公司能够改正)
六、OE让联系人地址暴露
除了上面所说的危险,在公用环境下共用OE还存在另外的危险──邮件联系人地址暴露!虽然不如上面提到的邮件泄漏那么严重,但是自己的邮件联系人地址被别人得到也不好吧?万一他利用这份邮件联系人地址干坏事那影响可就大了!
请和我一起做这么个实验:在OE的主窗口中,点击“文件→导入→通讯簿”(图13)3,会弹出文件对话框,从中找到C:\Windows\ApplicationData\Microsoft\Address Book,会看到几个WAB文件(图14)4。选中其中一个,选择“打开”,这个通讯簿文件中的内容就全在OE的窗口中显示出来。如果重复这一操作,把Address Book文件夹中的所有后缀名为WAB的文件全导入,则本机的所有联系人的地址就全在掌握之中了。


★五、六小节中漏洞的防范方法:
从前面的阐述中不难看出,OE泄密的关键就在于存储邮件的文件夹被找到,导致攻击者可以随意窃取你的邮件和联系人地址。如果对存储邮件文件夹和Address Book文件夹做一番处理,那么安全系数就会大大提高。
具体步骤:
1.在OE的主窗口菜单中点击“工具→选项→维护”,会出现如(图15)5所示窗口,单击窗口中的“存储文件夹”按钮,会弹出“存储位置”对话框(图16)6,点击“更改”按钮,在弹出的对话框中选中事先建好的用来存邮件的文件夹,最好起个不会引起别人注意的名字,如D:\Windows(图17)7,再确定。然后重新启动OE,以后所有收发的邮件就全在D盘的Windows文件夹下了。



2.接下来找到D:\Windows文件夹,用右键点击,在弹出的菜单中选“属性”,再选中“隐藏”后确定(图18)8。

3.用WinZip对D:\Windows文件夹进行压缩,得到Windows.zip文件,用WinZip打开该文件,选择“选项”菜单中的“密码”(图19)9,在弹出的对话框中设置访问口令(图20)0,然后点击“确定”退出即可。


如果邮件不多,存储邮件文件夹和Address Book文件夹合起来不大的话,可把它们转移到软盘上。使用时插入软盘,用后取出,这样再也不怕泄密了。
假如你是在公用的电脑上收发邮件,建议还是不使用OE,最好用Web方式收发信,收发信完毕将浏览器中的历史记录清除,具体操作步骤为:右击桌面上的“Internet Explorer”图标,再点击“属性→清除历史记录→确定”(图21)1,这样就可以放心地离开电脑了。

如果非要使用OE不可,那么前面所说的方法基本上就用不上了。此时建议对自己的标识进行简单的加密,比方说用前面提到的WinZip对相应的文件夹进行压缩,并对压缩后的ZIP文件加访问口令,这样你的邮件就会安全很多。