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 का Domain-Wide delegation एक पहचान वस्तु, या तो एक external app जो Google Workspace Marketplace से है या एक आंतरिक GCP Service Account, को उपयोगकर्ताओं की ओर से Workspace में डेटा तक पहुँचने की अनुमति देता है। यह सुविधा, जो Google APIs या सेवाओं के साथ बातचीत करने वाले ऐप्स के लिए महत्वपूर्ण है, कार्यों को स्वचालित करके दक्षता बढ़ाती है और मानव त्रुटियों को कम करती है। OAuth 2.0 का उपयोग करते हुए, ऐप डेवलपर्स और प्रशासक इन सेवा खातों को उपयोगकर्ता डेटा तक पहुँच प्रदान कर सकते हैं बिना व्यक्तिगत उपयोगकर्ता की सहमति के। Google Workspace दो मुख्य प्रकार की वैश्विक प्रतिनिधि पहचान वस्तुओं के निर्माण की अनुमति देता है:
GWS Applications: Workspace Marketplace से ऐप्स को एक प्रतिनिधि पहचान के रूप में सेट किया जा सकता है। Marketplace में उपलब्ध होने से पहले, प्रत्येक Workspace ऐप का Google द्वारा समीक्षा की जाती है ताकि संभावित दुरुपयोग को कम किया जा सके। जबकि यह दुरुपयोग के जोखिम को पूरी तरह से समाप्त नहीं करता, यह ऐसे घटनाओं के होने की कठिनाई को काफी बढ़ा देता है।
GCP Service Account: GCP Service Accounts के बारे में अधिक जानें।
यह इस तरह है कि एक GCP Service Account Google APIs को अन्य पहचान के लिए Google Workspace में पहुँच सकता है:
Identity creates a JWT: पहचान सेवा खाते की निजी कुंजी (JSON कुंजी जोड़ी फ़ाइल का हिस्सा) का उपयोग करके एक JWT पर हस्ताक्षर करती है। यह JWT सेवा खाते, लक्षित उपयोगकर्ता जिसे अनुकरण करना है, और REST API के लिए अनुरोधित OAuth स्कोप के बारे में दावे शामिल करता है।
The Identity uses the JWT to request an access token: एप्लिकेशन/उपयोगकर्ता JWT का उपयोग करके Google के OAuth 2.0 सेवा से एक एक्सेस टोकन का अनुरोध करता है। अनुरोध में लक्षित उपयोगकर्ता को अनुकरण करने के लिए (उपयोगकर्ता का Workspace ईमेल), और जिन स्कोप के लिए पहुँच का अनुरोध किया गया है, शामिल होता है।
Google's OAuth 2.0 service returns an access token: एक्सेस टोकन सेवा खाते के अधिकार का प्रतिनिधित्व करता है कि वह निर्दिष्ट स्कोप के लिए उपयोगकर्ता की ओर से कार्य कर सके। यह टोकन आमतौर पर अल्पकालिक होता है और इसे समय-समय पर (एप्लिकेशन की आवश्यकता के अनुसार) नवीनीकरण करना आवश्यक होता है। यह समझना आवश्यक है कि JWT टोकन में निर्दिष्ट OAuth स्कोप की वैधता और परिणामस्वरूप एक्सेस टोकन पर प्रभाव होता है। उदाहरण के लिए, कई स्कोप वाले एक्सेस टोकन कई REST API एप्लिकेशनों के लिए वैधता रखेंगे।
The Identity uses the access token to call Google APIs: अब एक प्रासंगिक एक्सेस टोकन के साथ, सेवा आवश्यक REST API तक पहुँच सकती है। एप्लिकेशन इस एक्सेस टोकन का उपयोग Google APIs के लिए अपने HTTP अनुरोधों के "Authorization" हेडर में करता है। ये APIs टोकन का उपयोग अनुकरण की गई पहचान की पुष्टि करने और यह सुनिश्चित करने के लिए करती हैं कि इसके पास आवश्यक प्राधिकरण है।
Google APIs return the requested data: यदि एक्सेस टोकन मान्य है और सेवा खाते के पास उचित प्राधिकरण है, तो Google APIs अनुरोधित डेटा लौटाती हैं। उदाहरण के लिए, निम्नलिखित चित्र में, हमने लक्षित Workspace उपयोगकर्ता के साथ जुड़े सभी Gmail संदेश ID को सूचीबद्ध करने के लिए users.messages.list विधि का उपयोग किया है।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)