找回密码
 立即注册
搜索
查看: 195|回复: 0

请问445端口号是干什么用的?回复

[复制链接]

380

主题

3万

回帖

3万

积分

论坛元老

积分
34915
发表于 2003-4-27 09:14:10 | 显示全部楼层 |阅读模式
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 InNT/2000http://rr.sans.org/win/null.php)
NULL会话几乎成为了微软自己安置的后门,但是微软为什么要来设置这样一个“后
门”呢?我也一直在想这个问题,如果NULL会话没有什么重要的用途,那么微软也应该
不会来设置这样一个东西。好不容易才在微软上找到这个:
当在多域环境中,要在多域中建立信任关系,首先需要找到域中的PDC来通过安全通
道的密码验证,使用空会话能够非常容易地找到PDC,还有就是关于一些系统服务的问
题。而且LMHOSTS的#Include就需要空会话的支持,可以参考文章:
http://support.microsoft.com/defaul...b;EN-US;q121281
http://support.microsoft.com/defaul...b;EN-US;q124184
其实建立一个空会话的条件也非常严格。首先要能够满足上面的,也就是打开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系统的服务器来说,就还是有利用的价值。最明显的就是空会话可以很方便地连
接到其他的域,枚举用户、机器等。这也就是扫描软件进行探测的原理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-21 12:22 , Processed in 0.090868 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表