首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第35期->最新漏洞
期刊号: 类型: 关键词:
Microsoft网络共享器SMB请求远程缓冲区溢出漏洞

日期:2002-09-16

Microsoft网络共享器SMB请求远程缓冲区溢出漏洞

发布日期:2002-08-22
更新日期:2002-08-27

受影响系统:
Microsoft Windows XP
Microsoft Windows NT 4.0SP6a
Microsoft Windows NT 4.0SP6
Microsoft Windows NT 4.0SP5
Microsoft Windows NT 4.0SP4
Microsoft Windows NT 4.0SP3
Microsoft Windows NT 4.0SP2
Microsoft Windows NT 4.0SP1
Microsoft Windows NT 4.0
Microsoft Windows 2000SP3
Microsoft Windows 2000SP2
Microsoft Windows 2000SP1
Microsoft Windows 2000
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 5556
CVE(CAN) ID: CAN-2002-0724

Microsoft Windows操作系统使用Server Message Block (SMB)协议提供开放交叉平台机制,通过网络对文件和打印共享服务的支持,也称为CIFS (Common Internet File System),目前CIFS在Windows下的实现是运行在TCP/139和TCP/445端口上,并依赖运行在TCP/IP之上的NETBIOS协议是否启用。

Microsoft操作系统对畸形的SMB请求处理存在问题,远程攻击者可以利用这个漏洞进行拒绝服务攻击,可能以系统权限执行任意代码。

SMB_COM_TRANSACTION命令允许客户端和服务器端在特定服务器上的特定资源定义特殊的功能,此功能支持不由协议自身定义,而由客户端和服务器端实现。

通过发送特殊构建的包请求NetServerEnum2, NetServerEnum3或者NetShareEnum transaction(事务处理),攻击者可以对目标机器进行拒绝服务攻击,可能以系统权限执行任意代码,但没有得到证实。攻击者只需在上述transaction的参数域中将'Max Param Count'或'Max Data Count'字段设置为零即可进行攻击。

利用NetShareEnum transaction(事务处理)来触发这个漏洞,攻击者需要拥有一个合法的帐户,而利用NetServerEnum2和NetServerEnum3 transaction(事务处理)进行触发,则攻击者无需密码匿名即可进行访问。

Windows操作系统默认情况下允许匿名用户进行访问,因此任意用户可以对默认配置的Windows操作系统进行拒绝服务攻击。

成功利用这个漏洞攻击后,操作系统会出现系统崩溃(蓝屏),并出现如下类似信息:

*** STOP: 0x0000001E (0xC0000005, 0x804B818B, 0x00000001, 0x00760065)
KMODE_EXCEPTION_NOT_HANDLED
*** Address 804B818B base at 80400000, DateStamp 384d9b17 0 ntoskrnl.exe

物理内存被dump,系统重新启动。

<*来源:core.lists.bugtraq@core-sdi.com (core.lists.bugtraq@core-sdi.com)
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=103011556323184&w=2
        http://www.microsoft.com/technet/security/bulletin/MS02-045.asp
*>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

通过如下的Samba补丁可以利用这个漏洞:

smbclient -L <targetIP> -N

--------------------

--- samba-2.2.5.original/source/libsmb/clirap.c Tue Jun 18 21:13:44 2002
+++ samba-2.2.5.exploit/source/libsmb/clirap.c Fri Aug 16 22:17:45 2002
@@ -237,8 +237,10 @@
STR_TERMINATE | STR_CONVERT | STR_ASCII);

if (cli_api(cli,
- param, PTR_DIFF(p,param), 8, /* params, length, max */
- NULL, 0, CLI_BUFFER_SIZE, /* data, length, max */
+// param, PTR_DIFF(p,param), 8, /* params, length, max */
+// NULL, 0, CLI_BUFFER_SIZE, /* data, length, max */
+ param, PTR_DIFF(p,param), 0,
+ NULL, 0, 0,
&rparam, &rprcnt, /* return params, return size */
&rdata, &rdrcnt /* return data, return size */
)) {

Kevin Gennuso(goosey@ICUBED.COM) 提供了如下测试程序:

http://packetstorm.decepticons.org/0208-exploits/SMBdie.zip

建议:
--------------------------------------------------------------------------------
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 可以限制匿名用户对Windows 2000P系统的LSA组件的访问,这可以避免匿名用户进行攻击,但无法防止合法用户的攻击。

  具体方法可参考如下步骤:

    在“开始 > 运行...”或者命令行窗口中运行注册表编辑器(regedt32.exe), 找到下列键:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

    增加或者修改键值"RestrictAnonymous"

      键值: RestrictAnonymous
      类型: REG_DWORD
      数据: 0x2 (十六进制)

    重启系统使注册表修改生效。

    或者您也可以使用下面的方法:

    打开控制面版 -- 管理工具 -- 本地安全策略(如果是域控制器则是“域安全策略”),
    在其中的本地策略 -- 安全选项中设置“对匿名连接的额外限制”,
    选择“没有显式匿名权限就无法访问”,重启系统。

  对于Windows NT和XP,无法通过修改注册表禁止匿名用户访问,您只能暂时关闭共享服务。
  
  注意:禁止匿名用户连接(空会话)在某些情况下(例如在域服务器或者SQL服务器上)可能会影响某些正常功能的实现,因此NSFOCUS推荐您尽快安装补丁。
  
* 如果您并不需要提供网络共享服务,可以完全关闭共享。

   windows2000和XP下面关闭共享的办法是:

   在控制面版 - 网络和拨号连接 - 高级 (菜单栏) - 高级设置中
   选择本地连接的绑定 - 去掉“Microsoft网络的文件和打印机共享”。

   Windows NT下面关闭共享的办法是:

   网上邻居 - 属性(右键) - 绑定 - 选择所有协议 - 禁用WINS客户

* 在网关设备或边界防火墙上过滤对内网主机下列端口的访问:

   139/TCP
   445/TCP
   445/UDP

  注意这不能防止内部恶意用户的攻击。如需防止内部恶意用户的攻击,需要安装主机防火墙软件或者启用Windows自带的TCP/IP筛选机制来过滤上述端口。

厂商补丁:

Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS02-045)以及相应补丁:
MS02-045:Unchecked Buffer in Network Share Provider Can Lead to Denial of Service(Q326830)
链接:http://www.microsoft.com/technet/security/bulletin/MS02-045.asp

补丁下载:

    * Microsoft Windows NT 4.0:
       http://www.microsoft.com/downloads/Release.asp?ReleaseID=41493

     * Microsoft Windows NT 4.0 Terminal Server Edition:
       http://www.microsoft.com/downloads/Release.asp?ReleaseID=41519

     * Microsoft Windows 2000:
       http://www.microsoft.com/downloads/Release.asp?ReleaseID=41468

     * Microsoft Windows XP:
       http://www.microsoft.com/downloads/Release.asp?ReleaseID=41524

     * Microsoft Windows XP 64 bit Edition:
       http://www.microsoft.com/downloads/Release.asp?ReleaseID=41549
版权所有,未经许可,不得转载