GCP - Understanding Domain-Wide Delegation
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)
This post is the introduction of https://www.hunters.security/en/blog/delefriend-a-newly-discovered-design-flaw-in-domain-wide-delegation-could-leave-google-workspace-vulnerable-for-takeover which can be accessed for more details.
Google Workspace's Domain-Wide delegation inaruhusu kituo cha utambulisho, ama programu ya nje kutoka Google Workspace Marketplace au GCP Service Account ya ndani, kupata data katika Workspace kwa niaba ya watumiaji. Kipengele hiki, ambacho ni muhimu kwa programu zinazoshirikiana na Google APIs au huduma zinazohitaji uigaji wa mtumiaji, kinaboresha ufanisi na kupunguza makosa ya kibinadamu kwa kuendesha kazi kiotomatiki. Kwa kutumia OAuth 2.0, waendelezaji wa programu na wasimamizi wanaweza kuwapa akaunti hizi za huduma ufikiaji wa data za watumiaji bila idhini ya mtumiaji binafsi. Google Workspace inaruhusu uundaji wa aina mbili kuu za utambulisho wa kimataifa wa wakala:
GWS Applications: Programu kutoka kwenye Marketplace ya Workspace zinaweza kuwekwa kama utambulisho wa wakala. Kabla ya kupatikana kwenye soko, kila programu ya Workspace hupitia ukaguzi na Google ili kupunguza matumizi mabaya yanayoweza kutokea. Ingawa hii haiondoi kabisa hatari ya matumizi mabaya, inafanya kuwa ngumu zaidi kwa matukio kama hayo kutokea.
GCP Service Account: Jifunze zaidi kuhusu GCP Service Accounts here.
Hivi ndivyo GCP Service Account inaweza kupata Google APIs kwa niaba ya utambulisho mwingine katika Google Workspace:
Utambulisho unaunda JWT: Utambulisho unatumia funguo binafsi za akaunti ya huduma (sehemu ya faili ya jozi ya funguo za JSON) kusaini JWT. Huu JWT unajumuisha madai kuhusu akaunti ya huduma, mtumiaji wa lengo wa kuigizwa, na mipaka ya OAuth ya ufikiaji wa API ya REST inayohitajika.
Utambulisho unatumia JWT kuomba tokeni ya ufikiaji: Programu/mtumiaji anatumia JWT kuomba tokeni ya ufikiaji kutoka huduma ya OAuth 2.0 ya Google. Ombi pia linajumuisha mtumiaji wa lengo wa kuigizwa (barua pepe ya mtumiaji wa Workspace), na mipaka ambayo ufikiaji unahitajika.
Huduma ya OAuth 2.0 ya Google inarudisha tokeni ya ufikiaji: Tokeni ya ufikiaji inawakilisha mamlaka ya akaunti ya huduma kutenda kwa niaba ya mtumiaji kwa mipaka iliyotajwa. Tokeni hii kwa kawaida ni ya muda mfupi na inahitaji kusasishwa mara kwa mara (kulingana na mahitaji ya programu). Ni muhimu kuelewa kwamba mipaka ya OAuth iliyotajwa katika tokeni ya JWT ina uhalali na inaathiri tokeni ya ufikiaji inayotolewa. Kwa mfano, tokeni za ufikiaji zenye mipaka mingi zitakuwa na uhalali kwa programu nyingi za API ya REST.
Utambulisho unatumia tokeni ya ufikiaji kuita Google APIs: Sasa ikiwa na tokeni ya ufikiaji inayofaa, huduma inaweza kupata API ya REST inayohitajika. Programu inatumia tokeni hii ya ufikiaji katika kichwa cha "Authorization" cha maombi yake ya HTTP yanayoelekezwa kwa Google APIs. APIs hizi zinatumia tokeni kuthibitisha utambulisho wa kuigizwa na kuthibitisha kuwa ina idhini inayohitajika.
Google APIs inarudisha data iliyohitajika: Ikiwa tokeni ya ufikiaji ni halali na akaunti ya huduma ina idhini inayofaa, Google APIs inarudisha data iliyohitajika. Kwa mfano, katika picha ifuatayo, tumetumia users.messages.list njia ili orodhesha IDs za ujumbe wa Gmail zinazohusiana na mtumiaji wa lengo wa Workspace.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)