← retour aux outils back to tools

# 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/ldapdomaindump

## Overview

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.html` is 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.html` gé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