Az - Cloud Kerberos Trust
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ovaj post je sažetak https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/ koji se može proveriti za dodatne informacije o napadu. Ova tehnika je takođe komentarisana u https://www.youtube.com/watch?v=AFay_58QubY.
Kada se uspostavi poverenje sa Azure AD, stvara se Read Only Domain Controller (RODC) u AD-u. RODC računar, nazvan AzureADKerberos$
. Takođe, sekundarni krbtgt
račun nazvan krbtgt_AzureAD
. Ovaj račun sadrži Kerberos ključeve koji se koriste za karte koje Azure AD kreira.
Dakle, ako je ovaj račun kompromitovan, moglo bi biti moguće imitirati bilo kog korisnika... iako to nije tačno jer je ovom računu onemogućeno kreiranje karata za bilo koju zajedničku privilegovanu AD grupu kao što su Domain Admins, Enterprise Admins, Administrators...
Međutim, u stvarnom scenariju biće privilegovanih korisnika koji nisu u tim grupama. Dakle, novi krbtgt račun, ako bude kompromitovan, mogao bi se koristiti za njihovu imitaciju.
Štaviše, kada se korisnik autentifikuje na Windows-u koristeći hibridni identitet, Azure AD će izdati delimičnu Kerberos kartu zajedno sa PRT-om. TGT je delimičan jer AzureAD ima ograničene informacije o korisniku u on-prem AD-u (kao što su identifikator bezbednosti (SID) i ime).
Windows može zatim razmeniti ovu delimičnu TGT za punu TGT tražeći servisnu kartu za krbtgt
servis.
Kako može postojati usluga koja ne podržava Kerberos autentifikaciju, već NTLM, moguće je zatražiti delimičnu TGT potpisanu koristeći sekundarni krbtgt
ključ uključujući KERB-KEY-LIST-REQ
polje u PADATA delu zahteva i zatim dobiti punu TGT potpisanu primarnim krbtgt
ključem uključujući NT hash u odgovoru.
Kada AzureAD generiše delimičnu TGT, koristiće detalje koje ima o korisniku. Dakle, ako bi Global Admin mogao da izmeni podatke kao što su identifikator bezbednosti i ime korisnika u AzureAD, kada zatraži TGT za tog korisnika, identifikator bezbednosti bi bio drugačiji.
Nije moguće to učiniti putem Microsoft Graph-a ili Azure AD Graph-a, ali je moguće koristiti API koji Active Directory Connect koristi za kreiranje i ažuriranje sinhronizovanih korisnika, što mogu koristiti Global Admini da izmene SAM ime i SID bilo kog hibridnog korisnika, a zatim, ako se autentifikujemo, dobijamo delimičnu TGT koja sadrži izmenjeni SID.
Napomena da ovo možemo učiniti sa AADInternals i ažurirati sinhronizovane korisnike putem Set-AADIntAzureADObject cmdlet-a.
Uspeh napada i sticanje privilegija Domain Admin zavise od ispunjavanja određenih preduslova:
Sposobnost da se menjaju računi putem Synchronization API je ključna. To se može postići imajući ulogu Global Admin ili posedujući AD Connect sinhronizovani račun. Alternativno, uloga Hybrid Identity Administrator bi bila dovoljna, jer omogućava upravljanje AD Connect-om i uspostavljanje novih sinhronizovanih računa.
Prisutnost hibridnog računa je neophodna. Ovaj račun mora biti podložan izmeni sa podacima žrtvovanog računa i takođe bi trebao biti dostupan za autentifikaciju.
Identifikacija ciljnog računa žrtve unutar Active Directory je neophodna. Iako se napad može izvršiti na bilo koji račun koji je već sinhronizovan, Azure AD tenant ne sme imati replicirane on-premises identifikatore bezbednosti, što zahteva izmenu nesinhronizovanog računa kako bi se dobila karta.
Pored toga, ovaj račun bi trebao imati privilegije jednake privilegijama domain admin-a, ali ne sme biti član tipičnih AD administrator grupa kako bi se izbeglo generisanje nevažećih TGT-ova od strane AzureAD RODC-a.
Najpogodniji cilj je Active Directory račun koji koristi AD Connect Sync servis. Ovaj račun nije sinhronizovan sa Azure AD, ostavljajući njegov SID kao mogući cilj, i inherentno ima privilegije jednake privilegijama domain admin-a zbog svoje uloge u sinhronizaciji hešova lozinki (pod pretpostavkom da je Password Hash Sync aktivan). Za domene sa ekspresnom instalacijom, ovaj račun je prefiksiran sa MSOL_. Za druge instance, račun se može identifikovati prebrojavanjem svih računa koji imaju privilegije Directory Replication na objektu domena.
Proverite u originalnom postu: https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)