发信人: laserlight() 
整理人: (2000-08-07 17:10:23), 站内信件
 | 
 
 
漏洞发布时间:2000-6-6 14:19:00 
 漏 洞 描 述: 
 
 当使用NTLMv1 (LmCompatibilibyLevel=0)时:NT管理员用USRMGR.EXE 或
 者 SRVMGR.EXE 增加新用户,新组或者改变用户密码.它采用的加密机制是
 半加密的。基本上,这种加密的运算规则是把一个"user Session Key"作
 为RC4 key来加密516字节的块,其中大部分是随机数据。
 NT管理员的user session key是 MD4(Administrator's NT#)
 假如现在你在监听网络数据,当管理员正在向域增加一个工作组时,你捕获
 到 一对516个字节的数据包,用XOR运算比较这两个包,比较结果中的最后
 几个字节 对于解码是非常有用的。
 如果XOR结果中最后4个字节为0,那么两个密码长度是一样的。
 如果XOR结果中最后4个字节不为0,那么两个密码长度是不一样的。
 要记住这些密码都是用UNICODE存储的,因此要想猜某个密码的
 长度,你只要计算XOR结果最后"0"字节的数目。我们知道当使用
 SRVMGR.exe增加工作组时,系统就赋给这个工作组一个初始密码。
 在NT域中使用LMcompatibilityLevel=0x0,此时管理员发送的是明文密码。 
 
 解 决 方 法: 
 
 1)使用交换式网络。
 
 2)建议网络管理员使用安全机制来增加新用户,新组。
 
 3)对于每次改变或者创建新用户,建议同时改变管理员的密码。当然,
 如果你远 程修改了管理员密码,那么你就要改变管理员密码两次了。
 
 ----使用NTLMv2 (LmCompatibilibyLevel=0x5)
 
 在NTLMv2中,它使用3次HMAC_MD5,使得至少要48次才能暴力破解。从MS-
 chap取出的随机信息产生"User session Key",这个"User Session Key"是
  基于每一条连接的。这就意味着,要确保管理员密码的安全性,不能象NT
 Lmv1那 样,而只能断开每一个使用USRMGR.EXE 或者SRVMGR.EXE的远程用
 户的连接。
   要做到这一点:首先停止USRMGR.EXE/SRVMGR.EXE,进入DOS prompt,输
 入:
   net use
 这样,如果有一个\\mypdc\ipc$连接显示的话,运行:
 net use \\mypdc\ipc$ /del
   如果显示在使用中,所有你留下的其它的远程程序就能执行,比如:
 哄骗SamrCreateUser() ,创建新用户。当然你如果使用交换式网络/使用
 SMB签字,就不存在这个问题。
 
 京九网联
  -- 志不达者智不达!
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.110.182.26]
  | 
 
 
 |