Account Types
| Regular SA | MSA | gMSA | dMSA | |
|---|---|---|---|---|
| Password rotation | Manual | Auto (30d) | Auto (30d) | Auto |
| Multi-host | Yes | No (1 host) | Yes | Yes |
| Kerberoastable | Yes (if SPN) | Yes | Yes | No |
| NT hash extractable | Via dump | No | Via LDAP (if in group) | Via key package |
| Min. Windows Server | Any | 2008 R2 | 2012 | 2025 |
| Attack primitive | Kerberoast / dump | Kerberoast | msDS-ManagedPassword | BadSuccessor |
msDS-GroupMSAMembership.
dMSA (Delegated MSA) is new in Windows Server 2025, designed to replace regular service accounts via a migration mechanic. The predecessor’s SIDs are inherited into the dMSA’s PAC, which is the root of CVE-2025-53779 (BadSuccessor).
gMSA
How It Works
The domain-wide KDS root key is created once per domain. Each gMSA’s 256-bit password is derived deterministically from:- The KDS root key
- The account name and domain
- A time counter that advances every 30 days
msDS-GroupMSAMembership ACL can retrieve msDS-ManagedPassword from LDAP, a blob containing the current and previous NT hashes. The password never travels as plaintext.
Enumeration
Attack: Retrieve NT Hash via msDS-ManagedPassword
If your controlled account is listed inmsDS-GroupMSAMembership, or you have write access to add yourself there, you can retrieve the password blob and extract the NT hash directly.
Mitigations
- Restrict
msDS-GroupMSAMembershipto the minimum set of hosts that actually run the service. - Audit GenericWrite / GenericAll over gMSA objects via BloodHound or ACL enumeration.
- Monitor LDAP reads of
msDS-ManagedPassword(Event 4662, propertymsDS-ManagedPassword).
dMSA and BadSuccessor (CVE-2025-53779)
How dMSA Migration Works
dMSA provides a migration path from regular service accounts. The key attributes:msDS-ManagedAccountPrecededByLink: points to the predecessor account DNmsDS-DelegatedMSAState: tracks migration state0: not started1: migration in progress (dMSA accumulates predecessor SIDs, predecessor still active)2: migration complete (predecessor disabled, dMSA fully inherits SIDs)
1 or 2, it includes the predecessor account’s objectSid and all group SIDs in the PAC. A dMSA linked to a Domain Admin effectively becomes that Domain Admin from the KDC’s perspective.
KERB-DMSA-KEY-PACKAGE
The AS-REP for a dMSA contains aKERB-DMSA-KEY-PACKAGE in its encrypted payload. It holds two key sets:
current-keys: the dMSA’s own Kerberos keys (AES256, AES128, RC4)previous-keys: the predecessor account’s keys at migration time
previous-keys because the DC preserves the old credential for compatibility during the migration window. Since you created the dMSA and set its password, you can decrypt the AS-REP, parse the key package, and extract the predecessor’s NT hash.
Why the Attack Works
Any principal withCreateChild rights on an OU can:
- Create a dMSA in that OU
- Set
msDS-ManagedAccountPrecededByLinkto any account in the domain (no write on the predecessor required) - Set
msDS-DelegatedMSAStateto2 - Request a TGT: the PAC contains the predecessor’s SIDs and the AS-REP contains the predecessor’s NT hash in the key package
CreateChild on any OU.
Enumeration
Attack Chain
dMSA_keydump
Parses the KERB-DMSA-KEY-PACKAGE from a dMSA ccache and extracts the predecessor NT hash
Patch Status
Microsoft patched CVE-2025-53779 by requiring a bidirectional link:msDS-ManagedAccountPrecededByLink on the dMSA and a corresponding back-link on the predecessor object. Post-patch, write access on the predecessor is required to establish the link, which defeats the attack for most scenarios. Verify patch status before attempting.
Detection
| Event ID | Source | Trigger |
|---|---|---|
5137 | Security | Directory object created (dMSA creation) |
5136 | Security | Directory object modified (state or link set) |
2946 | System | dMSA migration state change |
msDS-DelegatedMSAState set to 2 by non-privileged accounts, and for msDS-ManagedAccountPrecededByLink pointing to privileged accounts.
Kerberoasting Service Accounts
Service accounts with SPNs are Kerberoastable regardless of account type. gMSAs are Kerberoastable but the password is 256 bits of random data and practically uncrackable: targetmsDS-ManagedPassword instead. dMSAs do not use RC4 by default and are not Kerberoastable.