ldapdomaindump
Extrait les informations du domaine Active Directory (utilisateurs, groupes, ordinateurs, politiques, trusts) via LDAP dans des rapports HTML/JSON/greppables navigables. Dumps Active Directory domain information (users, groups, computers, policies, trusts) via LDAP into browsable HTML/JSON/greppable reports.
↗ https://github.com/dirkjanm/ldapdomaindumpOverview
ldapdomaindump connects to a domain controller over LDAP and pulls a comprehensive picture of the Active Directory environment — user accounts, group memberships, computers, password/lockout policies, trusts, and ACL/GPO-relevant attributes — then renders it as human-browsable HTML reports plus raw JSON/greppable output. It’s a fast way to get AD domain enumeration output in a reviewable format right after obtaining any valid domain credentials.
Common Usage
Dump domain info using valid credentials
ldapdomaindump -u 'DOMAIN\username' -p 'password' <dc_ip>
Use an NTLM hash instead of a plaintext password (pass-the-hash)
ldapdomaindump -u 'DOMAIN\username' --hashes :<NTHASH> <dc_ip>
Specify an output directory for the generated reports
ldapdomaindump -u 'DOMAIN\username' -p 'password' -o domain_dump/ <dc_ip>
Authenticate over LDAPS (encrypted)
ldapdomaindump -u 'DOMAIN\username' -p 'password' ldaps://<dc_ip>
Anonymous / null session bind (if allowed by the domain)
ldapdomaindump <dc_ip>
Example Workflow
Step 1: Obtain a valid low-privilege domain credential (e.g. via password spraying) Step 2: Dump full domain information
ldapdomaindump -u 'CORP\jsmith' -p 'Summer2025!' -o dump_corp dc01.corp.local
Step 3: Browse the generated HTML reports
firefox dump_corp/domain_users.html
Step 4: Cross-reference privileged groups/computers for lateral movement targets
grep -i "domain admins" dump_corp/domain_groups.html
Output Files
domain_users.html/json/grep all domain user accounts and attributes
domain_groups.html/json/grep groups and their memberships
domain_computers.html/json/grep computer accounts (OS, last logon, etc.)
domain_policy.html/json/grep password/lockout policy
domain_trusts.html/json/grep domain/forest trust relationships
domain_users_by_group.html users grouped by group membership
Options
-u USERNAME DOMAIN\username or username@domain
-p PASSWORD password (prompted if omitted)
--hashes LM:NT authenticate with an NTLM hash instead of password
-o DIR output directory for reports
-r RESOLVE resolve computer hostnames to IPs
-n NO-JSON/GREP skip JSON/greppable output, HTML only
--no-html skip HTML output
-m, --minimal minimal attribute dump (faster, less detail)
Tips
- Works with as little as one valid low-privilege domain account — no elevated rights needed for a baseline dump under default AD permissions.
- Pair with BloodHound for graph-based attack path analysis — ldapdomaindump is better for a quick readable report and policy/trust overview.
- The generated
domain_users_by_group.htmlis a fast way to spot users in privileged groups (Domain Admins, Enterprise Admins) without wading through raw LDAP attributes.
Help / Man page
usage: ldapdomaindump [-h] [-u USERNAME] [-p PASSWORD] [--hashes HASHES]
[-o DIRECTORY] [-r] [-n] [--no-html] [--no-json]
[--no-grep] [-m] [-d]
HOSTNAME
Domain information dumper via LDAP
positional arguments:
HOSTNAME hostname/IP or ldap://, ldaps:// URI of the DC
optional arguments:
-h, --help show this help message and exit
-u USERNAME DOMAIN\username for authentication
-p PASSWORD password for authentication
--hashes LMHASH:NTHASH authenticate via pass-the-hash
-o DIRECTORY directory to write output files to
-r resolve computer hostnames to IP addresses
-n do not output JSON/greppable files
--no-html do not output HTML files
-m, --minimal only dump minimal attribute set (faster)
-d, --delimiter delimiter for greppable output
Vue d’ensemble
ldapdomaindump se connecte à un contrôleur de domaine via LDAP et récupère une vue d’ensemble complète de l’environnement Active Directory : comptes utilisateurs, appartenances aux groupes, ordinateurs, politiques de mot de passe/verrouillage, trusts, et attributs pertinents pour les ACL/GPO, puis le restitue sous forme de rapports HTML navigables ainsi qu’une sortie JSON/greppable brute. C’est un moyen rapide d’obtenir une énumération de domaine AD dans un format exploitable juste après avoir obtenu des identifiants de domaine valides.
Utilisation courante
# Extraire les infos du domaine avec des identifiants valides
ldapdomaindump -u 'DOMAIN\username' -p 'password' <dc_ip>
# Utiliser un hash NTLM plutôt qu'un mot de passe en clair (pass-the-hash)
ldapdomaindump -u 'DOMAIN\username' --hashes :<NTHASH> <dc_ip>
# Spécifier un répertoire de sortie pour les rapports générés
ldapdomaindump -u 'DOMAIN\username' -p 'password' -o domain_dump/ <dc_ip>
# S'authentifier via LDAPS (chiffré)
ldapdomaindump -u 'DOMAIN\username' -p 'password' ldaps://<dc_ip>
# Bind en session anonyme / null (si autorisé par le domaine)
ldapdomaindump <dc_ip>
Exemple de workflow
Étape 1 : obtenir un identifiant de domaine faiblement privilégié valide (par exemple via password spraying). Étape 2 : extraire les informations complètes du domaine
ldapdomaindump -u 'CORP\jsmith' -p 'Summer2025!' -o dump_corp dc01.corp.local
Étape 3 : parcourir les rapports HTML générés
firefox dump_corp/domain_users.html
Étape 4 : croiser les groupes/ordinateurs privilégiés pour identifier des cibles de mouvement latéral
grep -i "domain admins" dump_corp/domain_groups.html
Fichiers de sortie
domain_users.html/json/grep tous les comptes utilisateurs du domaine et leurs attributs
domain_groups.html/json/grep groupes et leurs appartenances
domain_computers.html/json/grep comptes ordinateurs (OS, dernière connexion, etc.)
domain_policy.html/json/grep politique de mot de passe/verrouillage
domain_trusts.html/json/grep relations de trust domaine/forêt
domain_users_by_group.html utilisateurs regroupés par appartenance à un groupe
Options
-u USERNAME DOMAIN\username ou username@domain
-p PASSWORD mot de passe (demandé si omis)
--hashes LM:NT s'authentifier avec un hash NTLM au lieu d'un mot de passe
-o DIR répertoire de sortie pour les rapports
-r RESOLVE résoudre les noms d'hôtes en IP
-n NO-JSON/GREP ignorer la sortie JSON/greppable, HTML uniquement
--no-html ignorer la sortie HTML
-m, --minimal extraction d'attributs minimale (plus rapide, moins de détails)
Conseils
- Fonctionne avec un seul compte de domaine faiblement privilégié valide : aucun droit élevé n’est nécessaire pour une extraction de base sous les permissions AD par défaut.
- À associer avec BloodHound pour l’analyse de chemins d’attaque sous forme de graphe : ldapdomaindump est plus adapté pour un rapport lisible rapide et une vue d’ensemble des politiques/trusts.
- Le fichier
domain_users_by_group.htmlgénéré est un moyen rapide de repérer les utilisateurs dans des groupes privilégiés (Domain Admins, Enterprise Admins) sans devoir parcourir les attributs LDAP bruts.
Aide / Page de manuel
usage: ldapdomaindump [-h] [-u USERNAME] [-p PASSWORD] [--hashes HASHES]
[-o DIRECTORY] [-r] [-n] [--no-html] [--no-json]
[--no-grep] [-m] [-d]
HOSTNAME
Domain information dumper via LDAP
positional arguments:
HOSTNAME hostname/IP or ldap://, ldaps:// URI of the DC
optional arguments:
-h, --help show this help message and exit
-u USERNAME DOMAIN\username for authentication
-p PASSWORD password for authentication
--hashes LMHASH:NTHASH authenticate via pass-the-hash
-o DIRECTORY directory to write output files to
-r resolve computer hostnames to IP addresses
-n do not output JSON/greppable files
--no-html do not output HTML files
-m, --minimal only dump minimal attribute set (faster)
-d, --delimiter delimiter for greppable output