Disable SMB v1 in Managed Environments with Group Policy

The following is a brief summary recent SMB v1 vulnerabilities, ransomware and an enterprise approach to disabling SMB v1 via Group Policy.

Why SMB v1 Isn’t Safe (September 16, 2016)

Ned Pyle wrote a blog post in September of 2016 on why SMBv1 isn’t safe where he stated that if your clients use SMB1, then a man-in-the-middle can tell your client to ignore security settings like:

“...If your clients use SMB1, then a man-in-the-middle can tell your client to ignore all the above” Please review Ned Pyle’s full blog article on Why SMB1 isn’t safe

TechNet Guidance on Enabling/Disabling SMBv1/2/3 (February 28, 2017)

Microsoft in February updated and published a TechNet article on how to enable or disable various versions of SMB using:

  • The Registry Editor for LanmanServer
  • PowerShell’s Set-SmbServerConfiguration for SMB server
  • sc.exe with config options for lanmanworkstation

Caution! While these tools can work for quick configuration changes, this combination approach is not very manageable in large-scale managed enterprise environments where consistent configuration is required.

Microsoft Published Security Bulletin MS17-010 (March 14, 2017)

Microsoft released a critical Security Update for Microsoft Windows SMB Server security bulletin and updates under KB 4013389 along with a host of security updates for all supported versions of Windows under MS17-010.

Enter Global Ransomware Attack (May 12, 2017)

The WannaCrypt ransomware attack began exploiting the SMB v1 server vulnerability and began spreading globally on May 12.

U.S. CERT Advisory (May 12, 2017)

CERT issued an advisor for Indicators Associated With WannaCry Ransomware  with the following recommendations:

Apply the patch (MS17-010). If the patch cannot be applied, consider:

  • Disabling SMBv1 and
  • blocking all versions of SMB at the network boundary by blocking TCP port 445 with related protocols on UDP ports 137-138 and TCP port 139, for all boundary devices.

SMB Vulnerability Patch for Windows XP & Server 2003 (May 13, 2017)

Microsoft then released SMB security patches for Windows XP and Server 2003 on May 13, 2017.

Enterprise Approach to Disable SMB v1 using GPO

Certainly, it’s important to patch against the known SMB v1 vulnerabilities released in MS17-010 and subsequent KB 4013389 for Windows XP/2003.  However because of numerous variants of WannaCrypt and these other known security issues with SMB v1 (e.g. man-in the middle); many organizations have issued mandates to  completely disable SMBv1 as strategic security countermeasure against future threats.

An enterprise approach to disabling SMB v1 is to use Active Directory (AD) Group Policy preferences to configure and enforce the registry settings related to disabling SMBv1 client and server components for Windows Vista and Server 2008 and later.

Group Policy registry preference items allow you to create, update, replace, and delete keys and values in the Windows registry.  The following are the registry keys that need to be created or updated to disable SMB v1.


Disable SMBv1 Server with Group Policy:

This will configure the following new item in the registry


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Registry entry: SMB1 REG_DWORD: 0 = Disabled


To configure this using Group Policy:

  1. Open the Group Policy Management Console. Right-click the Group Policy object (GPO) that should contain the new preference item, and then click Edit.
  2. In the console tree under Computer Configuration, expand the Preferences folder, and then expand the Windows Settings folder.
  3. Right-click the Registry node, point to New, and select Registry Item.

smb3

In the New Registry Properties dialog box, select the following:

  • Action: Create
  • Hive: HKEY_LOCAL_MACHINE
  • Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Value name: SMB1
  • Value type: REG_DWORD
  • Value data: 0

smb2

This disables the SMBv1 Server components.  This Group Policy needs to be applied to all necessary workstations, servers, and domain controllers in the domain.

Note: WMI filters can also be set to exclude unsupported operating systems or selected exclusions such as Windows XP.

Caution! Be careful when making these changes on domain controllers where legacy Windows XP or older Linux and 3rd party systems (that do not support SMBv2 or SMBv3) require access to SYSVOL or other file shares where SMB v1 is being disabled.


Disable SMBv1 Client with Group Policy:

To disable the SMBv1 client the services registry key needs to be updated to disable the start of MRxSMB10 and then the dependency on MRxSMB10 needs to be removed from the entry for LanmanWorkstation so that it can start normally without requiring MRxSMB10 to first start.

This will update and replace the default values in the following 2 items in the registry


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

Registry entry: Start REG_DWORD: 4 = Disabled

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

Registry entry: DependOnService REG_MULTI_SZ: “Bowser","MRxSmb20","NSI"


Note: The default included MRxSMB10 which is now removed as dependency

To configure this using Group Policy:

  1. Open the Group Policy Management Console. Right-click the Group Policy object (GPO) that should contain the new preference item, and then click Edit.
  2. In the console tree under Computer Configuration, expand the Preferences folder, and then expand the Windows Settings folder.
  3. Right-click the Registry node, point to New, and select Registry Item.

smb3

In the New Registry Properties dialog box, select the following:

  • Action: Update
  • Hive: HKEY_LOCAL_MACHINE
  • Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10
  • Value name: Start
  • Value type: REG_DWORD
  • Value data: 4

smb4

Then remove the dependency on the MRxSMB10 that was just disabled

In the New Registry Properties dialog box, select the following:

  • Action: Replace
  • Hive: HKEY_LOCAL_MACHINE
  • Key Path: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
  • Value name: DependOnService
  • Value type REG_MULTI_SZ
  • Value data:
    • Bowser
    • MRxSmb20
    • NSI

Note: These 3 strings will not have bullets (see below) smb7

The default value includes MRxSMB10 in many versions of Windows, so by replacing them with this multi-value string, it is in effect removing MRxSMB10 as a dependency for LanmanServer and going from four default values down to just these three values above.

Note: When using Group Policy Management Console, there is no need to use quotation marks or commas.  Just type the each entry on individual lines as shown above:

Reboot Required

After the policy has applied and the registry settings are in place, the targeted systems must be rebooted before SMB v1 is disabled.

Summary

If all the settings are in the same Group Policy Object (GPO), Group Policy Management will show the settings below.

smb6

Testing and Validation

Once these are configured, then allow the policy to replicate and update.  As necessary for testing, run gpupdate /force from a CMD.EXE prompt and then review the target machines to ensure the registry settings are getting applied correctly.  Make sure SMB v2 and SMB v3 is functioning for all other systems in the environment.

Caution! Don't forget to reboot the targeted systems.

Additional SMB v1 Resources