pip install bloodyAD or clone from CravateRouge/bloodyAD.
Authentication
bloodyAD supports multiple credential types on the same base command. Every command follows the patternbloodyAD [auth flags] -d DOMAIN --host DC [subcommand].
Enumeration
Theget and msldap subcommands cover the most useful recon paths. Start with get writable to immediately see what your current user can modify, then use get object to inspect specific targets.
Writable Objects
get writable is the first command to run after gaining a foothold. It shows every AD object your current user has write access to, which directly maps to abuse paths.
Object Attributes
get object reads LDAP attributes of any single AD object. Use it to inspect userAccountControl flags, retrieve LAPS passwords, gMSA secrets, or group membership before attempting abuse.
Membership and Hierarchy
These commands help map group relationships and OU structure without needing BloodHound ingested.Raw LDAP Search
get search issues a raw LDAP query. Use it when no built-in subcommand covers what you need.
DNS Records
get dnsDump is useful for internal network mapping; it returns all DNS zone records the current user can read.
Trust Relationships
Delegation Recon
Thesemsldap subcommands find delegation misconfigurations that feed into unconstrained, constrained, and RBCD attack chains.
Legacy and Service Accounts
LAPS
BadSuccessor Check
ACL Abuse
ACL abuse flows directly fromget writable output. These add, remove, and set commands let you exploit the rights you discovered in enumeration.
GenericAll / Full Control
Granting yourself GenericAll on an object gives complete control: you can change its password, modify its attributes, or add it to groups. Requires WriteDacl or ownership of the target.Group Membership
Adding yourself to a privileged group (e.g., Domain Admins, Backup Operators) is the fastest path to elevated access when you have GenericAll or WriteProperty on the group.Password Reset
Exploits ForceChangePassword or GenericAll rights. No knowledge of the current password is required.Ownership
Taking ownership of an object lets you then grant yourself any rights via WriteDacl. Requires WriteOwner on the target.DCSync Rights
DCSync requires the Replicating Directory Changes and Replicating Directory Changes All extended rights on the domain root. If you have WriteDacl on the domain object, you can grant yourself these.Generic Attribute Write
set object writes any writable LDAP attribute directly. Use it for targeted Kerberoasting by adding an SPN to a user, or to clear attributes after abuse.
Delegation Abuse
RBCD abuse requires write access tomsDS-AllowedToActOnBehalfOfOtherIdentity on the target computer. bloodyAD handles the attribute encoding automatically.
getST.py to request the service ticket and then move laterally.
Shadow Credentials
Shadow Credentials abuse themsDS-KeyCredentialLink attribute. Adding a Key Credential to a target account allows authentication as that account via PKINIT without knowing its password. Requires GenericAll or WriteProperty on the attribute.
add shadowCredentials command outputs the certificate files and NT hash directly. If PKINIT is blocked, use gettgtpkinit.py or Certipy auth manually with the generated cert.
UAC Manipulation
UAC flags control account behaviour: pre-auth requirements, password expiry, account status, and more. Setting or unsetting these flags requires GenericAll or WriteProperty on the account.BadSuccessor (Windows Server 2025)
BadSuccessor is a privilege escalation path affecting Windows Server 2025 domain controllers. An attacker withCreateChild rights on any OU can create a delegated Managed Service Account (dMSA) that inherits the privileges of any existing account, including Domain Admins.
First confirm the vulnerability exists:
Object Management
These commands cover object creation, deletion, and DNS record manipulation. Computer account creation is commonly needed as a prerequisite for RBCD attacks when MachineAccountQuota is above 0.Certifried (CVE-2022-26923)
Certifried abuses the fact that the AD CS Machine template usesdNSHostName as the certificate subject rather than the machine SID. A low-priv user with ms-DS-MachineAccountQuota > 0 can create a computer account, set its dNSHostName to match a DC, request a Machine cert, and use that cert to set up RBCD against the DC.
Recycle Bin & Tombstone Reanimation
When the AD Recycle Bin is enabled, deleted objects are preserved as tombstones with most attributes intact. If you can read or write deleted objects, you may be able to restore a previously privileged account or read credentials that were on it before deletion.Enumerate Deleted Objects
The LDAP control OID1.2.840.113556.1.4.2064 unlocks visibility of deleted, tombstoned, and recycled objects in queries.
Restore a Tombstoned Object
Reanimation requires theReanimate Tombstones extended right on the domain naming context, or ownership of the deleted object. Restore by SID (shown in the deleted object’s objectSid attribute).
Retention Settings
These attributes control how long objects remain accessible after deletion.Global Flags Reference
| Flag | Purpose |
|---|---|
-H / --host | DC hostname or IP |
-i / --dc-ip | DC IP when hostname cannot resolve |
-d | Domain (e.g., domain.local) |
-u / -p | Username and password or LMHASH:NTHASH |
-k | Kerberos auth: ccache=/path/to/file.ccache, kirbi=file.kirbi, or keytab=file.keytab |
-c | Certificate auth: /path/to/key:/path/to/cert |
-s | Use LDAPS (port 636) |
--gc | Connect to Global Catalog (port 3268) for forest-wide queries |
--json | Output results as JSON |
-v DEBUG | Verbose output for troubleshooting LDAP errors |