Skip to main content
Version: 2.2.1-preview

AD-DC-04 - SMB signing should be enabled on all domain controllers

Overviewโ€‹

SMB signing (also known as security signatures) is a security feature that helps prevent:

  • Man-in-the-middle attacks: Attackers cannot modify SMB packets in transit
  • Session hijacking: Ensures the integrity of SMB sessions
  • Replay attacks: Prevents attackers from replaying captured SMB traffic

Without SMB signing, an attacker on the network could intercept and modify SMB traffic between clients and domain controllers.

Security Recommendationโ€‹

Enable SMB signing on all domain controllers.

To enable SMB signing:

#### Check current status
Get-SmbServerConfiguration | Select-Object EnableSecuritySignature, RequireSecuritySignature

#### Enable SMB signing
Set-SmbServerConfiguration -EnableSecuritySignature $true -RequireSecuritySignature $true -Force

You can also enforce SMB signing through Group Policy:

  • Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
  • "Microsoft network server: Digitally sign communications (always)" = Enabled

How the Test Worksโ€‹

This test queries the SMB server configuration on each domain controller to check if SMB signing is enabled and required. It reports:

  • Number of DCs with signing enabled
  • Number of DCs with signing required
  • Names of DCs without signing enabled
  • Test-MtAdDcSmbv1EnabledCount - SMBv1 protocol status
  • Test-MtAdDcSmbv311EnabledCount - SMBv3.1.1 protocol status

Test Metadataโ€‹

FieldValue
Test IDAD-DC-04
SeverityUnknown
SuiteActive Directory
CategoryAD.DomainController
PowerShell testTest-MtAdDcSmbSigningEnabledCount
TagsAD, AD-DC-04, AD.DomainController

Sourceโ€‹

  • Pester test: tests/ad/domaincontroller/Test-MtAdDcSmbSigningEnabledCount.Tests.ps1
  • PowerShell source: powershell/public/ad/domaincontroller/Test-MtAdDcSmbSigningEnabledCount.ps1