关于MS11-004:解决IIS FTP服务漏洞
今天我们发布了MS11-004,以解决Microsoft FTP服务中的一个漏洞,该服务是Internet Information Services(IIS)的一个可选组件。在本博客中,我们将涵盖此漏洞的一些额外技术细节。
首先,我们需要澄清漏洞位于IIS的FTP服务组件中。FTP服务是IIS的可选组件,默认情况下未安装。
可能会令人困惑的一点是FTP服务版本与IIS版本之间的差异。例如,Windows Vista和Windows Server 2008上随IIS 7附带的FTP服务版本是FTP 6.0,而不是FTP 7.0。然而,您也可以从Microsoft下载中心为IIS 7安装FTP 7.0/7.5作为可选组件。如果您不确定正在运行的FTP服务版本以及系统是否易受攻击,请使用以下过程来确定是否需要为系统安装更新。
漏洞影响范围
- 如果未启用FTP服务,则系统不易受攻击。
- 如果启用了FTP服务:
- Windows Server 2003上的IIS 6:不易受攻击
- Windows Vista和Windows Server 2008上的IIS 7:默认情况下,IIS 7使用FTP 6.0,不易受攻击。但是,如果您从Microsoft下载中心安装了IIS 7的FTP 7.0/7.5包,则易受攻击。
- Windows 7和Windows Server 2008 R2上的IIS 7.5:随IIS 7.5附带的FTP 7.5易受攻击。
自动化检测方法
请注意,还有一种方法可以自动化此过程。FTP 6.0使用与FTP 7.0/7.5不同的服务名称运行。因此,思路是检查“ftpsvc”服务(FTP 7.0/7.5的服务名称)是否正在运行。在我们之前的SRD博客评估IIS FTP 7.5未经身份验证的拒绝服务漏洞中,我们已经讨论了这种方法。这里再次列出:
用户可以通过命令提示符(以管理员身份运行)查询IIS FTP服务的状态:
- 按下“Windows”+“R”键
- 输入“cmd.exe”(不带引号)
- 在命令提示符中输入“sc query ftpsvc”(不带引号)
如果服务未安装,则将显示以下内容:
|
|
如果服务已安装并正在运行,则将显示以下内容:
|
|
另一种方法是扫描文件系统以检测计算机是否易受攻击。如果%system32%\inetsrv目录中不存在“ftpsvc.dll”,则您的系统不受影响。如果您找到名为“ftpsvc2.dll”的文件,这表明您的系统上安装了FTP 6.0,也不受此漏洞的影响。Windows Update、Microsoft Update和WSUS上的检测逻辑将处理上述场景,因此更新仅提供给安装了FTP 7.0或FTP 7.5的IIS 7系统。
漏洞利用可行性
最后,我们想澄清此问题的可利用性。我们在2010年12月在此处博客中讨论了此问题,并概述了为什么我们认为远程代码执行不太可能。我们当时说:“这些特性使得成功执行堆喷射或部分函数指针覆盖攻击变得困难。由于溢出的性质,可能的结果只会是拒绝服务,而不是代码执行。”
自那时以来,额外的研究表明,如果绕过DEP和ASLR保护,此漏洞可能被利用。尚未在野外看到利用,也没有公开提供利用代码。总结当前情况,虽然可能实现代码执行,但对大多数客户的可能影响仍然是拒绝服务。
致谢
感谢IIS团队的Nazim Lala、日本CSS安全响应团队以及MSRC工程团队的Brian Cavenah对此项工作的贡献。
Chengyun Chu和Mark Wodrich,MSRC工程团队