`
looyo
  • 浏览: 63997 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

全面解析 Windows 网上邻居

 
阅读更多

转自 http://blog.csdn.net/iiprogram/

***微软网络浏览过程简介***

在“windows NT系统管理技术内幕”一书中,讲到了一个非常具有代表性的问题,我把它摘抄了下来:

问:什么情况下会导致在网络邻居中计算机能看见却无法访问或可以访问却看不见?请选择最佳答案: A.你的网络存在物理问题,比如网线 B.作为域主浏览器的Windows NTserver的浏览服务坏了 C.windows NTserver网卡有问题 D.你的网络没有问题,用户描述的是正常的微软浏览现象

正确答案:D

书上的解释:微软的网络浏览可能在使用中出现"中断",而实际上它们并没有中断, 这种误解是由于用户对微软网络浏览的处理过程不熟悉造成的。

就象同学们经常在抱怨的“为什么别人的网上邻居可以用,我的却不行?”“为什么有时候可以浏览,有时候却无法浏览网络?”解铃还须系铃人,让我们一起去看看微软的网络浏览到底是如何实现的。鉴于大家可能对NT的“域”概念还不甚了解,出现浏览故障的也多为98的机子,我将以98的“工作组模式”为大家讲解。

1.什么是浏览列表(Browsing List) 在微软网络中,用户可以在浏览列表里看到整个网络(何指?子网还是广播域?大家可以考虑考虑)上所有的计算机。当你通过网上邻居窗口打开整个网络时,你将看到一个工作组列表,再打开某个工作组,你将看到里面的计算机列表(也可在 DOS方式下用net view /domain:workgroupname命令得到),这就是我们所说的 Browsing List。工作组从本质上说就是共享一个浏览列表的一组计算机,所有的工作组之间都是对等的,没有规定不可以让所有的计算机同处于一个工作组中。

2.浏览列表在哪里 曾在木棉上看到过一场争论,有人说:网上邻居里的计算机列表是广播查询得来的。可有人举反例说:我的同学都关机了,可我还是能在网上邻居里看到它,应该是从HUB或交换机之类较为固定的设备的缓存中取得的。 其实他们都只说对了一个方面,把他们二人的说法结合起来就是正确答案了--- 浏览列表是通过广播查询浏览主控服务器,由浏览主控服务器提供的。

3.浏览主控服务器又是什么 浏览主控服务器是工作组中的一台最为重要的计算机,它负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和其他来访本工作组的计算机提供浏览服务,每个工作组都为会每个传输协议选择一个浏览主控服务器,而我们经常遇到的无法浏览网络的错误大多是因为你所处的工作组没有浏览主控服务器而造成的。你可以在一个工作组中用NBTSTAT -a computername 命令找出使用NBT协议的浏览主控服务器,它的标识是含有_MSBROWSE_ 名字段。

4.浏览主控服务器是如何指定的 缺省情况下,win98工作组中的浏览主控服务器是该工作组中第一台启用文件及打印机共享功能的计算机,也允许手工将一台win计算机配置为浏览主控服务器(方法会在后面讲述网络配置时具体介绍,但由于浏览主控服务器需要维护动态浏览列表,性能会受影响),如果一个工作组中有多台计算机配置了这个选项,或是当前的浏览主控服务器关闭了系统,又没有其他计算机启用主控设置时,就要进行主控浏览器的选举。

5.如何通过浏览器选举产生浏览主控服务器 关于浏览器的选举报文,不太好抓包,我就只好按书上的东西来讲述了.其实过程很简单,首先由一台计算机发送一个选举临界报文,该报文包含了来自发送计算机的信息(操作系统,版本及NET名等),选举报文向网络中广播,工作组中的每一台计算机都会用自身信息与选举报文进行优先级比较,主要是操作系统起主要作用,记得好像是NT Server>NT Workstation>Win98>WFWG,反正到最后是那个自身条件最好的成为新的浏览主控服务器.

6.整个网络浏览的过程是怎样的 当一台win98进入网络时,如果它带有服务器服务(启用了文件及打印机共享)会向网络广播宣告自己的存在,而浏览主控服务器会取得这个宣告并将它放入自己维护的浏览列表中;而没有在相应协议上绑定文件及打印机共享的计算机则不会宣告,因而也就不会出现在网络邻居里了。当客户计算机想获得需要的网络资源列表时,首先会广播发出浏览请求,浏览主控服务器收到请求后,如果请求的是本组的浏览列表,则直接将客户所需的资源列表发回;如果请求的是其它工作组的浏览列表,浏览主控服务器会根据本身Browsing List中的记录找到相应工作组的主控浏览器返回给用户,用户可从那里得到它想要的浏览列表。至于如何去和另一台计算机共享交换资源,就不是我们这里要讨论的问题了。

明白了网络浏览的原理,下面我给大家讲一个有用的应用,现在很多同学出于安全的考虑都不太欢迎陌生人通过网上邻居访问自己的机子,可有时下部电影又需要给认识的同学共享出来,因而还不能删除文件及打印机共享服务。怎么办?有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;有些人给共享加上密码,可听说这也是有办法破解的,而且很容易激起“黑客同志”的好奇心。有没有办法将自己的机器在网络邻居里隐藏起来呢?而对于认识的同学可以让他用IP 来访问。

想对了,关键就是要阻止自己的机器向网络中去宣告自己,而且我知道我们其中的一些人已经将此变成了现实,至于方法嘛,就不要来问我了。

注:因为有关win98浏览服务的资料很少,涉及的书籍也多为以NT的“域”模型进 行介绍,因而我只能根据自己的理解结合netxray的实践来测试,细节部分难 免有错,欢迎大家指正。

7.在我的网上邻居里为什么有些机子访问不了 如果微软的网上邻居真能做到所见即所得,相信抱怨它的人不会象现在这么多,可通过前面对浏览服务的介绍,大家已经知道这是不可能的,因为浏览列表的获得不是通过访问其中每一台机子得到的,很多时候网络中的计算机并不能正确更新浏览列表。当一台计算机正常关机时,它会向网络发出广播宣告,使浏览主控服务器及时将它从浏览列表中删除;而非正常关机后,浏览列表里仍会把该条目保持很长一段时间(NT下是45分钟),这就是我们仍能在网络邻居里看到它的原因.而98的稳定性是众所周知的 ----在还没来得及关机前就已经崩溃了^-^

SMB(Server Message Block)协议在NT/2000中用来作文件共享,在NT中,SMB运行于NBT(NetBIOS over TCP/IP)上,使用137,139(UDP),139(TCP)端口。在2000中,SMB可以直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。因此在2000上应该比NT稍微变化多一些。

可以在“网络连接/属性/TCPIP协议/属性/高级/WINS中设置启用或者禁用NBT(NetBIOS over TCP/IP)。

当2000使用网络共享的时候,就面临着选择139或者445端口了。下面的情况确定会话使用的端口:

1、如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,如果从445端口得到回应,那么客户端将发送RST到139端口,终止这个端口的连接,接着就从445端口进行SMB的会话了;如果没有从445端口而是从139得到回应,那么就从139端口进行会话;如果没有得到任何回应,那么SMB会话失败。

2、如果客户端禁用了NBT,他就将只从445端口进行连接。当然如果服务器(开共享端)没有445端口进行SMB会话的话,那么就会访问失败了,所以禁用445端口后,对访问NT机器的共享会失败。

3、如果服务器端启用NBT,那么就同时****UDP 137、138端口和TCP139,445。如果禁用NBT,那么就只****445端口了。

所以对于2000来说,共享问题就不仅仅是139端口,445端口同样能够完成

III、The NULL session,关于空会话

NULL会话(空会话)使用端口也同样遵循上面的规则。NULL会话是同服务器建立的无信任支持的会话。一个会话包含用户的认证信息,而NULL会话是没有用户的认证信息,也就好比是一个匿名的一样。

没有认证就不可能为系统建立安全通道,而建立安全通道也是双重的,第一,就是建立身份标志,第二就是建立一个临时会话密匙,双方才能用这个会话进行加密数据交换(比如RPC和COM的认证等级是PKT_PRIVACY)。不管是经过NTLM还是经过Kerberos认证的票据,终究是为会话创建一个包含用户信息的令牌。(这段来自Joe Finamore)根据WIN2000的访问控制模型,对于空会话同样需要提供一个令牌。但是空会话由于是没有经过认证的会话,所以令牌中不包含用户信息,因此,建立会话双方没有密匙的交换,这也不能让系统间发送加密信息。这并不表示空会话的令牌中不包含SID,对于

一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话建立的SID,用户名是ANONYMOUS logoN。这个用户名是可以在用户列表中看到的。但是是不能在SAM数据库中找到,属于系统内置的帐号。

(关于这部分对NULL SESSION的分析,可以参照:《NULL Sessions In NT/2000》http://rr.sans.org/win/null.php)

NULL会话几乎成为了微软自己安置的后门,但是微软为什么要来设置这样一个“后门”呢?我也一直在想这个问题,如果NULL会话没有什么重要的用途,那么微软也应该不会来设置这样一个东西。好不容易才在微软上找到这个:

当在多域环境中,要在多域中建立信任关系,首先需要找到域中的PDC来通过安全通道的密码验证,使用空会话能够非常容易地找到PDC,还有就是关于一些系统服务的问题。而且LMHOSTS的#Include就需要空会话的支持,可以参考文章:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q121281

还有http://support.microsoft.com/default.aspx?scid=kb;EN-US;q124184

其实建立一个空会话的条件也非常严格。首先要能够满足上面的,也就是打开TCP139和TCP 445端口。我们可以从一次关闭这两个端口的情况中看得出来。服务器关闭445和139端口,然后我们来进行空会话的连接。首先,客户端打算连接的是445端口,然后再试图连接139端口。当然最后还是失败了。

仅仅开放这两个端口还不行,服务器还必须得打开IPC$共享。如果没有IPC共享,即使共享一个文件,有权限为Anonymous logon,也不能建立会话,即使权限设置为完全控制,出现的连接错误依然是权限不够。这和其他帐号是不一样的。如果要允许一个文件夹共享能够类似IPC$(命名管道而非共享)能够使用空会话,那么需要修改注册表:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters

中的:NullSessionShares,添加新的共享名,这样才能建立一个共享的空会话。这时,将不依赖IPC的存在了。(即使这样的空会话对于后面的突破也是一点没可取之处的,因为没有了IPC$命名管

道,RPC不可取了,这下知道IPC这个命名管道的具体实现了。呵呵)

虽然空会话建立的要求很严格,但是那都是默认建立的。既然是默认的,对于使用WIN2K系统的服务器来说,就还是有利用的价值。最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描软件进行探测的原理。

1. > 有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;这种隐藏只是微软Windows标准客户端net view的限制,不是服务端的限制,网络传输过程中是一视同仁的,所以直接修改客户端解除这种限制或者使用第三方客户端软件均可看到所谓的隐藏共享,比如smbclient就是典型代表。而直接修改windows客户端的办法,99年袁哥贴过,我在华中Security版上转载过,精华区中还在。

2. > 有些人给共享加上密码,可听说这也是有办法破解的

这个破解要看是什么层面上的,纯暴力破解的就不必说了,那当然总是可以的。而95 98另有漏洞,袁哥发现的,就是他那个著名的vredir.vxd,服务端验证密码时所用长度居然是客户端提供的,这就意味着至多猜测256次(事实上没这么多,考虑可打印字符范围)即可进入。当初N多人用这种办法非法浏览别人的机器。2000年报告微软,现在已修补。

http://security.nsfocus.net/index.php?act=advisory&do=view&adv_id=6 顺便说一句,利用该漏洞可以快速穷举出原始口令,虽然在攻击中这是不必要的。

3. > 因而我只能根据自己的理解结合netxray的实践来测试,细节部分难 免有错,

推荐www.ethereal.com提供的Ethereal,这是我所见过的对SMB解码最强的免费软件,有Unix/windows版,提供源码。

4. > 在2000中,SMB可以直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。

因此在2000上应该比NT稍微变化多一些。

事实上正相反,在ssaxh_capabilities字段中指明不使用"扩展安全验证",此时使用原有身份验证机制,只需去掉NBT层的Session Request,将139/TCP改成445/TCP,一样可以成功建立空会话,并且成功打开"IPC$"。

至于更高层的RPC Over SMB,更是不必作任何变动。换句话说,从139/TCP换到445/TCP,整个通信过程中减少了一对NBT Session Request/Response,后面的报文对于两者来说是完全一致的。

而所谓的NBT层,即使在445通信中也未去掉,一直存在着,区别只是上面这段话。

5. > 如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,

微软并没有让139/TCP与445/TCP公平竞争。发起连接的SYN包在宏观上是同时发出的,具体起来,有时是先向139/TCP发起连接请求,有时是先向445/TCP发起连接请求,有点随机性。

在向139/TCP发送三次握手的最后一个ACK报文时,windows顺手携带了数据,这里以一个刻意弄错的NetBIOS名(*SMBSERV)做了一次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",但是Samba Server 2.2.5认,居然返回Positive Session Response。这成为精确识别Samba Server的方法之一。

微软在中不会提这些的,只是说139/TCP、445/TCP公平竞争,优先使用最早返回的响应报文。不要相信它的鬼话。

话说回来,如非需求所致,完全不必关心这种差别。有需求的时候,这种差别是致命的。

5. > 最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是

> 扫描软件进行探测的原理。

XP、2003缺省禁止在空会话上进行PolicyAccountDomainInformation查询,可以看到sarOpenPolicy2(44)失败,权限否定。如果事先指定有效帐号、口令建立SMB会话,而非空会话,LsarOpenPolicy2(44)将成功返回。

分享到:
评论

相关推荐

    彻底解决XP网上邻居共享

    在Windows XP系统中,遇到“网上邻居”无法正确浏览或列表不全的问题,通常需要从网络连接和文件共享两个方面进行诊断和修复。下面将详细介绍这两个方面的解决步骤。 一、解决基本连接问题 1. 检查物理连接:确认...

    彻底解决网上邻居共享

    ### 彻底解决Windows XP网上邻居共享问题 #### 背景概述 Windows XP系统作为曾经广泛使用的一款操作系统,其在网络设置与管理方面为用户带来了诸多便利。然而,在实际使用过程中,用户可能会遇到网上邻居共享功能...

    局域网(网上邻居)共享问题全方位解决

    ### 局域网(网上邻居)共享问题全方位解决 #### 一、Workstation服务未启动问题 **问题表现**:当尝试访问局域网内的其他计算机时,可能会遇到一个错误提示框显示:“网络不存在或尚未启动”。这通常意味着你的...

    Windows-XP-局域网打印机共享问题的解决方法(全).doc

    当无法正常浏览“网上邻居”或者无法找到打印服务器时,可能是由于缺少必要的网络协议。解决方法是在“本地连接”的属性中,添加“NWLink IPX/SPX/NetBIOS Compatible Transport Protocol”协议,无需重启就能修复...

    2022年职称计算机考试《Windows P》高级练习题+答案及解析2.pdf

    而在Windows XP中,用户可以通过自定义桌面,选择是否显示特定的桌面图标,如“我的文档”、“我的电脑”、“网上邻居”和“Internet Explorer”。 操作系统的基本特征和任务是考试的重要组成部分,其中涉及内存...

    2022年职称计算机考试《Windows P》高级复习卷(有解析).pdf

    18. 在Windows网络环境中,要访问其他计算机应该使用“网上邻居”,这是网络资源访问的基础。 19. 在Windows XP环境下,整个屏幕称为桌面,这是对操作系统的桌面环境的了解。 考生应重视上述知识点的复习,并结合...

    windows使用详解

    网上邻居、URL地址和库都是文件访问的不同途径。 **第六章:浏览器交互** IE 浏览器可以与charm菜单互动,通过Win+C快捷调出charm菜单。 **第七章:系统组件管理** 添加或删除系统功能位于“所有程序”-“Windows...

    windows xp 系统管理

    在Windows XP 下很多网友在浏览网上邻居的时候会出现不能浏览或浏览列表不全的情况,导致这种情况的因素很多,要解决问题要对症下药,文中两方面深入浅出的分析出了问题的所在。

    Windows XP注册表子键功能全解释.doc

    例如,控制面板的类ID是{21EC2020-3AEA-1069-A2DD-08002B30309D},而“网上邻居”(Network Neighborhood)的类ID是{208D2C60-3AEA-1069-A2D7-08002B30309D}。通过修改这些类ID对应的注册表条目,可以对这些特殊...

    Windows Resource Kits和Windows Support Tools工具命令介绍

    - **Browstat**:提供高级的“网上邻居”功能,帮助诊断浏览问题。 ##### E 类工具 - **Cabarc**:用于压缩或解压缩.CAB文件。 - **Cachemov**:清理离线文件的缓存,释放空间。 - **Cacls**:更改文件和目录的访问...

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    Windows网上邻居互访的基本条件: 1) 双方计算机打开,且设置了网络共享资源; 2) 双方的计算机添加了 "Microsoft 网络文件和打印共享" 服务; 3) 双方都正确设置了网内IP地址,且必须在一个网段中; 4) 双方的...

    计算机信息技术的汇总.docx

    【描述】: "本文档是对计算机信息技术的全面概述,特别是关于Windows 2000 Professional操作系统的基础知识和应用。" 【标签】: "计算机信息技术", "Windows 2000" 【部分内容】: 在计算机信息技术中,Windows ...

    局域网共享问题解决整理.pdf

    在Windows XP系统中,用户需通过“网上邻居”的属性设置,运行网络安装向导来建立网络连接。这一过程对于确保系统能够识别并连接到其他设备至关重要。 物理连接是网络通信的基础,要检查每台计算机的网卡指示灯是否...

    SAMBA服务全攻战

    - **浏览服务**:作为本地主浏览服务器(LMB),Samba维护网络资源列表,当Windows客户端通过网上邻居访问时,提供资源的浏览界面。 3. **Samba工作原理** Samba的工作基于SMB协议,早期通过NetBIOS over TCP/IP...

    局域网共享问题全方位解决借鉴.pdf

    本文将按照错误提示,逐一分析并提供解决方案,帮助你解决从“网上邻居”访问其他计算机时的困难。 1. **错误提示:网络不存在或尚未启动** 这通常是因为Workstation服务未启动。你需要打开服务管理器(通过“开始...

    计算机培训讲义全.doc

    - **系统图标**:包括“我的电脑”、“我的文档”、“Explore”、“回收站”和“网上邻居”等。 - **快捷方式**:为快速启动程序创建的图标。 4. **任务栏**: - **任务栏简介**:位于屏幕底部的蓝色条,提供...

    农村信用社计算机考试试题.pdf

    8. “网上邻居”不在Windows95的“开始”菜单中。 9. 以SYS为扩展名的文件通常不能直接运行。 10. 用户建立的文件一般具有存档属性。 11. 用记事本可以读取TXT文件,但不能正确读取DOC文件。 12. 同时按下Ctrl+Alt+...

    2021年职称计算机考试全真模拟试题及答案16.docx

    - “我的电脑”(在某些版本中称为“计算机”)可以用于复制文件、移动文件、使用“网上邻居”等功能。 - 文件夹可以被设置为共享,以便局域网内的其他用户可以访问其中的内容。 - 可以为特定的应用程序或文件...

    2021年职称计算机考试全真模拟试题及答案9.docx

    而对于网上邻居完全共享文件夹中的对象、按SHIFT删除的对象以及软盘中的对象,一旦删除则无法直接恢复。 4. IT的含义:IT是“信息技术”(Information Technology)的缩写,涉及计算机硬件、软件、网络通信等领域。...

Global site tag (gtag.js) - Google Analytics