← retour aux outils back to tools

# 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