GCP - Non-svc Persistance
ये उपयोगी तकनीकें हैं जब, किसी तरह, आपने कुछ GCP credentials या GCP environment में चल रही मशीन को compromise कर लिया हो।
Token Hijacking
Authenticated User Tokens
किसी उपयोगकर्ता का current token प्राप्त करने के लिए आप निम्नलिखित चला सकते हैं:
इस पेज में देखें कि इस टोकन को सीधे gcloud का उपयोग करके कैसे उपयोग करें:
नया एक्सेस टोकन जनरेट करने के लिए विवरण प्राप्त करने के लिए चलाएं:
यह भी संभव है कि $HOME/.config/gcloud/application_default_credentials.json
और $HOME/.config/gcloud/legacy_credentials/*/adc.json
में refresh tokens पाए जाएं।
refresh token, client ID, और client secret के साथ एक नया refreshed access token प्राप्त करने के लिए, निम्नलिखित कमांड चलाएं:
Admin > Security > Google Cloud session control में refresh tokens की वैधता को प्रबंधित किया जा सकता है, और डिफ़ॉल्ट रूप से इसे 16 घंटे पर सेट किया गया है, हालांकि इसे कभी समाप्त न होने के लिए भी सेट किया जा सकता है:
Auth flow
जब gcloud auth login
जैसी किसी चीज़ का उपयोग करते हैं, तो प्रमाणीकरण प्रवाह ब्राउज़र में एक प्रॉम्प्ट खोलेगा और सभी scopes को स्वीकार करने के बाद ब्राउज़र इस तरह के अनुरोध को टूल द्वारा खोले गए http पोर्ट पर भेजेगा:
फिर, gcloud कुछ हार्डकोडेड client_id
(32555940559.apps.googleusercontent.com
) और client_secret
(ZmssLNjJy2998hD4CTg2ejr2
) के साथ state और code का उपयोग करेगा ताकि अंतिम refresh token data प्राप्त किया जा सके।
ध्यान दें कि localhost के साथ संचार HTTP में होता है, इसलिए refresh token प्राप्त करने के लिए डेटा को इंटरसेप्ट करना संभव है, हालांकि यह डेटा केवल 1 बार मान्य होता है, इसलिए यह बेकार होगा, refresh token को फ़ाइल से पढ़ना आसान है।
OAuth Scopes
आप सभी Google scopes को https://developers.google.com/identity/protocols/oauth2/scopes पर पा सकते हैं या उन्हें निष्पादित करके प्राप्त कर सकते हैं:
इस स्क्रिप्ट के साथ यह देखना संभव है कि gcloud
का उपयोग करके प्रमाणित करने वाला एप्लिकेशन कौन-कौन से स्कोप्स को सपोर्ट कर सकता है:
चलाने के बाद यह जांचा गया कि यह ऐप इन स्कोप्स का समर्थन करता है:
यह देखना दिलचस्प है कि यह ऐप drive
स्कोप को कैसे सपोर्ट करता है, जो एक उपयोगकर्ता को GCP से Workspace तक एस्केलेट करने की अनुमति दे सकता है यदि एक हमलावर उपयोगकर्ता को इस स्कोप के साथ एक टोकन जनरेट करने के लिए मजबूर कर देता है।
कैसे दुरुपयोग करें यहां देखें.
Service Accounts
ठीक उसी तरह जैसे प्रमाणित उपयोगकर्ताओं के साथ, यदि आप किसी सेवा खाते की निजी कुंजी फ़ाइल से समझौता करने में सफल होते हैं, तो आप इसे आमतौर पर जितनी देर चाहें एक्सेस कर सकते हैं। हालांकि, यदि आप किसी सेवा खाते का OAuth टोकन चुरा लेते हैं तो यह और भी दिलचस्प हो सकता है, क्योंकि, भले ही डिफ़ॉल्ट रूप से ये टोकन केवल एक घंटे के लिए उपयोगी होते हैं, यदि पीड़ित निजी एपीआई कुंजी को हटा देता है, तो भी OAuth टोकन तब तक वैध रहेगा जब तक कि यह समाप्त नहीं हो जाता।
Metadata
स्पष्ट रूप से, जब तक आप GCP वातावरण में चल रही मशीन के अंदर हैं, आप मेटाडेटा एंडपॉइंट से संपर्क करके उस मशीन से जुड़े सेवा खाते तक पहुंच सकते हैं (ध्यान दें कि इस एंडपॉइंट में आप जिन OAuth टोकनों तक पहुंच सकते हैं, वे आमतौर पर स्कोप द्वारा प्रतिबंधित होते हैं)।
Remediations
इन तकनीकों के लिए कुछ सुधार https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2 में समझाए गए हैं।
References
Last updated