本文提供了一个解决方案,用于解决以下问题:即使目标 Windows Server 中启用了共享资源,也无法访问服务器消息块(SMB)共享资源。
原始 KB 数: 4471134
现象
即使目标 Windows Server 上启用了共享资源,也无法访问服务器消息块(SMB)共享资源。 运行 netstat 命令以显示网络连接时,结果显示 TCP 端口 445 正在侦听。 但是,网络跟踪显示 TCP 端口 445 上的通信失败,如下所示:
| 源 | 目标 | 协议 | 说明 |
|---|---|---|---|
| 客户端 | SERVER | TCP | TCP:Flags=......S., SrcPort=62535, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=4085616235, Ack=0, Win=8192 (协商比例因子 0x8) = 8192 |
| 客户端 | SERVER | TCP | TCP:[SynReTransmit #600]Flags=......S., SrcPort=62535, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=4085616235, Ack=0, Win=8192 (协商比例因子 0x8) = 8192 |
| 客户端 | SERVER | TCP | TCP:[SynReTransmit #600]Flags=......S., SrcPort=62535, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=4085616235, Ack=0, Win=8192 (协商比例因子 0x8) = 8192 |
使用以下命令启用 筛选平台策略更改事件的审核 后,可能会遇到一些指示阻止的事件(例如事件 ID 5152)。
auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
事件 ID 5152 的示例:
| 事件日志 | 事件源 | 事件 ID | 消息文本 |
|---|---|---|---|
| 安全性 | Microsoft-Windows-Security-Auditing | 5152 | 说明:Windows 筛选平台已阻止数据包。应用程序信息:进程 ID:0应用程序名称: -网络信息:方向:入站源地址:192.168.88.50源端口:52017目标地址:192.168.88.53目标端口:445协议:6Filter 信息:筛选器运行时 ID:67017层名称:传输层运行时 ID:12 |
原因
出现此问题的原因是,利用与 Wannacrypt 相同的 SMBv1 漏洞的 Adylkuzz 恶意软件添加了名为 NETBC 的 IPSec 策略,该策略阻止使用 TCP 端口 445 的 SMB 服务器上的传入流量。 某些 Adylkuzz-cleanup 工具可以删除恶意软件,但无法删除 IPSec 策略。 有关详细信息,请参阅 Win32/Adylkuzz.B。
解决方法
若要解决此问题,请执行以下步骤:
-
安装适用于操作系统的 安全更新 MS17-010 版本。
-
按照 Win32/Adylkuzz.B的“立即做什么”选项卡上的步骤进行操作。
-
使用 Microsoft安全扫描程序运行扫描。
-
使用以下命令检查 IPSec 策略是否阻止 TCP 端口 445(并查看引用的结果以获取示例)。
netsh ipsec static show policy allPolicy Name: netbc Description: NONE Last Modified: <DateTime> Assigned: YES Master PFS: NO Polling Interval: 180 minutesnetsh ipsec static show filterlist all level=verboseFilterList Name: block Description: NONE Store: Local Store <WIN> Last Modified: <DateTime> GUID: {ID} No. of Filters: 1 Filter(s) --------- Description: 445 Mirrored: YES Source IP Address: <IP Address> Source Mask: 0.0.0.0 Source DNS Name: <IP Address> Destination IP Address: <IP Address> Destination DNS Name: <IP Address> Protocol: TCP Source Port: ANY Destination Port : 445注意
在未连接的服务器上运行命令时,没有策略。
-
如果 IPSec 策略存在,请使用以下方法之一将其删除。
-
运行下面的命令:
netsh ipsec static delete policy name=netbc -
使用组策略编辑器(GPEdit.msc):
本地组策略编辑器/计算机配置/Windows 设置/安全设置/IPSec 安全性
-
详细信息
自 2016 年 10 月以来,Microsoft一直在为受支持的 Windows Server 更新版本使用新的服务模型。 这种用于分发更新的新服务模型简化了安全性和可靠性问题的解决方式。 Microsoft建议使系统保持最新状态,以确保它们受到保护并应用最新的修补程序。
此威胁可以运行以下命令:
netsh ipsec static add policy name=netbc
netsh ipsec static add filterlist name=block
netsh ipsec static add filteraction name=block action=block
netsh ipsec static add filter filterlist=block any srcmask=32 srcport=0 dstaddr=me dstport=445 protocol=tcp description=445
netsh ipsec static add rule name=block policy=netbc filterlist=block filteraction=block
netsh ipsec static set policy name=netbc assign=y
它还可以添加防火墙规则以允许使用以下命令进行连接:
netsh advfirewall firewall add rule name="Chrome" dir=in program="C:\Program Files (x86)\Google\Chrome\Application\chrome.txt" action=allow
netsh advfirewall firewall add rule name="Windriver" dir=in program="C:\Program Files (x86)\Hardware Driver Management\windriver.exe" action=allow