摘要:一直以来比较粗暴,认为直接把135、137、138、139、445端口封了就完事。看下每个端口的作用。

135端口

135端口(TCP)就是RPC通信中的桥梁,该端口被攻击者采用了一种DCOM技术,可以直接对其他工作站的DCOM程序进行远程控制。DCOM技术与对方计算机进行通信时,会自动调用目标主机中的RPC服务,而RPC服务将自动询问目标主机中的135端口,并且获取当前有哪些端口可以被用来通信。

简而言之:只要开启了135端口,在知道电脑密码的情况下,就可以调用RPC,远程控制电脑。

137端口

137端口(UDP)主要在局域网中提供本机的计算机名或者ip地址、mac地址。

//第一步:获取192.168.1.4电脑的NBT远程缓存名称表
nbtstat -A 192.168.1.4

//第二步:在192.168.1.4电脑上通过防火墙手动把137端口关掉

//第三步:清除本地电脑的NBT远程缓存名称表缓存
nbtstat -R

//第四步:再次获取192.168.1.4电脑的NBT远程缓存名称表,此时获取不到
nbtstat -A 192.168.1.4

138端口

138端口(UDP)提供NetBIOS的浏览功能。该功能使用的是与137端口计算机名管理不同的运行机制,主要用来显示连接于网络中的电脑一览表。每台电脑在启动时或连接网络时都会利用138端口广播自己的NetBIOS名,将自己的电脑信息发送给同组中的所有电脑。

关于135、137、138、139、445端口勘误1.png

139端口、445端口

两个端口都是提供局域网中文件或打印机共享服务。不同的是445端口(TCP)基于CIFS(Common Internet File System)协议的SMB v2、139端口(TCP)是基于NBT(Net Bios Over TCP/IP)协议的SMB v1。windwos NT以前采用139端口运行SMB v1,windows NT以后则才采用445端口运行SMB v2。

139端口、445端口两者共存的时候优先使用445端口。

局域网环境下,文件共享如何选择?

方式一

采用SMB v1协议,进行文件共享。此时用到的端口有 137、139端口,没有用到135、138、445端口

首先在要访问文件共享的电脑的 启用或关闭 Windows 功能 里面安装以下功能:

关于135、137、138、139、445端口勘误2.png

然后在提供文件共享的服务器上以管理员模式运行以下命令:

Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

红框中的内容表示服务器支持SMB v1协议。

关于135、137、138、139、445端口勘误3.png

接着运行下面的命令:

//禁用SMB v2协议,不禁用的话会导致0x80004005找不到网络路径。应该是会和SMB v1起冲突
Set-SmbServerConfiguration -EnableSMB2Protocol $false

运行后可以看到SMB v2协议已经被禁用了。

关于135、137、138、139、445端口勘误4.png

如果要启用SMB v2协议,则运行下面命令。

Set-SmbServerConfiguration -EnableSMB2Protocol $true

接着就只要按部就班共享文件就行了。此时把445端口关闭了,也能够使用文件共享。

方式二

采用SMB v2协议进行文件共享。此时用到的端口有445端口,没有用到135、137、138、139端口。此时把137、139端口关闭了,也能够使用文件共享。windwos NT以上默认采用445端口。

参考

Configure SMB Security in Windows Server 2012
Windows 10 无法访问共享的解决办法
Windows系统安全|135、137、138、139和445端口