关闭445端口

运行msconfig注册表管理器
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters

TransportBindName REG_SZ \Device\

删除缺省的"\Device\",留一个空值。重启后"netstat -na"将看不到445/TCP口。但
同时客户端SMB机制支持一并被取消。

A: Jean-Baptiste Marchand 2002-02-09

至少有两种办法可以关闭445/TCP:

. 禁用NetBT驱动

第一种方法彻底禁用了系统中的SMB机制,客户端、服务端支持均被取消。为了停止
NetBT驱动,必须先停止工作站、服务器服务,如果不这样做而试图直接停止NetBT驱
动,系统将出故障。

> net stop rdr
> net stop srv
> net stop netbt

rdr、srv不是服务名称,也不是显示名称,而是net命令自己支持的,在此分别等价
于lanmanworkstation、lanmanserver。445/TCP将被热关闭。

"NetBios over Tcpip"驱动可以手工停止,但不能手工启动,只能重启才可恢复。为
了阻止NetBT驱动在重启OS时自动加载,必须将启动类型由缺省的1改成4:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT]
"Start"=dword:00000004


> sc config netbt start= disabled

. 修改注册表

更多时候第一种方法不是我们所期望的,客户端SMB机制的支持还是需要的。通过修
改注册表可以实现禁用由TCP层直接承载的SMB协议,但继续启用NetBT。


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
"SmbDeviceEnabled"=dword:00000000


重启OS使之生效,445/TCP不再侦听中。

A:

devmgmt.msc->查看->显示隐藏设备->非即插即用驱动程序->NetBios over Tcpip->右键停用->重启OS使之生效

这将彻底禁用系统中的SMB机制,客户端、服务端支持均被取消。

D: tk@nsfocus 2004-07-22

逆向分析netbt.sys之后,发现可以通过注册表改变445/TCP、445/UDP:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Smb]
"SessionPort"=dword:00000000
"DatagramPort"=dword:00000000


本来试图通过这种办法关闭445/TCP,重启之后,系统自动处理成1/TCP、1/UDP。如
将SessionPort指定成135/TCP,在争夺中原EPM功能将丧失,SMB功能争夺成功。

D: sparrow@smth

装了IPv6之后,tk给出的注册表项就不起作用了。在此情况下为使之继续起作用,需
额外修改注册表:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
"UseNewSmb"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Smb]
"SessionPort"=dword:000001bd
"DatagramPort"=dword:000001bd


装了IPv6之后,增加了一个驱动smb.sys,处理IPv6下的SMB协议。UseNew

Smb非0时将
使用smb.sys,该驱动中固化了445/TCP。

相关主题
相关文档
最新文档