涉及程序:
Microsoft Windows SPNEGO
描述:
Microsoft Windows SPNEGO协议解码拒绝服务漏洞
详细:
SPNEGO (Simple and Protected GSS-API Negotiation Mechanism) 协议可以被用来协商使用何种安全机制。Windows系统允许使用多种认证机制,因此它也利用SPNEGO协议来进行客户端和服务器之间的认证机制协商。
Windows系统在处理SPNEGO协议的代码中存在一个安全漏洞,允许远程攻击者进行拒绝服务攻击。
当发送一个特别构造的SPNEGO NegTokenInit请求时,就会造成LSASRV.DLL中发生一个空指针引用错误,从而导致LSASS.EXE崩溃。这将使得所有与系统认证相关的操作无法进行,例如远程访问SMB共享,或者交互式本地登陆。对于Windows 2003,会导致系统自动关机或蓝屏。
攻击者可以通过所有使用SPNEGO的服务进行攻击,例如TCP PORT 139、445。IIS缺省也允许通过SPNEGO来协商使用哪种认证协议(例如NTLM, Kerberos等),因此攻击者也可以通过IIS进行攻击。
根据厂商的回复,如果厂商只修复这个拒绝服务攻击漏洞,同样的畸形请求还会触发在后续代码中的一个缓冲区溢出问题。现在厂商的补丁已经同时修复了这两个安全漏洞。
攻击方法:
暂无有效攻击代码
解决方案:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 在防火墙上限制不可信IP访问下列端口:
445/UDP
139/TCP
445/TCP
* 对于正在使用IIS提供WEB服务的系统,可以采用下列两种方法之一来减轻危害:
1. 在IIS服务中禁用"集成windows认证"。
2. 禁用认证协商。通过下列命令将只允许使用NTLM进行认证:
cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"
adsutil.vbs可以在IIS的adminscripts目录下找到。
Microsoft已经为此发布了一个安全公告(MS04-011)以及相应补丁:
补丁下载:
Microsoft Windows 2000 Service Pack 2, Microsoft Windows 2000 Service Pack 3, and Microsoft Windows 2000 Service Pack 4
Microsoft Windows XP and Microsoft Windows XP Service Pack 1
Microsoft Windows XP 64-Bit Edition Service Pack 1
Microsoft Windows XP 64-Bit Edition Version 2003
Microsoft Windows Server 2003
Microsoft Windows Server 2003 64-Bit Edition