AyDee
AyDee is an operator-focused Active Directory reconnaissance and attack-surface automation tool. It is built to cover the common first-pass AD workflow from one CLI and write the output into one results directory instead of making you glue together a dozen separate commands.
AyDee is organized around the normal early AD workflow:
- Discover and fingerprint the target
- Validate access and enumerate LDAP, SMB, and WinRM
- Surface attack paths, roast material, and BloodHound data
- Write reports and artifacts into a single workspace
What AyDee Is Good At
- Fast first-pass AD triage from a host or domain controller target
- Password, NTLM, and Kerberos-backed recon from the same CLI
- Domain discovery from target identity, DNS, and LDAP
- LDAP fingerprinting, anonymous bind checks, and authenticated directory recon
- SMB share enumeration, SYSVOL inspection, and GPP hunting
- WinRM credential validation
- BloodHound collection with operator-friendly prompts
- Credential attack helpers for Kerberoast, AS-REP roast, and pre2k/default machine-account checks
- Multi-format reporting with JSON, text, HTML, and a workspace manifest
What It Is Not
- Not a full exploitation framework
- Not stealth-first in
automode - Not fully self-contained: several modules shell out to external tools
Installation
Release Binaries
Prebuilt binaries are published on GitHub Releases:
aydee-v<version>-linux-x86_64aydee-v<version>-windows-x86_64.exe
Build From Source
Requirements:
- Rust toolchain with
cargo
Runtime Dependencies
AyDee skips unsupported feature paths when the needed tool is missing, instead of aborting the whole run.
Core operator tools:
smbclientnxc,netexec, orcrackmapexecdigntpdateorrdate
BloodHound:
bloodhound-pythonorbloodhound-ce-python
Impacket helpers:
impacket-GetUserSPNsorGetUserSPNs.pyimpacket-GetNPUsersorGetNPUsers.pyimpacket-getTGTorgetTGT.py
Note:
- The Windows binary is published and supported by the release workflow, but the full feature set is still easiest to use on Linux because most external operator tooling is Linux-first.
Quick Start
Anonymous Fingerprinting
Password-Backed Recon
NTLM-Backed Recon
Kerberos-Backed Recon
BloodHound Only
Focused LDAP + SMB Checks By Tag
Explicit Spray Run
Auth Modes
- Anonymous: omit credentials; authenticated stages are skipped.
- Password:
-uplus-p - NTLM:
-uplus-H - Kerberos:
-uplus-k, optionally with--ccache
Important behavior:
- A ccache alone does not enable Kerberos-backed collectors. Use
-k. - If
KRB5CCNAMEis already exported, AyDee will detect and use it. - If credentials are incomplete, authenticated modules are skipped instead of partially running.
Run Modes
| Mode | Behavior |
|---|---|
auto |
Default. Runs the main non-invasive pipeline. |
semi |
Conservative. Skips noisier stages like kerberos, spray, credential, and bloodhound unless explicitly selected. |
manual |
Runs only modules named in --only. |
Modules
Available values for --only:
scandnsldapldap-authsmb-authrpcwinrmkerberosspraycredentialbloodhoundattacks
Compatibility aliases:
auth-ldap->ldap-authcredential-attacks->credential
Tag Filters
--tags currently narrows deeper authenticated LDAP and SMB subchecks.
LDAP tags:
kerberoastasreproastdelegationmaqtrustsadcscomputerspsodcsynclapsgposhadow-credsuser-desc
SMB tags:
gppsysvol
Core Options
--target <TARGET>target IP or hostname-d, --domain <DOMAIN>domain hint-u, --username <USERNAME>username-p, --password <PASSWORD>password-H, --ntlm <NTLM>NTLM hash-k, --kerberosenable Kerberos auth mode--ccache <CCACHE>set or resolveKRB5CCNAME--collection <COLLECTION>BloodHound collection scope-m, --mode <MODE>auto,semi, ormanual--only <MODULES>comma-separated module allowlist--tags <TAGS>comma-separated subcheck filter-P, --ports <PORTS>custom port list or range--timeout <SECONDS>TCP scan timeout--ldap-port <PORT>LDAP port override-w, --wordlist <WORDLIST>Kerberos user-enum wordlist--spray-passwords <LIST>comma-separated spray passwords--userlist <PATH>external spray user list--spray-limit <N>max users per spray round--spray-delay <MS>delay between spray attempts--no-fix-clock-skewdisable startup clock skew correction--non-interactivesuppress all prompts-o, --output <DIR>custom output directory--report-json <PATH>JSON report path--report-text <PATH>text summary path--manifest-json <PATH>workspace manifest path
Backward-compatible aliases also exist for older flags such as --auth-user, --auth-pass, --auth-ntlm, --spray-password, --spray-userlist, --spray-max-users, and --spray-delay-ms.
What Gets Written
By default, each run writes to:
results/<target>_<unix_timestamp>/
Typical artifacts:
aydee_report.jsonaydee_summary.txtaydee_report.htmlworkspace_manifest.jsonbloodhound_output/kerberoast_hashes_*.txtasreproast_hashes_*.txt- recovered
.ccachetickets from successful pre2k/default machine-account hits
The report set gives you:
- structured JSON for scripting or ingestion
- a plain text summary for quick review
- an HTML report with findings and risk scoring
- a workspace manifest of generated artifacts
Operator Notes
manualmode requires--only.--non-interactivesuppresses prompt-driven stages such as clock sync and BloodHound confirmation.- Clock skew correction is attempted at startup unless
--no-fix-clock-skewis set. - Missing external tools do not stop the whole run; AyDee skips only the affected path.
- Password spraying is opt-in only.
- The
attacksstage focuses on unauthenticated attack-surface checks such as AD CS Web Enrollment, coercion endpoints, and relay-adjacent surfaces.
Legal
Use AyDee only on systems you own or are explicitly authorized to assess.