IIS5与IIS6 FTP服务栈溢出漏洞分析与防护指南

本文详细分析了微软IIS5和IIS6 FTP服务中存在的栈溢出漏洞,攻击者可通过特制目录名实现远程代码执行。文章涵盖受影响版本、风险配置、防护措施及攻击检测方法,并提供日志分析示例和Snort规则参考。

漏洞概述

MSRC发布安全公告披露IIS FTP服务中存在新漏洞,可能导致非受信用户获得远程代码执行权限。该漏洞为栈溢出类型,当FTP服务列示特制的超长目录名时触发。要利用此漏洞,攻击者需获得FTP服务器登录权限并创建特殊构造的长目录。成功利用后,攻击者可在LocalSystem权限下执行代码(FTP服务运行账户)。

受影响配置

  • 受影响版本:IIS 5.0(Windows 2000)、IIS 5.1(Windows XP)、IIS 6.0(Windows Server 2003)
  • 不受影响版本:IIS 7.0(Windows Vista、Windows Server 2008)
  • IIS 6风险降低原因:编译时启用/GS保护机制,检测到溢出时自动终止服务(在攻击者代码运行前)
  • 仅允许非受信用户登录并创建任意目录的服务器存在风险

防护措施

在完整安全更新发布前,可通过以下方式防护:

  1. 关闭非必需的FTP服务
  2. 使用NTFS ACL阻止目录创建
  3. 通过IIS设置禁止匿名用户写入权限

IIS 5中禁止写入权限的设置位置:

IIS设置对话框

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服务默认记录所有命令

示例日志条目(概念验证代码):

1
2
3
4
5
6
7
#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~ñú~ñú...(超长字符串) 257

默认日志路径:c:\winnt\system32\logfiles\MSFTPSVC1 建议将日志存储在与漏洞服务不同的机器上,防止攻击者清理日志

致谢

感谢IIS团队的Wade Hilmo和Nazim Lala提供信息,以及MSRC工程团队的Brian Cavenah在调查中的协助。

  • Bruce Dang和Jonathan Ness(MSRC工程团队) 本文按"原样"提供,不提供任何担保,也不授予任何权利。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计