Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
enum4linux-ng — Une version de nouvelle génération d'enum4linux (un outil d'énumération Windows/Samba) avec des fonctionnalités supplémentaires comme l'export JSON/YAML. Destiné aux professionnels de la sécurité et aux joueurs de CTF. | Kitploit
Outils/GitHubGitHub/cddmp/enum4linux-ng
ReconnaissanceCollecte d'InformationsSécurité RéseauCTFTests d'Intrusion
GitHubcddmp/enum4linux-ng

enum4linux-ng

Une version de nouvelle génération d'enum4linux (un outil d'énumération Windows/Samba) avec des fonctionnalités supplémentaires comme l'export JSON/YAML. Destiné aux professionnels de la sécurité et aux joueurs de CTF.

Voir le dépôt
1.6k15213il y a 7 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

enum4linux-ng

Une version de nouvelle génération d'enum4linux

enum4linux-ng.py est une réécriture du enum4linux.pl de Mark Lowe (anciennement Portcullis Labs, maintenant Cisco CX Security Labs), un outil pour énumérer les informations des systèmes Windows et Samba, destiné aux professionnels de la sécurité et aux joueurs de CTF. L'outil est principalement un wrapper autour des outils Samba nmblookup, net, rpcclient et smbclient.

Je l'ai créé à des fins éducatives pour moi-même et pour surmonter les problèmes de enum4linux.pl. Il a les mêmes fonctionnalités que l'outil original (bien qu'il fasse certaines choses différemment). Contrairement à l'outil original, il parse toutes les sorties des outils Samba et permet d'exporter tous les résultats en fichier YAML ou JSON. L'idée derrière cela est de permettre à d'autres outils d'importer les résultats et de les traiter plus en profondeur. Il est prévu d'ajouter de nouvelles fonctionnalités à l'avenir.

Fonctionnalités

  • prise en charge de l'exportation YAML et JSON
  • sortie console colorée (peut être désactivée via NO_COLOR)
  • ldapsearch et polenum sont implémentés nativement
  • prise en charge de multiples méthodes d'authentification
  • prise en charge des connexions SMBv1 héritées
  • détection automatique du support de signature IPC
  • 'évaluation intelligente' désactivera automatiquement les tests qui échoueraient autrement
  • prise en charge du délai d'attente
  • vérifications des dialectes SMB
  • prise en charge IPv6 (expérimentale)

Différences

Certaines choses sont implémentées différemment par rapport à l'enum4linux original. Voici les différences importantes :

  • les membres du groupe ne sont pas énumérés par défaut, cela peut être activé avec -Gm
  • le RID cycling ne fait pas partie de l'énumération par défaut (-A) mais peut être activé avec -R
  • le RID cycling peut être réalisé plus rapidement en regroupant plusieurs recherches de SID dans le même appel rpcclient
  • le nommage des paramètres est légèrement différent (par exemple -A au lieu de -a)

Crédits

Je tiens à remercier et à créditer les personnes de l'ancien Portcullis Labs (maintenant Cisco CX Security Labs), à savoir :

  • Mark Lowe pour avoir créé le 'enum4linux.pl' original (https://github.com/CiscoCXSecurity/enum4linux)
  • Richard 'deanx' Dean pour avoir créé le 'polenum' original (https://labs.portcullis.co.uk/tools/polenum/)

De plus, je tiens à remercier et créditer :

  • Craig 'Wh1t3Fox' West pour son fork de 'polenum' (https://github.com/Wh1t3Fox/polenum)

C'était très amusant de lire votre code ! :)

Enfin et surtout, je tiens à remercier les nombreuses personnes qui ont contribué au code, signalé des problèmes et fourni des suggestions utiles sur la façon d'améliorer l'outil.

Note légale

Si vous utilisez l'outil : Ne l'utilisez pas à des fins illégales.

Exécution

Un exemple d'exécution pourrait ressembler à ceci :

root@kitploit:~
enum4linux-ng.py -As <target> -oY out

Démo

Windows Server 2012 R2

Ceci montre une exécution contre une installation standard de Windows Server 2012 R2. La commande suivante est utilisée :

root@kitploit:~
enum4linux-ng.py 192.168.125.131 -u Tester -p 'Start123!' -oY out

Un utilisateur 'Tester' avec le mot de passe 'Start123!' a été créé. L'accès au pare-feu a été autorisé. Une fois l'énumération terminée, je fais défiler vers le haut pour que les résultats deviennent plus clairs. Comme aucune autre option d'énumération n'est spécifiée, l'outil supposera -A qui se comporte de manière similaire à l'option -a d'enum4linux. L'utilisateur et le mot de passe sont fournis. L'option -oY exportera toutes les données énumérées en fichier YAML pour un traitement ultérieur dans out.yaml. L'outil détecte automatiquement au début que LDAP n'est pas en cours d'exécution sur l'hôte distant. Il sautera donc toutes les vérifications LDAP supplémentaires qui feraient normalement partie de l'énumération par défaut.

Demo

Metasploitable 2

La deuxième démo montre une exécution contre Metasploitable 2. La commande suivante est utilisée :

root@kitploit:~
enum4linux-ng.py 192.168.125.145 -A -C

Cette fois, les options -A et -C sont utilisées. Alors que la première se comporte de manière similaire à l'option -a d'enum4linux, la seconde activera l'énumération des services. Cette fois, aucun identifiant n'a été fourni. L'outil détecte automatiquement qu'il doit utiliser SMBv1. Aucun fichier YAML ou JSON n'est écrit. Je fais à nouveau défiler vers le haut pour que les résultats deviennent plus clairs.

Demo

Utilisation

root@kitploit:~
usage: enum4linux-ng.py [-h] [-A] [-As] [-U] [-G] [-Gm] [-S] [-C] [-P] [-O] [-L] [-I] [-R [BULK_SIZE]] [-N] [-w DOMAIN] [-u USER]
                        [-p PW | -K TICKET_FILE | -H NTHASH] [--local-auth] [-d] [-k USERS] [-r RANGES] [-s SHARES_FILE] [-t TIMEOUT] [-v] [--keep]
                        [-oJ OUT_JSON_FILE | -oY OUT_YAML_FILE | -oA OUT_FILE]
                        host

This tool is a rewrite of Mark Lowe's enum4linux.pl, a tool for enumerating information from Windows and Samba systems. It is mainly a wrapper around the Samba
tools nmblookup, net, rpcclient and smbclient. Other than the original tool it allows to export enumeration results as YAML or JSON file, so that it can be
further processed with other tools. The tool tries to do a 'smart' enumeration. It first checks whether SMB or LDAP is accessible on the target. Depending on the
result of this check, it will dynamically skip checks (e.g. LDAP checks if LDAP is not running). If SMB is accessible, it will always check whether a session can
be set up or not. If no session can be set up, the tool will stop enumeration. The enumeration process can be interupted with CTRL+C. If the options -oJ or -oY
are provided, the tool will write out the current enumeration state to the JSON or YAML file, once it receives SIGINT triggered by CTRL+C. The tool was made for
security professionals and CTF players. Illegal use is prohibited.

positional arguments:
  host

options:
  -h, --help         show this help message and exit
  -A                 Do all simple enumeration including nmblookup (-U -G -S -P -O -N -I -L). This option is enabled if you don't provide any other option.
  -As                Do all simple short enumeration without NetBIOS names lookup (-U -G -S -P -O -I -L)
  -U                 Get users via RPC
  -G                 Get groups via RPC
  -Gm                Get groups with group members via RPC
  -S                 Get shares via RPC
  -C                 Get services via RPC
  -P                 Get password policy information via RPC
  -O                 Get OS information via RPC
  -L                 Get additional domain info via LDAP/LDAPS (for DCs only)
  -I                 Get printer information via RPC
  -R [BULK_SIZE]     Enumerate users via RID cycling. Optionally, specifies lookup request size.
  -N                 Do an NetBIOS names lookup (similar to nbtstat) and try to retrieve workgroup from output
  -w DOMAIN          Specify workgroup/domain manually (usually found automatically)
  -u USER            Specify username to use (default "")
  -p PW              Specify password to use (default "")
  -K TICKET_FILE     Try to authenticate with Kerberos, only useful in Active Directory environment (Note: DNS must be setup correctly for this option to work)
  -H NTHASH          Try to authenticate with hash
  --local-auth       Authenticate locally to target
  -d                 Get detailed information for users and groups, applies to -U, -G and -R
  -k USERS           User(s) that exists on remote system (default: administrator,guest,krbtgt,domain admins,root,bin,none). Used to get sid with "lookupsids"
  -r RANGES          RID ranges to enumerate (default: 500-550,1000-1050)
  -s SHARES_FILE     Brute force guessing for shares
  -t TIMEOUT         Sets connection timeout in seconds (default: 10s)
  -v                 Verbose, show full samba tools commands being run (net, rpcclient, etc.)
  --keep             Don't delete the Samba configuration file created during tool run after enumeration (useful with -v)
  -oJ OUT_JSON_FILE  Writes output to JSON file (extension is added automatically)
  -oY OUT_YAML_FILE  Writes output to YAML file (extension is added automatically)
  -oA OUT_FILE       Writes output to YAML and JSON file (extensions are added automatically)

Installation

Il existe plusieurs façons d'installer l'outil. Soit l'outil est fourni en tant que paquet avec votre distribution Linux, soit vous devez effectuer une installation manuelle.

Kali Linux

root@kitploit:~
apt install enum4linux-ng 

Archstrike

root@kitploit:~
pacman -S enum4linux-ng

NixOS

(testé sur NixOS 20.9)

root@kitploit:~
nix-env -iA nixos.enum4linux-ng

Installation manuelle

Si votre distribution Linux ne propose pas de paquet, les méthodes d'installation manuelle suivantes peuvent être utilisées à la place.

Dépendances

L'outil utilise les outils clients samba, à savoir :

  • nmblookup
  • net
  • rpcclient
  • smbclient

Ceux-ci devraient être disponibles pour toutes les distributions Linux. Le paquet s'appelle généralement smbclient, samba-client ou quelque chose de similaire.

De plus, vous aurez besoin des paquets Python suivants :

  • ldap3
  • PyYaml
  • impacket

Pour un traitement plus rapide du YAML (optionnel !), installez également (devrait venir comme dépendance de PyYaml pour la plupart des distributions Linux) :

  • LibYAML

Quelques exemples d'installations pour des distributions Linux spécifiques sont listés ci-dessous. Alternativement, des méthodes indépendantes de la distribution (python pip, environnement virtuel python et Docker) sont possibles.

Spécifique à une distribution Linux

Pour tous les exemples de distribution ci-dessous, LibYAML est déjà une dépendance du paquet PyYaml correspondant et sera donc installé automatiquement.

ArchLinux

root@kitploit:~
pacman -S smbclient python-ldap3 python-yaml impacket

Fedora/CentOS/RHEL

(testé sur Fedora Workstation 31)

root@kitploit:~
dnf install samba-common-tools samba-client python3-ldap3 python3-pyyaml python3-impacket

Debian/Ubuntu/Linux Mint

(Pour Ubuntu 18.04 ou inférieur, utilisez la variante Docker ou environnement virtuel Python)

root@kitploit:~
apt install smbclient python3-ldap3 python3-yaml python3-impacket

Indépendant de la distribution Linux

Python pip

Selon la distribution Linux, pip3 ou pip est nécessaire :

root@kitploit:~
pip install pyyaml ldap3 impacket

Alternative :

root@kitploit:~
pip install -r requirements.txt

N'oubliez pas que vous devez toujours installer les outils samba comme mentionné ci-dessus.

Environnement virtuel Python

root@kitploit:~
git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
python3 -m venv venv
source venv/bin/activate
pip install wheel
pip install -r requirements.txt

Exécutez ensuite via :

root@kitploit:~
python3 enum4linux-ng.py -As <target>

N'oubliez pas que vous devez toujours installer les outils samba comme mentionné ci-dessus. De plus, assurez-vous d'exécuter source venv/bin/activate à chaque fois que vous ouvrez un nouveau shell. Sinon, le mauvais interpréteur Python avec les mauvaises bibliothèques sera utilisé (celui de votre système plutôt que celui de l'environnement virtuel).

Docker

root@kitploit:~
git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
docker build . --tag enum4linux-ng

Une fois terminé, un exemple d'exécution pourrait ressembler à ceci :

root@kitploit:~
docker run -t enum4linux-ng -As <target>

Contribution et support

Occasionnellement, l'outil peut afficher des messages d'erreur comme celui-ci :

Could not <some text here>, please open a GitHub issue

Dans ce cas, veuillez réexécuter l'outil avec les options -v et --keep. Cela vous permettra de voir la commande exacte qui a provoqué le message d'erreur. Copiez cette commande, exécutez-la dans votre terminal et redirigez la sortie vers un fichier. Ensuite, ouvrez un problème GitHub ici, en collant la commande et en joignant le fichier de sortie d'erreur. Cela aide à déboguer le problème. Bien sûr, vous pouvez le déboguer vous-même et faire une pull request.

Si l'outil vous est utile, je suis content si vous laissez une étoile !

Télécharger l’outil