剖析NETBIOS的具体工作机理
发布时间:2009-06-19 11:18:32 作者:佚名
我要评论
有关网上邻居的问题,问的人一直比较多,在理解上存在的误区也普遍较为严重。鉴于Microsoft的NETBIOS文档不是很细致,我四处收集了一些相关资料加上自己的实践经验写了这个系列,希望能对大家有所帮助.
本来想为了增加可读性,把这个系列写成问答的形式,不过一时
根据WIN2000的访问控制模型,对于空会话同样需要提供一个令牌。但是空会话由于是没有经过认证的会话,所以令牌中不包含用户信息,因此,建立会话双方没有密匙的交换,这也不能让系统间发送加密信息。这并不表示空会话的令牌中不包含SID,对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话建立的SID,用户名是ANONYMOUS LOGON。这个用户名是可以在用户列表中看到的。但是是不能在SAM数据库中找到,属于系统内置的帐号。
NULL会话几乎成为了微软自己安置的后门,但是微软为什么要来设置这样一个“后门”呢?我也一直在想这个问题,如果NULL会话没有什么重要的用途,那么微软也应该不会来设置这样一个东西。好不容易才在微软上找到这个:
当在多域环境中,要在多域中建立信任关系,首先需要找到域中的PDC来通过安全通道的密码验证,使用空会话能够非常容易地找到PDC,还有就是关于一些系统服务的问题。
其实建立一个空会话的条件也非常严格。首先要能够满足上面的,也就是打开TCP 139和TCP 445端口。我们可以从一次关闭这两个端口的情况中看得出来。服务器关闭445和139端口,然后我们来进行空会话的连接。首先,客户端打算连接的是445端口,然后再试图连接139端口。当然最后还是失败了。
仅仅开放这两个端口还不行,服务器还必须得打开IPC$共享。如果没有IPC共享,即使共享一个文件,有权限为Anonymous Logon,也不能建立会话,即使权限设置为完全控制,出现的连接错误依然是权限不够。这和其他帐号是不一样的。如果要允许一个文件夹共享能够类似IPC$(命名管道而非共享)能够使用空会话,那么需要修改注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\
中的:NullSessionShares,添加新的共享名,这样才能建立一个共享的空会话。这时,将不依赖IPC的存在了。(即使这样的空会话对于后面的突破也是一点没可取之处的,因为没有了IPC$命名管道,RPC不可取了,这下知道IPC这个命名管道的具体实现了。呵呵)
虽然空会话建立的要求很严格,但是那都是默认建立的。既然是默认的,对于使用WIN2K系统的服务器来说,就还是有利用的价值。最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描软件进行探测的原理。
1. 有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;
这种隐藏只是微软Windows标准客户端net view的限制,不是服务端的限制,网络传输过程中是一视同仁的,所以直接修改客户端解除这种限制或者使用第三方客户端软件均可看到所谓的隐藏共享,比如smbclient就是典型代表。
2. 有些人给共享加上密码,可听说这也是有办法破解的;
这个破解要看是什么层面上的,纯暴力破解的就不必说了,那当然总是可以的。而95/98另有漏洞,袁哥发现的,就是他那个著名的vredir.vxd,服务端验证密码时所用长度居然是客户端提供的,这就意味着至多猜测256次(事实上没这么多,考虑可打印字符范围)即可进入。当初N多人用这种办法非法浏览别人的机器。2000年报告微软,现在已修补。
顺便说一句,利用该漏洞可以快速穷举出原始口令,虽然在攻击中这是不必要的。因而我只能根据自己的理解结合netxray的实践来测试,细节部分难免有错。
3. 在2000中,SMB可以直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。因此在2000上应该比NT稍微变化多一些。
事实上正相反,在ssaxh_capabilities字段中指明不使用"扩展安全验证",此时使用原有身份验证机制,只需去掉NBT层的Session Request,将139/TCP改成445/TCP,一样可以成功建立空会话,并且成功打开"\\<target ip>\IPC$"。
至于更高层的RPC Over SMB,更是不必作任何变动。换句话说,从139/TCP换到445/TCP,整个通信过程中减少了一对NBT Session Request/Response,后面的报文对于两者来说是完全一致的。
而所谓的NBT层,即使在445通信中也未去掉,一直存在着,区别只是上面这段话。
4. 如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,
微软并没有让139/TCP与445/TCP公平竞争。发起连接的SYN包在宏观上是同时发出的,具体起来,有时是先向139/TCP发起连接请求,有时是先向445/TCP发起连接请求,有点随机性。
在向139/TCP发送三次握手的最后一个ACK报文时,Windows顺手携带了数据,这里以一个刻意弄错的NetBIOS名(*SMBSERV<00...(8)>)做了一次NBT Session Request。而445/TCP不需要NBT层的会话。
由于刻意弄错的NetBIOS名,139/TCP很难竞争过445/TCP。服务端返回Negative NBT Session Response,并且执行了close()操作。这使得必须重新建立到139/TCP的连接(传输层的TCP连接)。
可以看出,那个刻意弄错的NetBIOS名仅仅是为了给445/TCP制造抢先的机会。遗憾的是,445/TCP不争气,这个端口上的任务繁重、负载较高,即使在这种不公平竞争的情况下,139/TCP仍有可能重新抢在445/TCP之前建立NBT会话(注意,不是TCP连接)。于是445口会回送RST,后续SMB会话建立在139/TCP连接之上。
微软自己的操作系统不认"*SMBSERV<00...(8)>",但是Samba Server 2.2.5认,居然返回Positive Session Response。这成为精确识别Samba Server的方法之一。
微软在<<Direct Hosting of SMB Over TCP/IP>>中不会提这些的,只是说139/TCP、445/TCP公平竞争,优先使用最早返回的响应报文。不要相信它的鬼话。
话说回来,如非需求所致,完全不必关心这种差别。有需求的时候,这种差别是致命的。
5. 最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描软件进行探测的原理。
XP、2003缺省禁止在空会话上进行PolicyAccountDomainInformation查询,可以看到LsarOpenPolicy2(44)失败,权限否定。如果事先指定有效帐号、口令建立SMB会话,而非空会话,LsarOpenPolicy2(44)将成功返回。
相关文章

BoardMix怎么修改成员权限 BoardMix修改成员权限教程
BoardMix是一款专业的在线教学工具,是一款操作简单方便、功能强大的在线协作白板,可以提高用户之间的沟通办公效率,下面来看看在这里怎么修改成员权限吧2023-06-11
BoardMix在线协作白板,集自由布局、画笔、便签、多媒体呈现、脑图、文档多种创意表达能力于一体,激发团队创造力无限延伸,在这里大家知道怎么邀请成员吗?一起来看看2023-02-06
BoardMix怎么移出团队成员 BoardMix移出团队成员教程
BoardMix是一款专业的在线教学工具,这款软件提供了自由布局、画笔、便签、多媒体呈现、脑图、文档等多种创意白板,下面来学习怎么移出团队成员吧2023-02-06
BoardMix是一款操作简单方便、功能强大的在线协作白板,可以提高用户之间的沟通办公效率。在使用的过程中大家知道怎么去家畜连接线条吗?一起来看看2023-02-06
火龙果写作 全网海量文本素材一站式检索,随时随地满足你的查找需求,提供更多内容获取路径,打造全面、开放的学习内容平台,下面就跟着小编来学习如何修改用户名的操作吧2022-12-19
火龙果写作全网海量文本素材一站式检索,随时随地满足你的查找需求,提供更多内容获取路径,打造全面、开放的学习内容平台,下面就跟着小编来学习如何去绑定邮箱的操作吧2022-12-19
火龙果写作如何设置个人免改词典 火龙果写作设置个人免改词典方法
火龙果app是一款实用的云端智能写作工具。为用户提供写作内容的续写、语法检查、改写、翻译、图片转文字等多项智能写作功能,下面就来学习如何设置个人免改词典吧2022-12-19
Pitaya 是一款超级好用的协作软件,拥有纠错功能、中英语法校队功能、实时翻译功能、智能改写功能等,下面就跟着小编来学习在这里怎恶魔去设置敏感词词典吧2022-12-19
Pitaya是一款超级好用的协作软件,全网海量文本素材一站式检索,随时随地满足你的查找需求,提供更多内容获取路径,打造全面、开放的学习内容平台,下面来看看在这里怎么开2022-12-19
Pitaya火龙果写作怎么解除QQ绑定?Pitaya火龙果写作解除QQ绑定方法
火龙果写作软件是一款人工智能写作产品。火龙果写作软件为用户提供从内容生成、素材推荐、修改润色、审核校对、多语言翻译的全流程文字生产力工具,在这里绑定QQ帐号之后怎2022-10-21












最新评论