SMB Enumeration

Protocol Overview

SMB Characteristics:

  • Ports: 139 (NetBIOS), 445 (Direct SMB)

  • Protocol: TCP-based

  • Purpose: File/printer sharing, network resource access

  • Implementation: Windows (native), Linux (Samba)

SMB Versions:

Version
Supported OS
Key Features

CIFS/SMB 1.0

Windows NT 4.0/2000

NetBIOS interface, Direct TCP

SMB 2.0

Windows Vista/2008

Performance upgrades, message signing

SMB 2.1

Windows 7/2008 R2

Locking mechanisms

SMB 3.0

Windows 8/2012

Multichannel, end-to-end encryption

SMB 3.1.1

Windows 10/2016

AES-128 encryption, integrity checking

Samba Implementation:

  • Purpose: SMB/CIFS implementation for Unix-based systems

  • Components: smbd (SMB daemon), nmbd (NetBIOS daemon)

  • Active Directory: Full domain controller capabilities (v4+)

Common SMB Configurations

Samba Configuration File

Key Configuration Settings

Setting
Description
Security Impact

[sharename]

Network share name

Enumeration target

workgroup = WORKGROUP

Workgroup/domain name

Domain information

path = /path/here/

Directory path

File system access

server string = STRING

Banner information

Information disclosure

usershare allow guests = yes

Guest access

Anonymous enumeration

map to guest = bad user

Invalid user handling

Authentication bypass

browseable = yes

Share visibility

Share enumeration

guest ok = yes

Anonymous access

Unauthenticated access

read only = no

Write permissions

File upload capability

writable = yes

Write access

Malicious file upload

Dangerous SMB Settings

High-Risk Configurations

SMB Enumeration Techniques

1. Nmap SMB Scanning

Basic SMB Scan:

Available Nmap SMB Scripts:

Example Nmap Output:

2. SMBclient Enumeration

Share Listing:

SMBclient Commands:

Example SMBclient Session:

3. RPCclient Enumeration

RPC Connection:

RPCclient Commands:

Command
Description

srvinfo

Server information

enumdomains

Enumerate domains

querydominfo

Domain information

netshareenumall

List all shares

netsharegetinfo <share>

Share information

enumdomusers

Enumerate domain users

queryuser <RID>

User information

enumdomgroups

Enumerate groups

querygroup <RID>

Group information

Example RPCclient Session:

4. User RID Brute Forcing

Bash RID Enumeration:

Impacket samrdump.py:

5. Advanced SMB Tools

SMBMap:

CrackMapExec:

Enum4Linux-ng:

SMB Security Issues

1. Anonymous Access

  • Risk: Unauthorized share access and information disclosure

  • Detection: Null session connections

  • Exploitation: Data theft, user enumeration

2. Weak Authentication

  • Risk: Credential-based attacks

  • Detection: Password spraying, brute force

  • Exploitation: Account compromise

3. Excessive Share Permissions

  • Risk: Unauthorized file access/modification

  • Detection: Permission enumeration

  • Exploitation: Data manipulation, malware deployment

4. Information Disclosure

  • Risk: Sensitive data exposure

  • Detection: Share browsing, file enumeration

  • Exploitation: Intelligence gathering

SMB Attack Vectors

1. Share Exploitation

2. Password Attacks

3. Relay Attacks

Common Vulnerabilities

Critical SMB CVEs

CVE
Name
Impact
Affected Versions

CVE-2017-0144

EternalBlue

Remote Code Execution

Windows Vista - Windows 10, Server 2008-2016

CVE-2020-0796

SMBGhost (CoronaBlue)

Remote Code Execution

Windows 10 v1903/v1909, Server v1903/v1909

CVE-2017-7494

SambaCry

Remote Code Execution

Samba 3.5.0 - 4.6.4/4.5.10/4.4.14

CVE-2016-2118

Badlock

Man-in-the-Middle

Windows/Samba NTLM authentication

CVE-2017-12149

SMBLoris

Denial of Service

Windows SMB implementations

EternalBlue (CVE-2017-0144)

SMBGhost (CVE-2020-0796)

SambaCry (CVE-2017-7494)

Badlock (CVE-2016-2118)

Additional SMB Vulnerabilities

  • CVE-2008-4250: MS08-067 Conficker vulnerability

  • CVE-2017-0145: EternalBlue variant (MS17-010)

  • CVE-2017-0146: EternalBlue variant (MS17-010)

  • CVE-2019-0708: BlueKeep (RDP, but often found with SMB)

  • CVE-2020-1472: Zerologon (NetLogon, SMB-related)

Vulnerability Scanning

SMB Enumeration Checklist

Initial Reconnaissance

Share Enumeration

User Enumeration

Authentication Testing

Advanced Testing

Tools for SMB Enumeration

Built-in Tools

Specialized Tools

Nmap Scripts

Defensive Measures

SMB Server Hardening

  • Disable SMBv1 - Use SMBv2/v3 only

  • Restrict anonymous access - Disable null sessions

  • Implement strong authentication - Kerberos, NTLM restrictions

  • Use share-level permissions - Principle of least privilege

  • Enable message signing - Prevent tampering

  • Regular security updates - Patch known vulnerabilities

Network Security

  • Firewall restrictions - Block SMB ports externally

  • Network segmentation - Isolate file servers

  • Monitor SMB traffic - Detect anomalies

  • Implement SMB over VPN - Secure remote access

Last updated