软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Office2K对IIS的意外影响

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Office2KIIS的意外影响

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字节数超过一定数目,就会弹出一个如下所示的“输入网络口令”对话框,上面要求你输入你的身份验证信息:

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

资源: 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 OfficeFrontPage用户赋予发布与操作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         由于所有的对文件的访问请求都被POSTauthor.dll,那么对一个特定文件的访问将不会在任何Log中显示出来,所以你不会知道攻击者做了什么或哪些文件被他访问了(或安装了)

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

v         为了能够连接到一个WebFolderFrontPage需要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       POSTauthor.dll成功后,这个客户就能够像浏览文件系统一样,浏览web site了。由于authorfull authoring权限,所以他完全可以做这样的事情:在_vti_bin目录或其他可执行目录下放至可执行文件。这时,他离拥有full admin权限只有一步之遥了!

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

B       FrontPage对许多系统组件有可执行权限,如msvcrt40.dllnetapi32.dllrpcltcl.dllsamlib.dllwsock32.dll

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

B       一个用户的local loginpassword可能使用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 Files\Common Files\Microsoft Shared\Web Server Extensions\40\_vti_bin

Shtml.exe默认位于C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\isapi

 

关于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服务器扩展验证的具体流程。

(待续)




相关文章

相关软件