Configure do not allow unencrypted SMB Sessions with PowerShell

In today’s interconnected world, data sharing is a fundamental aspect of modern computing. One of the protocols that facilitates this exchange is the Server Message Block (SMB), used predominantly in Windows environments. While SMB offers convenient file and printer sharing capabilities, it’s essential to delve into one of its potential security pitfalls – unencrypted SMB sessions.


The Risk of Unencrypted SMB Sessions:

  1. Data Interception: When SMB sessions are left unencrypted, the data exchanged between a client and a server becomes susceptible to interception by malicious actors. This means that sensitive information, such as usernames, passwords, and file contents, can be captured and exploited.
  2. Man-in-the-Middle Attacks: Unencrypted SMB sessions pave the way for man-in-the-middle (MITM) attacks. In this scenario, an attacker positions themselves between the client and the server, intercepting and potentially altering the data being transmitted. This can lead to unauthorized access, data tampering, or even injection of malicious content.
  3. Credential Exposure: The most significant concern with unencrypted SMB sessions is the exposure of login credentials. Without encryption, usernames and passwords are transmitted in plaintext, offering attackers a direct path to gaining unauthorized access to systems and resources.
  4. Data Tampering: Attackers can manipulate the data exchanged in unencrypted SMB sessions. They might modify files, inject malware, or alter commands, potentially leading to system compromise or unauthorized data manipulation.
  5. Replay Attacks: Unencrypted sessions are susceptible to replay attacks, where attackers capture and later replay legitimate data packets. This can lead to unauthorized actions being performed on the server.
  6. Lack of Authentication: Without encryption, malicious actors can impersonate legitimate clients and servers. This can lead to unauthorized access to sensitive resources or unauthorized execution of commands.


You can verify the status with the following PowerShell command:

Get-SmbServerConfiguration | fl RejectUnencryptedAccess

You can enable the parameter RejectUnencryptedAccess by executing the following PowerShell command with administrative privileges:

Set-SmbServerConfiguration -RejectUnencryptedAccess $true -Confirm:$false


As you can see, we are taking advantage of the Get-SmbServerConfiguration and Set-SmbServerConfiguration cmdlets.

Leave a comment

Your email address will not be published. Required fields are marked *

14 − two =