2024年4月11日发(作者:)

详尽了解IIS服务漏洞与安全性

其实,大家都知道,在IIS 6没有推出以前,我一直忙着对IIS 5 修修补补,也确实过

了一段提心吊胆的日子。我们完全有理由相信,经过调整后的IIS足以让我们值得信赖。

几个常见漏洞

1.缓冲区溢出

简单解释一下,缓冲区溢出主要因为提交的数据长度超出了服务器正常要求,导致服

务器 检查代码错误。而溢出的方法有可以分为:基于堆栈的溢出和基于堆的溢出。在IIS 6

以前的版本,Web服务是运行在LocalSystem账户下,当某个黑客利用缓冲区溢出的漏

洞入侵后,当然就可以执行大部分的管理员命令了。

利用该漏洞比较名的病毒是“红色代码(Redcode)”和“尼姆达 (Nimda)”。

eEye Digital Security 公司早于1996年就发现了这类漏洞的代表作HTR缓冲区漏洞。

eEye发现,IIS抵抗力十分脆弱。如果攻击传递给IIS,那么输入值将不是一串字母而 是

可以执行的系统命令。HTR文件的解释程序是将一个以.htr结尾的超长文件在中

造成输入缓冲区溢出。

我们早已用不到HTR了(笔者个人的理解),那只是早些时候,微软脚本编程用到的,

早已经被ASP技术取代。

说明:根据上文的说明我们知道一个漏洞的根源就是.htr文件与System32目录下

的ism.dll存在着关联,如果将ism.dll和.htr文件之间存在的映射关系断开,或者删

除了ism.dll,就可以解决了。

2.臭名昭著的Unicode

首先要知道什么是Unicode二次解码漏洞?打开IE,选择“查看→编码 →Unicode

(UTF-8)”,在没有创造Unicode之前,没有一个编码可以包含足够的字符来容纳数百

种的数字编码。比如我们要看一个繁体中文 (BIG5)的网页,在你的简体中文版的

Windows 系统上,没有Unicode的支持就不可能实现。

如果非法用户提交一些特殊的编码,将导致IIS错误地打开或者执行某些Web根目 录

以外的文件。那么,未经授权的用户可以利用IUSR_machinename账号访问用户目录的

任何文件。同时,我们有知道这个账号在默认情况下属于 Everyone和Users组,Windows

2000 Server默认的安全权限是“Everyone完全控制”因此任何能被这些用户组访问的

文件都可能被删除、修改或执行。

说明:可以限制网络用户访问和调用CMD命令的权限;若没必要使用Scripts和

Msadc目录,可以删除或者重新命名;还有一个问题,安装Windows NT系统时不使用

默认的WINNT路径。

3. FrontPage 服务器扩展漏洞

对于安装FrontPage服务器的网站,通常会在Web目录(缺省)下有若干个以字母

“_vti”开头的目录,正是这些目录为黑客提供了可乘之机。

我们可以从搜索引擎上搜索默认的Frontpage目录,这时我们能从引擎上返回大量的

信息。

说明:你真的需要FrontPage 服务器扩展吗?我是从来没有用过,这都是默认安装的

时候为我们带来的隐患。如果不需要,直接卸载了该服务就没问题了。

IIS加固策略的建议

你得到的网站源代码不会完全一样,而大多数程序员不会为你只提供一种类型的代码。

所以不要完全按照下面的加固列表操作,尤其在加固之前要和程序的提供商取得联系。在

得到他们确认后,修改本文中涉及到服务器扩展内容。

1.调整IIS日志

当您希望确定服务器是否被攻击时,日志记录是极其重要的。默认的日志不会为我们

搜索黑客记录提供很大的帮助,所以我们必须扩展 W3C日志记录格式,步骤如下:

★检查是否启用了日志记录,右键单击所述站点,然后从上菜单中选择启用“属性

→Web 站点→启用日志记录”复选框。

★更改日志的默认路径,黑客成功入侵一个系统后,临走时要做的一件事就是清除日

志, 如果以图形界面的远程控制软件或是从终端登录进入,我们自然是无法保护日志的。

不过,现在比较流行的日志清除工具,大多以命令行方式删除默认的W3C日志 记录,所

以可以将路径改写,达到简单保护的功能。

★从“活动日志格式”下拉列表中选择“W3C 扩展日志文件格式”。单击“属性→扩

展属性”选项卡,然后添加以下信息的记录:客户IP 地址、用户名、方法、URI 资源、

HTTP 状态、Win32 状态、用户代理、服务器 IP 地址、服务器端口。

日志记录是我们被入侵后惟一能够找到自身漏洞的地方。就比如有些人钟爱的“动网

上传文件”漏洞,如果你能在日志当中发现“HTTP GET 200(文件上传成功)”,没什

么可以辩解的,肯定是没有升级补丁或者开放了上传权限。所以说日志防护是每个管理员

必备的知识。

2.删除IIS所有默认示例

这是一个在Windows 2000和Windows Server 2003上都在安装的时候保留的内

容,因为只能从本地访问这些文件,所以这些默认的示例不会为服务器带来威胁。如果不

需要它们作为建立站时的参照以及远程 的管理帮助,可以删除它们,同时起到优化系统的

功能(需要关闭IIS服务)。

3. 删除不必要扩展映射

IIS 5被预先配置为支持如.asp这样的动态程序文件,但除了我们常用的几个文件格式

之外,还支持了本文中提到的可能造成缓冲区溢出的文件类型。IIS 接收到这些类型的文件

请求时,该调用由 DLL 处理,所以最好删除它们。

选择“WWW服务→编辑→主目录→应用程序配置”,参照下表有针对性的选择删除

对象:

IIS 6的全新奉献

我们常在网上看到关于Windows Server 2003 已经非常安全的报道,但是我们的管

理员不是每天做个补丁更新的工作吗?其实,Windows Server 2003中给我带来最直接的

感觉就是IIS 6的安全性,直到现在为止笔者确实没有发现IIS 6中有什么重大的漏洞可以

被黑客利用。

工作进程隔离(Worker Process Isolation)以及URL的授权访问,我在以前版本里

面根本就没有奢念。不仅如此,最主要的改进就是IIS本身的“默认可用性”和“默认锁定

扩展服务”。

当把服务器升级到Windows Server 2003的时候,如果你没有运行IISLockdown工

具,服务器竟然禁止我们提供Web服务。

由此可见,我们真的可以再也不用“提心吊胆”了。