Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
Outils/GitHubGitHub/l4rm4nd/pyadrecon
ReconnaissanceAnalyse des VulnérabilitésCollecte d'InformationsPost-ExploitationTests d'IntrusionAuthentificationRed Teaming
GitHubl4rm4nd/pyadrecon

PyADRecon

Implémentation en Python3 d'ADRecon avec prise en charge de l'authentification NTLM et Kerberos pour interroger LDAP. Génère des fichiers CSV individuels et un rapport unique XSLX + HTML sur votre domaine AD.

Voir le dépôt
674il y a 1 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 →
PyADRecon — Implémentation en Python3 d'ADRecon avec prise en charge de l'authentification NTLM et Kerberos pour interroger LDAP. Génère des fichiers CSV individuels et un rapport unique XSLX + HTML sur votre domaine AD. | Kitploit
Site web
Partager
pyadrecon

Implémentation Python3 d'un ADRecon amélioré pour les testeurs d'intrusion et les équipes bleues.

ADRecon est un outil qui collecte des informations sur MS Active Directory et génère un rapport XLSX pour fournir une image holistique de l'état actuel de l'environnement AD cible.

[!TIP] Si vous êtes une équipe rouge, vous pouvez plutôt consulter ADRecon-ADWS.

Table des matières

  • Installation
  • Usage
  • Docker
  • Collection Modules
  • HTML Dashboard
  • Acknowledgements
  • License

Installation

root@kitploit:~
# stable release from pypi
pipx install pyadrecon

# latest commit from github
pipx install git+https://github.com/l4rm4nd/PyADRecon

Ensuite vérifiez l'installation :

root@kitploit:~
pyadrecon --version

[!TIP] Pour Windows, lisez ceci. NTLM + Kerberos pris en charge.

Usage

root@kitploit:~
usage: pyadrecon.py [-h] [--version] [--generate-excel-from CSV_DIR] [-dc DOMAIN_CONTROLLER] [-u USERNAME] [-p [PASSWORD]] [-d DOMAIN] [--auth {ntlm,kerberos}] [--tgt-file TGT_FILE] [--tgt-base64 TGT_BASE64]
                    [--ssl] [--port PORT] [-o OUTPUT] [--page-size PAGE_SIZE] [--threads THREADS] [--dormant-days DORMANT_DAYS] [--password-age PASSWORD_AGE] [--only-enabled] [--collect COLLECT]
                    [--no-excel] [-v]

PyADRecon - Python Active Directory Reconnaissance Tool

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit  
  --generate-excel-from CSV_DIR
                        Generate Excel report from CSV directory (standalone mode, no AD connection needed)
  --generate-dashboard-from CSV_DIR
                        Generate HTML dashboard from existing CSV files (standalone mode)
  -dc, --domain-controller DOMAIN_CONTROLLER
                        Domain Controller IP or hostname
  -u, --username USERNAME
                        Username for authentication
  -p, --password [PASSWORD]
                        Password for authentication (optional if using TGT)
  -d, --domain DOMAIN   Domain name (e.g., DOMAIN.LOCAL) - Required for Kerberos auth
  --auth {ntlm,kerberos}
                        Authentication method (default: ntlm)
  --tgt-file TGT_FILE   Path to Kerberos TGT ccache file (for Kerberos auth)
  --tgt-base64 TGT_BASE64
                        Base64-encoded Kerberos TGT ccache (for Kerberos auth)
  --ssl                 Force SSL/TLS (LDAPS). No LDAP fallback allowed.
  --port PORT           LDAP port (default: 389, use 636 for LDAPS)
  -o, --output OUTPUT   Output directory (default: PyADRecon-Report-<timestamp>)
  --page-size PAGE_SIZE
                        LDAP page size (default: 500)
  --dormant-days DORMANT_DAYS
                        Days for dormant account threshold (default: 90)
  --password-age PASSWORD_AGE
                        Days for password age threshold (default: 180)
  --only-enabled        Only collect enabled objects
  --collect COLLECT     Comma-separated modules to collect (default: all)
  --workstation WORKSTATION
                        Explicitly spoof workstation name for NTLM authentication (default: empty string, bypasses userWorkstations restrictions)  
  --no-excel            Skip Excel report generation
  --no-dashboard        Skip interactive HTML dashboard generation  
  -v, --verbose         Verbose output

Examples:
  # Basic usage with NTLM authentication
  pyadrecon.py -dc 192.168.1.1 -u admin -p password123 -d DOMAIN.LOCAL

  # With Kerberos authentication (bypasses channel binding)
  pyadrecon.py -dc dc01.domain.local -u admin -p password123 -d DOMAIN.LOCAL --auth kerberos

  # With Kerberos using TGT from file (bypasses channel binding)
  pyadrecon.py -dc dc01.domain.local -u admin -d DOMAIN.LOCAL --auth kerberos --tgt-file /tmp/admin.ccache

  # With Kerberos using TGT from base64 string (bypasses channel binding)
  pyadrecon.py -dc dc01.domain.local -u admin -d DOMAIN.LOCAL --auth kerberos --tgt-base64 BQQAAAw...

  # Only collect specific modules
  pyadrecon.py -dc 192.168.1.1 -u admin -p pass -d DOMAIN.LOCAL --collect users,groups,computers

  # Output to specific directory
  pyadrecon.py -dc 192.168.1.1 -u admin -p pass -d DOMAIN.LOCAL -o /tmp/adrecon_output

  # Generate Excel report from existing CSV files (standalone mode)
  pyadrecon.py --generate-excel-from /path/to/CSV-Files -o report.xlsx

[!TIP] PyADRecon essaie toujours LDAPS sur TCP/636 en premier.

Si le drapeau --ssl n'est pas utilisé, LDAP sur TCP/389 peut être essayé en secours.

[!WARNING] Si la liaison de canal LDAP est activée, ce script échouera avec automatic bind not successful - strongerAuthRequired, car ldap3 ne la prend pas en charge (voir ici). Vous devez utiliser l'authentification Kerberos à la place.

Si vous utilisez Kerberos sous Linux, veuillez créer un /etc/krb5.conf valide et une entrée de nom d'hôte du contrôleur de domaine dans /etc/hosts. Lisez ceci. Si vous êtes sur Windows, assurez-vous d'avoir des tickets Kerberos valides. Lisez ceci. Notez que vous pouvez fournir un ticket TGT existant au script via --tgt-file ou --tgt-base64. Par exemple, obtenu par Netexec via netexec smb <TARGET> <ARGS> --generate-tgt <FILEMAME>.

Docker

Il existe également une image Docker disponible sur GHCR.IO.

root@kitploit:~
docker run --rm -v /etc/krb5.conf:/etc/krb5.conf:ro -v /etc/hosts:/etc/hosts:ro -v ./:/tmp/pyadrecon_output ghcr.io/l4rm4nd/pyadrecon:latest -dc dc01.domain.local -u admin -p password123 -d DOMAIN.LOCAL -o /tmp/pyadrecon_output

Collection Modules

Par défaut, PyADRecon exécute tous les modules de collecte. Ils sont référencés comme default ou all.

Cependant, vous pouvez librement sélectionner votre propre ensemble de modules à exécuter :

IconMeaning
🛑Nécessite des privilèges d'administrateur du domaine (par ex. Admins du domaine)
✅Nécessite des privilèges de domaine normaux (par ex. Utilisateurs authentifiés)
💥Nouveau module de collecte en version bêta. Les résultats peuvent être incorrects.

Forest & Domain

  • forest ✅
  • domain ✅
  • trusts ✅
  • sites ✅
  • subnets ✅
  • schema or schemahistory ✅

Domain Controllers

  • dcs or domaincontrollers ✅

Users & Groups

  • users ✅
  • userspns ✅
  • groups ✅
  • groupmembers ✅
  • protectedgroups ✅💥
  • krbtgt ✅
  • asreproastable ✅
  • kerberoastable ✅

Computers & Printers

  • computers ✅
  • computerspns ✅
  • printers ✅

OUs & Group Policy

  • ous ✅
  • gpos ✅
  • gplinks ✅

Passwords & Credentials

  • passwordpolicy ✅
  • fgpp or finegrainedpasswordpolicy 🛑
  • laps 🛑
  • bitlocker 🛑💥

Managed Service Accounts

  • gmsa or groupmanagedserviceaccounts ✅💥
  • dmsa or delegatedmanagedserviceaccounts ✅💥
    • Fonctionne uniquement avec le schéma AD de Windows Server 2025 et supérieur.

Certificates

  • adcs or certificates ✅💥
    • Détecte ESC1, ESC2, ESC3, ESC4 et ESC9

DNS

  • dnszones ✅
  • dnsrecords ✅

HTML Dashboard

PyADRecon génère automatiquement un tableau de bord HTML contenant les statistiques clés et les constats de sécurité lorsque tous les modules de collecte sont exécutés.

Si nécessaire, vous pouvez désactiver la création du tableau de bord lors de la collecte initiale des données en utilisant --no-dashboard. Le tableau de bord peut ensuite être généré à partir de fichiers CSV existants avec --generate-dashboard-from <CSV_DIR>.

[!CAUTION] Il s'agit d'une fonctionnalité bêta. Les données affichées peuvent être mal interprétées ou signalées comme problème. Prenez cela avec des pincettes !

image
image image image

Acknowledgements

Un grand merci aux personnes suivantes :

  • S3cur3Th1sSh1t pour une première ébauche Claude de ce portage Python3
  • Sense-of-Security pour le script ADRecon original en PowerShell
  • cannatag pour l'excellent client Python ldap3
  • Fortra pour l'excellente suite impacket
  • Anthropic pour les LLM Claude

License

PyADRecon est publié sous la licence MIT.

Les bibliothèques tierces suivantes sont utilisées :

BibliothèqueLicence
ldap3LGPL v3
openpyxlMIT
gssapiMIT
impacketApache 2.0
winkerberos

Veuillez vous référer aux licences respectives de ces bibliothèques lors de l'utilisation ou de la redistribution de ce logiciel.

Télécharger l’outil
Apache 2.0