《本文转译自 Microsoft Security Research & Defense 博客文章 “New vulnerability in IIS5 and IIS6” 》

今天下午,MSRC 发布了 安全通报 来描述 IIS FTP 服务中新发现的漏洞,该漏洞会导致不可信用户的远程代码执行。点此查看 安全通报的详细信息

漏洞概述

在列出一个特制的长目录名时,该漏洞会表现为 FTP 服务中的栈溢出。FTP 服务器需要赋予不可信用户登录和创建这样一个特制的长目录名的权限,才会易受攻击。如果攻击者能够成功利用这个漏洞,他们就能在运行 FTP 服务的本地系统上执行代码。

有风险的配置

漏洞存在于 IIS5.0(Windows 2000)、IIS5.1(Windows XP)和 IIS6.0(Windows Server 2003)中;IIS7.0(Windows Vista、Windows Server 2008)没有漏洞。IIS6 的风险较小,因为它是用 /GS开关 来构建的,当在攻击者代码执行前检测到溢出时,会自动结束程序来保护服务免受攻击。我们尚未发现能够绕过 /GS 保护 的针对这个漏洞的攻击代码。

同时,请记住,只有允许不可信用户登录和随意创建目录的服务器才会被攻击。

保护服务器

本次通报列出了几个在正式安全更新发布前可以保护服务器免受漏洞攻击的可选方案。这些方案的最终目的都是禁止不可信用户对 FTP 服务的写访问。通报中提供的可选方案包括:

  • 关闭不必要的 FTP 服务
  • 禁止使用 NTFS ACL 创建新目录
  • 设置 IIS 禁止匿名用户的写操作

IIS5 中,禁止写访问的 IIS Manager 设置对话框如下所示:

clip_image002

IIS 小组的 FTP 最佳实践指导可以通过如下链接访问:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/7b4bdad5-9a0a-4bf6-8b00-41084b783e20.mspx?mfr=true

检测攻击

我们希望拥有基于网络的检测和保护功能的 MAPP合作伙伴 能够识别和阻止潜在的攻击。例如,Snort 规则已经可以通过如下链接访问:
http://www.snort.org/vrt/docs/ruleset_changelogs/changes-2009-09-01.html.

也可以通过检查日志文件来检测攻击。攻击会使用几个命令,并包含长字符串参数。FTP 服务默认会记录命令日志。下面的例子是一个内部服务器上的样本日志条目,给出了证明上述概念的代码。

#Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 1111-01-01 22:45:13
#Fields: time c-ip cs-method cs-uri-stem sc-status
22:45:13 169.254.117.152 [1]USER anonymous 331
22:45:13 169.254.117.152 [1]PASS password 230
22:45:13 169.254.117.152 [1]MKD JUNK@ÿàC~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñú~ñúEEEE›±ôw~ñúHHHHIIII~ñúJKKKécþÿÿNNNN 257

默认情况下,可以在 c:\winnt\system32\logfiles\MSFTPSVC1 中找到日志文件。如果目前把日志文件和易受攻击的服务放在相同的机器上,建议你重新配置服务把日志文件存放到别的机器上,以防攻击者清除日志。

我们要感谢 IIS 小组的 Wade Hilmo 和 Nazim Lala 给这篇博客日志提供信息。同时还要感谢 MSRC Engineering 小组的 Brian Cavenah 在调查研究中给予的帮助。感谢大家!

- Bruce Dang and Jonathan Ness, MSRC Engineering team

*帖子内容是“按目前情况”,不作任何保证,且不赋予任何权利*