Az - Tokens & Public Applications
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)
Entra ID is Microsoft's cloud-based identity and access management (IAM) platform, serving as the foundational authentication and authorization system for services like Microsoft 365 and Azure Resource Manager. Azure AD implementeer die OAuth 2.0 magtigingraamwerk en die OpenID Connect (OIDC) verifikasieprotokol om toegang tot hulpbronne te bestuur.
Key Participants in OAuth 2.0:
Resource Server (RS): Beskerm hulpbronne wat deur die hulpbron eienaar besit word.
Resource Owner (RO): Tipies 'n eindgebruiker wat die beskermde hulpbronne besit.
Client Application (CA): 'n Aansoek wat toegang tot hulpbronne soek namens die hulpbron eienaar.
Authorization Server (AS): Gee toegangstokens aan kliënttoepassings nadat dit geverifieer en gemagtig is.
Scopes and Consent:
Scopes: Fynkorrelasie toestemmings wat op die hulpbronbediener gedefinieer is wat toegangsvlakke spesifiseer.
Consent: Die proses waardeur 'n hulpbron eienaar 'n kliënttoepassing toestemming gee om toegang tot hulpbronne met spesifieke scopes te verkry.
Microsoft 365 Integration:
Microsoft 365 gebruik Azure AD vir IAM en bestaan uit verskeie "eerste-party" OAuth-toepassings.
Hierdie toepassings is diep geïntegreer en het dikwels onderling afhanklike diensverhoudings.
Om die gebruikerservaring te vereenvoudig en funksionaliteit te handhaaf, gee Microsoft "implisiete toestemming" of "vooraf toestemming" aan hierdie eerste-party toepassings.
Implisiete Toestemming: Sekere toepassings word outomaties toegang tot spesifieke scopes sonder eksplisiete gebruiker of administrateur goedkeuring gegee.
Hierdie vooraf goedgekeurde scopes is tipies verborge vir beide gebruikers en administrateurs, wat dit minder sigbaar maak in standaard bestuursinterfaces.
Client Application Types:
Confidential Clients:
Besit hul eie geloofsbriewe (bv. wagwoorde of sertifikate).
Kan veilig hulself verifieer aan die magtiging bediener.
Public Clients:
Het nie unieke geloofsbriewe nie.
Kan nie veilig aan die magtiging bediener verifieer nie.
Veiligheidsimplikasie: 'n Aanvaller kan 'n openbare kliënttoepassing naboots wanneer hy tokens aan vra, aangesien daar geen meganisme is vir die magtiging bediener om die legitimiteit van die toepassing te verifieer nie.
Daar is drie tipes tokens wat in OIDC gebruik word:
Access Tokens: Die kliënt bied hierdie token aan die hulpbronbediener voor om toegang tot hulpbronne te verkry. Dit kan slegs gebruik word vir 'n spesifieke kombinasie van gebruiker, kliënt en hulpbron en kan nie herroep word tot vervaldatum nie - dit is 1 uur per standaard.
ID Tokens: Die kliënt ontvang hierdie token van die magtiging bediener. Dit bevat basiese inligting oor die gebruiker. Dit is gebind aan 'n spesifieke kombinasie van gebruiker en kliënt.
Refresh Tokens: Verskaf aan die kliënt saam met toegangstoken. Gebruik om nuwe toegang en ID tokens te verkry. Dit is gebind aan 'n spesifieke kombinasie van gebruiker en kliënt en kan herroep word. Standaard vervaldatum is 90 dae vir inaktiewe verfrissing tokens en geen vervaldatum vir aktiewe tokens (dit is moontlik om nuwe verfrissing tokens van 'n verfrissing token te verkry).
'n Verfrissing token moet aan 'n aud
, aan sommige scopes, en aan 'n tenant gekoppel wees en dit moet slegs toegangstokens vir daardie aud, scopes (en nie meer nie) en tenant kan genereer. Dit is egter nie die geval met FOCI toepassings tokens nie.
'n Verfrissing token is geënkripteer en slegs Microsoft kan dit dekripteer.
Om 'n nuwe verfrissing token te verkry, herroep nie die vorige verfrissing token nie.
Inligting vir voorwaardelike toegang is gestoor binne die JWT. So, as jy die token van 'n toegelate IP-adres aan vra, sal daardie IP in die token gestoor word en dan kan jy daardie token van 'n nie-toegelate IP gebruik om toegang tot die hulpbronne te verkry.
Die veld wat in die "aud" veld aangedui word, is die hulpbronbediener (die toepassing) wat gebruik word om die aanmelding uit te voer.
Die opdrag az account get-access-token --resource-type [...]
ondersteun die volgende tipes en elkeen daarvan sal 'n spesifieke "aud" in die resulterende toegangstoken voeg:
Let daarop dat die volgende net die API's is wat deur az account get-access-token
ondersteun word, maar daar is meer.
Die omvang van 'n toegangstoken word binne die scp sleutel binne die toegangstoken JWT gestoor. Hierdie scopes definieer waartoe die toegangstoken toegang het.
As 'n JWT toegelaat word om 'n spesifieke API te kontak, maar nie die omvang het om die aangevraagde aksie uit te voer nie, sal dit nie in staat wees om die aksie met daardie JWT uit te voer nie.
Voorheen is genoem dat verfrissingstokens aan die scopes waaraan dit gegenereer is, aan die toepassing en huurder waaraan dit gegenereer is, gekoppel moet wees. As enige van hierdie grense oorgesteek word, is dit moontlik om voorregte te verhoog, aangesien dit moontlik sal wees om toegangstokens vir ander hulpbronne en huurders te genereer waartoe die gebruiker toegang het en met meer scopes as wat oorspronklik bedoel was.
Boonop, dit is moontlik met alle verfrissingstokens in die Microsoft identity platform (Microsoft Entra-rekeninge, Microsoft persoonlike rekeninge, en sosiale rekeninge soos Facebook en Google) omdat, soos die dokumentasie noem: "Verfrissingstokens is gebonde aan 'n kombinasie van gebruiker en kliënt, maar is nie aan 'n hulpbron of huurder gekoppel nie. 'n Kliënt kan 'n verfrissingstoken gebruik om toegangstokens te verkry oor enige kombinasie van hulpbron en huurder waar dit toestemming het om dit te doen. Verfrissingstokens is versleuteld en slegs die Microsoft identity platform kan dit lees."
Boonop, let daarop dat die FOCI-toepassings openbare toepassings is, so geen geheim is nodig om by die bediener te autentiseer nie.
Dan kan bekende FOCI-kliënte wat in die oorspronklike navorsing gerapporteer is, hier gevind word.
Volgende met die vorige voorbeeldkode, in hierdie kode word 'n nuwe token vir 'n ander scope aangevra:
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)