Az - PHS - Password Hash Sync
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Iz dokumenata: Sinhronizacija heša lozinke je jedna od metoda prijavljivanja koja se koristi za postizanje hibridnog identiteta. Azure AD Connect sinhronizuje heš, heša, lozinke korisnika iz lokalne Active Directory instance u cloud-baziranu Azure AD instancu.
To je najčešća metoda koju koriste kompanije za sinhronizaciju lokalnog AD sa Azure AD.
Svi korisnici i heš heševa lozinki se sinhronizuju iz lokalnog u Azure AD. Međutim, lozinke u čistom tekstu ili originalni heševi se ne šalju u Azure AD. Štaviše, ugrađene bezbednosne grupe (kao što su administratori domena...) nisu sinhronizovane u Azure AD.
Sinhronizacija heševa se dešava svake 2 minute. Međutim, prema zadatom podešavanju, istek lozinke i istek naloga nisu sinhronizovani u Azure AD. Tako da korisnik čija je lokalna lozinka istekla (nije promenjena) može nastaviti da pristupa Azure resursima koristeći staru lozinku.
Kada lokalni korisnik želi da pristupi Azure resursu, autentifikacija se vrši na Azure AD.
PHS je neophodan za funkcije kao što su Zaštita identiteta i AAD usluge domena.
Kada je PHS konfiguran, neka privilegovana naloga se automatski kreiraju:
Nalog MSOL_<installationID>
se automatski kreira u lokalnom AD. Ovaj nalog dobija ulogu Nalozi za sinhronizaciju direktorijuma (vidi dokumentaciju) što znači da ima dozvole replikacije (DCSync) u lokalnom AD.
Nalog Sync_<ime lokalnog ADConnect servera>_installationID
se kreira u Azure AD. Ovaj nalog može resetovati lozinku BILO kojem korisniku (sinhronizovanom ili samo u cloudu) u Azure AD.
Lozinke dva prethodna privilegovana naloga su smeštene u SQL server na serveru gde je Azure AD Connect instaliran. Administratori mogu izvući lozinke tih privilegovanih korisnika u čistom tekstu.
Baza podataka se nalazi u C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf
.
Moguće je izvući konfiguraciju iz jedne od tabela, pri čemu je jedna šifrovana:
SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;
Šifrovana konfiguracija je šifrovana sa DPAPI i sadrži lozinke MSOL_*
korisnika u lokalnom AD i lozinku Sync_* u AzureAD. Stoga, kompromitovanjem ovih je moguće privesc do AD i AzureAD.
Možete pronaći potpun pregled o tome kako su ove kredencijale smeštene i dešifrovane u ovom predavanju.
Ako je server na kojem je instaliran Azure AD connect pridružen domenu (preporučeno u dokumentima), moguće je pronaći ga sa:
Možete takođe koristiti adconnectdump da dobijete te kredencijale.
Kompromitovanjem Sync_*
naloga moguće je resetovati lozinku bilo kog korisnika (uključujući Globalne Administratore)
Takođe je moguće modifikovati lozinke samo za cloud korisnike (čak i ako to nije očekivano)
Moguće je izvući lozinku ovog korisnika.
Druga opcija bi bila da dodelite privilegovane dozvole servisnom principalu, što Sync korisnik ima dozvole da uradi, a zatim pristupite tom servisnom principalu kao način privesc.
Moguće je koristiti Seamless SSO sa PHS, koji je podložan drugim zloupotrebama. Proverite to u:
Az - Seamless SSOLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)