ITPub博客

首页 > IT基础架构 > 网络安全 > Office2K对IIS的意外影响 (转)

Office2K对IIS的意外影响 (转)

原创 网络安全 作者:worldblog 时间:2007-12-12 10:00:26 0 删除 编辑
Office2K对IIS的意外影响 (转)[@more@]

Office2K对IIS的意外影响XML:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Article last modified on 2002-9-10

The information in this article applies to:

ü  Microsoft iis 5.0

ü  Microsoft FrontPage

ü  Microsoft Outlook web Access

ü  Microsoft Exchange 2000

问题陈述:

在一个Web页面中请求打开远端Web Site上的一个文件;如果这个打开文件的请求的URL字节数超过一定数目,就会弹出一个如下所示的“输入网络口令”对话框,上面要求你输入你的身份验证信息:

ASPectratio="t">

请输入您的身份验证信息。

资源: http://..................

用户名:

密码:

将此口令保存在您的口令表中。

 

只有点击随便哪个按钮,文件内容才会显示。

这种情况对于每次打开这个文件都会重现。

你也许想不到,这是因为WebSite的IIS上安装了FrontPage服务器扩展。那这FSE又和你的打开文件的请求有什么关系?难道不是IIS在进行验证吗?让我们仔细地看一看吧。

进一步实验:

弹出对话框时的IE的连接URL类似于下面的URL:

http://XYserver/XY/isapi/XYZUVW.DLL/迁移方案.doc?ClassName=XY_ABCDEFGHIJ.KMNOPQ&session=DA3F0F1-B122-4814-AD29-0B4B6F686B40&Validate=YES&URL=http://XYZUVWABCDE/exchange/zhengyun/%E6%94%B6%E4%BB%B6%E7%AE%B1/%E8%BF%81%E7%A7%BB%E6%96%B9%E6%A1%88.doc-2.EML/迁移方案.doc

经过实验证明:

如果要打开的文档大小小于400KB左右,HTTP请求的URL长度没有影响,这时不会弹出对话框;

如果要打开的文档大小大于460KB左右,HTTP请求的URL长度会有如下影响:

HTTP请求的URL长度必须大于等于260个字节方可正常;

如果是小于260个字节,则会弹出“输入网络密码”对话框。

请注意:一个汉字被转为UTF8码后,是9个字节。

Cause:

要打开的文件的所有数据已经传送到了客户端:

首先,我们确定一点,在弹出对话框前,word文件的所有数据已经传送到了客户端。

在我们网络监视器捕获的第585个包“HTTP: Continuation of frame 5;671 bytes of data”中,我们可以看到这样的二进制数据:

 

 

 

我们可以用Notepad打开我们读取的附件《迁移方案.doc》,可以在最后的地方看到这个内容:

T U P  T O  I S U P GS?筫Hh   j i a y o n g q  j i a y o n g q 

所以,说明到了第585个包,实际上读取附件所需要的数据已经全部传到了客户端。

之后,才会弹出输入网络密码对话框。

从第594个包到第625个包,属于我们要研究的范围。

工作原理:

如果你安装了Microsoft Office 2000,或者使用了windows Update保持更新,那么你也许会注意到Windows Explorer中多了一个命名空间:WebFolders

WebFolders是一个新概念,它给Microsoft Office和FrontPage用户赋予发布与操作Web Content的能力。

在这以后,当你连接到一个web folder或时,你做的事情,和FrontPage连接远端Web站点时做的实际上是一样的。这一切是在你不知不觉中发生的。

【让我们看看WebFolders是怎么工作的】:

简单地说,当你添加一个新的Web folder(或者访问一个远端Web Site的文件)时,Explorer将发送一个POST请求给/_vti_bin/_vti_aut/author.dll,这个组件是FrontPage服务器扩展的一部分。

如果你身为一个匿名用户,你是没有权限读写这个author.dll文件的。所以服务器就会跟你进行NTLM或者Basic验证。

如果你的身份验证通过了,你将会把一个新的WebFolder映射到远端服务器的Web root。这样你在服务器上至少有了authoring权限。

【我们来给出几个要点】:

v  由于所有的对文件的访问请求都被POST给author.dll,那么对一个特定文件的访问将不会在任何Log中显示出来,所以你不会知道攻击者做了什么或哪些文件被他访问了(或安装了);

v  由于这种操作全都在80端口上工作,所以它可以很容易地绕过许多防火墙入侵检测系统

v  为了能够连接到一个WebFolder,FrontPage需要author的账号能够在服务器端有本地登录权限;

v  密码常常被存在global.asa和其他文件中,从而容易被恶意利用;

v  大多数人不知道一个默认安装的FrontPage(而没有实施安全限制)将使他们易被攻击;

【三个致命的组件】:

windows NT 和IIS上,FrontPage的安全性是依靠这三个组件实现的:

u  Admin.dll (兀,Nimda嘛);

u  Author.dll;

u  Shtml.dll

相应地,他们对应着这三种权限:

u  administration

u  authoring

u  browseing

它们的结构如下:

Web Root

  _vti_bin

  shtml.dll

  _vti_aut

  author.dll

  _vti_adm

  admin.dll

要点:

B  当POST给author.dll成功后,这个客户就能够像浏览文件系统一样,浏览web site了。由于author有full authoring权限,所以他完全可以做这样的事情:在_vti_bin目录或其他可执行目录下放至可执行文件。这时,他离拥有full admin权限只有一步之遥了!

B  另外一个有趣的地方是,由于FrontPage的安全性是基于这三个组件的ACL列表,所以如果文件系统是fat,那么就没有ACLs!从而WebFolder的连接是完全开放的!

B  FrontPage对许多系统组件有可执行权限,如msvcrt40.dll.NETapi32.dll、rpcltcl.dll、samlib.dll和wsock32.dll。

B  如果IIS被设置为进程内运行DLLs,那么一个人可以更换这三个FrontPage组件为他的特洛伊组件。这些组件完全不必要放在同一个目录下,只需要叫同样的名字。

B  一个用户的local login和password可能使用Basic验证秘密地发送给服务器,而用户浑然不知。

 

一个比较重要的消息是:

u 如果你的IIS的站点上没有安装FrontPage服务器扩展,那你的打开文件的请求将被送到/_vti_bin/shtml.exe/_vti_rpc进行验证,POST的数据是method=server+version%3a4%2e0%2e2%2e4715。

 

u 如果你的IIS的站点上没有安装FrontPage服务器扩展,那你的打开文件的请求将被送到/_vti_bin/shtml.dll/_vti_rpc进行验证,POST的数据是下面的这个method=url+to+web+url%3a4%2e0%2e2%2e4715….

 

Shtml.dll默认位于C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions40_vti_bin。

Shtml.exe默认位于C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions40isapi。

 

关于shtml.exe是干什么的,我想我只能提供这样的信息,大家也可以发表自己的意见:

RunTimeFileExtensions

当您使用 FrontPage 服务器扩展可执行的 Shtml.exe 、版本 3.0.2.1330 或更高版本时,基于 FrontPage 的实时运行组件,如默认(保存结果)表单处理程序和搜索表单,将只处理 HTML 文件或不包含 ASP 代码或 SCRIPT RUNAT=server 标记符的基于 HTML 的文件。这样可使得源代码内容、密码或其他私人信息不会向用户曝光。

可以被 Shtml.exe 处理的 HTML 或基于 HTML 的文件通过文件扩展名来标识: .htm 、 .html 、 .shtm 、 .shtml 、 .htx 、 .asp 、 .alx 、和 .asa 。如果站点服务器的配置文件将其他的文件扩展名映射为一个 HTML 或基于 HTML 的文件类型,那么这些文件也将被添加至可被 Shtml.exe 处理的文件类型中。对于 apache 和 NCSA 服务器而言,任何被映射为具有“text/html”扩展名的 MIME 类型的文件,也将添加到可被 Shtml.exe 处理的文件类型中。

请使用变量 RunTimeFileExtensions 来指定哪些可被 Shtml.exe 处理的文件类型应该被处理。这样也进一步限制了可被 Shtml.exe 处理 HTML 或基于 HTML 的文件类型。

 

【具体流程】:

下面我们结合网络监视器捕获的包,来讲解一下打开文件的请求被默默地交由FrontPage服务器扩展验证的具体流程。

(待续)


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-991632/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2406133