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 ni jukwaa la usimamizi wa utambulisho na ufikiaji (IAM) la Microsoft linalotegemea wingu, likihudumia kama mfumo wa msingi wa uthibitishaji naidhinisha huduma kama Microsoft 365 na Azure Resource Manager. Azure AD inatekeleza mfumo wa idhini wa OAuth 2.0 na itifaki ya uthibitishaji ya OpenID Connect (OIDC) ili kusimamia ufikiaji wa rasilimali.
Washiriki Wakuu katika OAuth 2.0:
Seva ya Rasilimali (RS): Inalinda rasilimali zinazomilikiwa na mmiliki wa rasilimali.
Mmiliki wa Rasilimali (RO): Kawaida ni mtumiaji wa mwisho ambaye anamiliki rasilimali zilizolindwa.
Programu ya Mteja (CA): Programu inayotafuta ufikiaji wa rasilimali kwa niaba ya mmiliki wa rasilimali.
Seva ya Uidhinishaji (AS): Inatoa alama za ufikiaji kwa programu za mteja baada ya kuthibitisha na kuidhinisha.
Mikondo na Idhini:
Mikondo: Ruhusa za kina zilizofafanuliwa kwenye seva ya rasilimali ambazo zinaelezea viwango vya ufikiaji.
Idhini: Mchakato ambao mmiliki wa rasilimali anatoa ruhusa kwa programu ya mteja kufikia rasilimali zenye mikondo maalum.
Ushirikiano wa Microsoft 365:
Microsoft 365 inatumia Azure AD kwa IAM na inajumuisha programu nyingi za "first-party" za OAuth.
Programu hizi zimeunganishwa kwa kina na mara nyingi zina uhusiano wa huduma zinazohusiana.
Ili kurahisisha uzoefu wa mtumiaji na kudumisha kazi, Microsoft inatoa "idhini iliyodhaniwa" au "idhini ya awali" kwa programu hizi za first-party.
Idhini Iliyodhaniwa: Programu fulani zinapewa ufikiaji wa mikondo maalum bila idhini wazi ya mtumiaji au msimamizi.
Mikondo hii ya awali kwa kawaida inafichwa kutoka kwa watumiaji na wasimamizi, na kuifanya iwe na mwonekano mdogo katika interfaces za usimamizi wa kawaida.
Aina za Programu za Mteja:
Wateja wa Siri:
Wana akreditif zao wenyewe (mfano, nywila au vyeti).
Wanaweza kujithibitisha kwa usalama kwa seva ya uidhinishaji.
Wateja wa Umma:
Hawana akreditif za kipekee.
Hawawezi kujithibitisha kwa usalama kwa seva ya uidhinishaji.
Athari za Usalama: Mshambuliaji anaweza kujifanya kuwa programu ya mteja wa umma anapohitaji alama, kwani hakuna mekanizma ya seva ya uidhinishaji kuthibitisha uhalali wa programu.
Kuna aina tatu za alama zinazotumika katika OIDC:
Alama za Ufikiaji: Mteja anawasilisha alama hii kwa seva ya rasilimali ili kufikia rasilimali. Inaweza kutumika tu kwa mchanganyiko maalum wa mtumiaji, mteja, na rasilimali na haiwezi kufutwa hadi ipite muda - yaani, saa 1 kwa kawaida.
Alama za ID: Mteja anapata alama hii kutoka kwa seva ya uidhinishaji. Inajumuisha taarifa za msingi kuhusu mtumiaji. Inafungwa kwa mchanganyiko maalum wa mtumiaji na mteja.
Alama za Kurejesha: Zinapatikana kwa mteja pamoja na alama ya ufikiaji. Zinatumika kupata alama mpya za ufikiaji na ID. Inafungwa kwa mchanganyiko maalum wa mtumiaji na mteja na inaweza kufutwa. Muda wa kawaida wa kuisha ni siku 90 kwa alama za kurejesha zisizofanya kazi na hakuna muda wa kuisha kwa alama za kazi (kutoka kwa alama ya kurejesha inawezekana kupata alama mpya za kurejesha).
Alama ya kurejesha inapaswa kuunganishwa na aud
, kwa baadhi ya mikondo, na kwa tenant na inapaswa kuwa na uwezo wa kuzalisha alama za ufikiaji kwa ajili ya aud hiyo, mikondo (na hakuna zaidi) na tenant. Hata hivyo, hii si hali kwa alama za programu za FOCI.
Alama ya kurejesha imefichwa na ni Microsoft pekee inayoweza kuifungua.
Kupata alama mpya ya kurejesha hakufuti alama ya kurejesha ya awali.
Taarifa za ufikiaji wa masharti zimehifadhiwa ndani ya JWT. Hivyo, ikiwa unahitaji alama kutoka kwa anwani ya IP iliyoidhinishwa, hiyo IP itahifadhiwa katika alama na kisha unaweza kutumia alama hiyo kutoka kwa IP isiyoidhinishwa ili kufikia rasilimali.
Uwanja ulioonyeshwa katika uwanja wa "aud" ni seva ya rasilimali (programu) inayotumika kufanya kuingia.
Amri az account get-access-token --resource-type [...]
inasaidia aina zifuatazo na kila moja itongeza "aud" maalum katika alama ya ufikiaji inayotokana:
Kumbuka kwamba zifuatazo ni APIs zinazosaidiwa na az account get-access-token
lakini kuna zaidi.
Mikondo ya alama ya ufikiaji imehifadhiwa ndani ya ufunguo wa scp ndani ya alama ya JWT ya ufikiaji. Mikondo hii inaelezea ni nini alama ya ufikiaji ina ufikiaji.
Ikiwa JWT inaruhusiwa kuwasiliana na API maalum lakini haina mikondo ya kufanya kitendo kilichohitajika, haitakuwa na uwezo wa kufanya kitendo hicho na JWT hiyo.
Kabla ilisemwa kwamba refresh tokens zinapaswa kuunganishwa na scopes ambazo zilitengenezwa nazo, kwa application na tenant ambazo zilitengenezwa kwao. Ikiwa mojawapo ya mipaka hii itavunjwa, inawezekana kupandisha mamlaka kwani itakuwa inawezekana kutengeneza access tokens kwa rasilimali nyingine na tenants ambazo mtumiaji anaweza kufikia na kwa scopes zaidi kuliko ilivyokusudiwa awali.
Zaidi ya hayo, hii inawezekana na refresh tokens zote katika Microsoft identity platform (Microsoft Entra accounts, Microsoft personal accounts, na akaunti za kijamii kama Facebook na Google) kwa sababu kama docs zinavyosema: "Refresh tokens zimefungwa kwa mchanganyiko wa mtumiaji na mteja, lakini hazifungwi kwa rasilimali au tenant. Mteja anaweza kutumia refresh token kupata access tokens katika mchanganyiko wowote wa rasilimali na tenant ambapo ana ruhusa kufanya hivyo. Refresh tokens zimefichwa na ni Microsoft identity platform pekee inayoweza kuzisoma."
Zaidi ya hayo, kumbuka kwamba FOCI applications ni public applications, hivyo siri yoyote haitahitajika kuthibitisha kwenye seva.
Kisha wateja wa FOCI waliotambulika waliripotiwa katika original research wanaweza kupatikana hapa.
Kufuata mfano wa awali wa msimbo, katika msimbo huu inahitajika token mpya kwa scope tofauti:
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)