Is a Network Layer Protocol used by Windows systems to share files, printers and other resources over a network.

It allows applications to read/write files, request services and communicate with other computers on the network.

On SMB Servers access rights are defined by ACL.

Supported Transport Layer Protocols

SMB use TCP (usually Port 445) and supports authentication, encryption and access control. It can however also use NetBIOS over TCP port 139, and even the QUIC protocol.

Versions

  • CIFS: supported Windows NT 4.0. Allowed communication via NetBIOS interface.
  • SMB 1.0: supported Windows 2000. Allowed direct connection via TCP.
  • SMB 2.0: supported Windows Vista and Windows Server 2008. Added performance upgrades, improved message signing, and caching feature.
  • SMB 2.1: supported Windows 7 and Windows Server 2008 R2. Added locking mechanisms.
  • SMB 3.0: supported Windows 8 and Windows Server 2012. Added multichannel connections, end-to-end encryption, remote storage access.
  • SMB 3.0.2: supported Windows 8.1 and Windows Server 2012 R2.
  • SMB 3.1.1: supported Windows 10 and Windows Server 2016. Added integrity checking and AES-128 encryption.

Enumeration tools

The following tools are use for enumerating SMB services:

  • rpcclient
  • SMBMap
  • CrackMapExec
  • enum4Linux-ng