如何使用GPO禁用TCP/IP和LLMNR上的NetBIOS

时间:2020-01-09 10:46:33  来源:igfitidea点击:

在没有明确需要的情况下使用过时的协议可能成为任何计算机网络中的潜在安全缺陷。在这种情况下,最近关于WCry勒索软件的热议是showcase,而防范它的最简单方法就是完全禁用过时的SMBv1协议,停止使用它。宽带协议,如[NetBIOS over TCP/IP]和[LLMNR]也已经过时,只是出于兼容性的原因才在大多数现代网络中使用。同时,黑客有不同的工具,利用NetBIOS和LLMNR中的一些漏洞来捕获本地网络中的用户凭据(包括NTLMv2哈希)。因此,出于安全原因,应该在域网络中禁用这些协议。让我们看看如何使用组策略禁用LLMNR和NetBIOS。

首先,值得提醒的是这些协议是什么。

LLMNR协议

LLMNR(UDP/5355,链路本地多播名称解析)用于从Vista开始的所有Windows版本,它允许IPv6和IPv4客户端在不使用DNS服务器的情况下解析相邻计算机的名称,因为L2网络的本地段中存在广播请求。如果DNS不可用,则自动使用此协议。因此,如果域中有DNS服务器,则不需要此协议。

基于TCP/IP协议的NetBIOS

TCP/IP上的NetBIOS或者NBT-NS(UDP/137138;TCP/139)是LLMNR的前身,用于本地网络发布和搜索资源的广播协议。默认情况下,所有Windows版本中的所有接口都启用了基于TCP/IP的NetBIOS支持。

因此,当DNS服务器不可用时,这些协议使本地网络中的计算机能够找到彼此。它们在工作组中可能是必需的,但在域网络中,两者都可能被禁用。

提示。在域中大量实施这些策略之前,我们强烈建议测试禁用了NetBIOS和LLMNR的计算机和服务器。如果LLMNR没有问题,禁用NetBIOS会使过时系统的操作瘫痪。

如何使用GPO禁用LLMNR

在域环境中,可以使用GPO禁用LLMNR广播请求。要做到这一点:

在GPMC.msc,创建新策略或者编辑应用于所有工作站和服务器的现有策略。

前往 计算机配置->管理模板->网络->DNS客户端

通过将策略的值更改为 已启用,启用 关闭多播名称解析策略

如何禁用TCP/IP上的NetBIOS

说明NetBIOS可能会被旧的Windows版本和一些非Windows系统使用,因此应该在每个特定的环境中测试其禁用过程。

我们可以在特定客户机上手动禁用NetBIOS。

打开网络连接属性

选择 TCP/IPv4打开其属性

点击 高级,进入 WINS页签,选择 禁用TCP上的NetBIOS

保存更改

我们也可以禁用注册表中特定网络适配器的NetBIOS。每个网络适配器在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces中都有一个单独的分支,包含其TCPIP_GUID。

要禁用特定适配器的NetBIOS,请打开其分支,将 NetBIOS选项参数的值更改为 2(默认为0)。

要完全禁用NetBIOS,应该对计算机的所有网络适配器执行上述操作。

我们可以在从DHCP服务器获取IP地址的域客户端上禁用NetBIOS。

打开,打开 **dhcpmgmt.msc]),连接到DHCP服务器并选择范围选项区域设置(或者服务器-服务器选项)

进入 高级页签,在 供应商类下拉列表中选择 微软视窗2000选项

开启 001微软禁用Netbios选项并将其值改为 0x2

没有单独的选项允许对使用GPO的计算机的所有网络适配器禁用TCP/IP上的NETBIOS。要对计算机的所有网络适配器禁用NETBIOS,可以使用组策略部署PowerShell启动脚本。打开GPO编辑器,将*.ps1脚本放入 计算机配置->策略->Windows设置->脚本->启动->PowerShell脚本策略中:

$regkey = "HKLM:SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
Get-ChildItem $regkey |foreach { Set-ItemProperty -Path "$regkey$($_.pschildname)" -Name NetbiosOptions -Value 2 -Verbose}

说明要使此更改生效,必须启用/禁用网络适配器或者重新启动计算机。