none
打造安全主机 加固脆弱的IIS服务 RRS feed

  • 常规讨论

  • 难道IIS(Internet Information Services)就真是“脆弱”的吗?难道拥有全球市场排名第一的Apache就坚不可摧?其实这些问题只是我们对服务器安全问题的曲解,在IIS 6没有推出以前,我一直忙着对IIS 5 修修补补,也确实过了一段提心吊胆的日子。我们完全有理由相信,经过调整后的IIS足以让我们值得信赖。

      解释几个常见漏洞

      1. 缓冲区溢出

      简单解释一下,缓冲区溢出主要因为提交的数据长度超出了服务器正常要求,导致服务器检查代码错误。而溢出的方法有可以分为:基于堆栈的溢出和基于堆的溢出。在IIS 6以前的版本,Web服务是运行在LocalSystem账户下,当某个黑客利用缓冲区溢出的漏洞入侵后,当然就可以执行大部分的管理员命令了。

      利用该漏洞比较名的病毒是“红色代码(Redcode)”和“尼姆达(Nimda)”。eEye Digital Security 公司早于1996年就发现了这类漏洞的代表作HTR缓冲区漏洞。eEye发现,IIS抵抗力十分脆弱。如果攻击传递给IIS,那么输入值将不是一串字母而是可以执行的系统命令。HTR文件的解释程序是将一个以.htr结尾的超长文件在ism.dll中造成输入缓冲区溢出。

      我们早已用不到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 服务器扩展吗?我是从来没有用过,这都是默认安装的时候为我们带来的隐患。如果不需要,直接卸载了该服务就没问题了
    2009年5月31日 9:14