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:
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
[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:
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-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