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 za kibinafsi 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 OAuth scopes za ufikiaji wa REST API inayohitajika.
Utambulisho unatumia JWT kuomba tokeni ya ufikiaji: Programu/mtumiaji anatumia JWT kuomba tokeni ya ufikiaji kutoka kwa huduma ya OAuth 2.0 ya Google. Ombi pia linajumuisha mtumiaji wa lengo wa kuigizwa (barua pepe ya mtumiaji wa Workspace), na scopes ambazo 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 ajili ya scopes zilizotajwa. Tokeni hii kwa kawaida ni ya muda mfupi na inahitaji kusasishwa mara kwa mara (kulingana na mahitaji ya programu). Ni muhimu kuelewa kwamba OAuth scopes zilizotajwa katika tokeni ya JWT zina uhalali na zinaathiri tokeni ya ufikiaji inayopatikana. Kwa mfano, tokeni za ufikiaji zenye scopes nyingi zitakuwa na uhalali kwa programu nyingi za REST API.
Utambulisho unatumia tokeni ya ufikiaji kuita Google APIs: Sasa ikiwa na tokeni ya ufikiaji inayofaa, huduma inaweza kupata REST API inayohitajika. Programu inatumia tokeni hii ya ufikiaji katika kichwa cha "Authorization" cha maombi yake ya HTTP yanayolenga 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 zote 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)