enum4linux
Outil d'énumération SMB/Windows. Extrait les utilisateurs, groupes, partages, politiques et informations OS depuis des hôtes Windows et Samba via des sessions nulles et RPC. SMB/Windows enumeration tool. Extracts users, groups, shares, policies, and OS info from Windows and Samba hosts via null sessions and RPC.
↗ https://github.com/CiscoCXSecurity/enum4linuxOverview
enum4linux automates Windows/Samba information gathering via SMB and MS-RPC. It wraps tools like smbclient, rpcclient, and net to enumerate users, groups, shares, password policies, and OS info — often via unauthenticated null sessions.
enum4linux-ng is the modern rewrite (Python, more reliable, JSON output).
Basic Usage
Full enumeration (all checks)
enum4linux -a 10.10.10.1
With credentials
enum4linux -u 'user' -p 'password' -a 10.10.10.1
enum4linux -U 10.10.10.1 # Users
enum4linux -S 10.10.10.1 # Shares
enum4linux -G 10.10.10.1 # Groups
enum4linux -P 10.10.10.1 # Password policy
enum4linux -o 10.10.10.1 # OS information
enum4linux -n 10.10.10.1 # NetBIOS names
Verbose
enum4linux -v -a 10.10.10.1
enum4linux-ng (Modern Version)
Full enumeration
enum4linux-ng 10.10.10.1
With credentials
enum4linux-ng -u 'user' -p 'password' 10.10.10.1
Output as JSON
enum4linux-ng -oJ output.json 10.10.10.1
Output as YAML
enum4linux-ng -oY output.yaml 10.10.10.1
Verbose
enum4linux-ng -v 10.10.10.1
Without credentials (null session)
enum4linux-ng -N 10.10.10.1
What enum4linux Discovers
- Users: via
rpcclient querydispinfoand RID cycling - Groups: local and domain groups
- Shares: accessible SMB shares
- Password policy: lockout threshold, complexity, min length
- OS info: Windows version, domain, workgroup
- NetBIOS names: machine name, domain, MAC address
- RID cycling: enumerate users by iterating RIDs (500, 501, 1000+)
Tips
- Null session access (unauthenticated) depends on target configuration — less common on modern Windows
- If null sessions fail, provide credentials with
-u/-p - For share enumeration with more control, follow up with
smbclientorsmbmap enum4linux-nghandles timeouts and errors much better than the original
Help / Man page
enum4linux [options] IP
-u user Username (default: "")
-p pass Password (default: "")
-U Get user list
-M Get machine list
-N Get namelist dump
-S Get share list
-P Get password policy
-G Get group and member list
-d Be detailed, applies to -U and -S
-o Get OS information
-i Get printer information
-a Do all simple enumeration (-U -S -G -P -r -o -n -i)
-v Verbose
-r Enumerate via RID cycling (500-550,1000-1050)
-R range Enumerate users via RID cycling in given range
-K N Keep searching RIDs until N sequential failures
-l Use ldap for getting lists
-s file Brute-force guessing for share names from a file
-k user Kerberos user(s) for brute-force
-w workgrp Specify workgroup manually
-n Do an nmblookup (similar to nbtstat)
Vue d’ensemble
enum4linux automatise la collecte d’informations Windows/Samba via SMB et MS-RPC. Il encapsule des outils comme smbclient, rpcclient, et net pour énumérer les utilisateurs, groupes, partages, politiques de mot de passe, et informations OS, souvent via des sessions nulles non authentifiées.
enum4linux-ng est la réécriture moderne (Python, plus fiable, sortie JSON).
Utilisation de base
# Énumération complète (toutes les vérifications)
enum4linux -a 10.10.10.1
# Avec des identifiants
enum4linux -u 'user' -p 'password' -a 10.10.10.1
enum4linux -U 10.10.10.1 # Utilisateurs
enum4linux -S 10.10.10.1 # Partages
enum4linux -G 10.10.10.1 # Groupes
enum4linux -P 10.10.10.1 # Politique de mot de passe
enum4linux -o 10.10.10.1 # Informations OS
enum4linux -n 10.10.10.1 # Noms NetBIOS
# Verbeux
enum4linux -v -a 10.10.10.1
enum4linux-ng (version moderne)
# Énumération complète
enum4linux-ng 10.10.10.1
# Avec des identifiants
enum4linux-ng -u 'user' -p 'password' 10.10.10.1
# Sortie en JSON
enum4linux-ng -oJ output.json 10.10.10.1
# Sortie en YAML
enum4linux-ng -oY output.yaml 10.10.10.1
# Verbeux
enum4linux-ng -v 10.10.10.1
# Sans identifiants (session nulle)
enum4linux-ng -N 10.10.10.1
Ce qu’enum4linux découvre
- Utilisateurs : via
rpcclient querydispinfoet le RID cycling - Groupes : groupes locaux et de domaine
- Partages : partages SMB accessibles
- Politique de mot de passe : seuil de verrouillage, complexité, longueur minimale
- Informations OS : version Windows, domaine, workgroup
- Noms NetBIOS : nom de machine, domaine, adresse MAC
- RID cycling : énumération des utilisateurs en itérant sur les RID (500, 501, 1000+)
Conseils
- L’accès en session nulle (non authentifié) dépend de la configuration de la cible : moins courant sur les versions modernes de Windows
- Si les sessions nulles échouent, fournissez des identifiants avec
-u/-p - Pour une énumération de partages avec plus de contrôle, poursuivez avec
smbclientousmbmap enum4linux-nggère bien mieux les timeouts et les erreurs que l’original
Aide / Page de manuel
enum4linux [options] IP
-u user Username (default: "")
-p pass Password (default: "")
-U Get user list
-M Get machine list
-N Get namelist dump
-S Get share list
-P Get password policy
-G Get group and member list
-d Be detailed, applies to -U and -S
-o Get OS information
-i Get printer information
-a Do all simple enumeration (-U -S -G -P -r -o -n -i)
-v Verbose
-r Enumerate via RID cycling (500-550,1000-1050)
-R range Enumerate users via RID cycling in given range
-K N Keep searching RIDs until N sequential failures
-l Use ldap for getting lists
-s file Brute-force guessing for share names from a file
-k user Kerberos user(s) for brute-force
-w workgrp Specify workgroup manually
-n Do an nmblookup (similar to nbtstat)