GCP - Sourcerepos Privesc

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Source Repositories

Source Repositories के बारे में अधिक जानकारी के लिए देखें:

GCP - Source Repositories Enum

source.repos.get

इस अनुमति के साथ रिपॉज़िटरी को स्थानीय रूप से डाउनलोड करना संभव है:

Clone source repository ```bash gcloud source repos clone --project= ```

source.repos.update

इस अनुमति वाले प्रिंसिपल को gcloud source repos clone <repo> के साथ क्लोन किए गए रिपॉजिटरी के अंदर कोड लिखने की क्षमता होगी। ध्यान रखें कि इस अनुमति को custom roles से अटैच नहीं किया जा सकता, इसलिए यह किसी predefined role के द्वारा दी जानी चाहिए जैसे:

  • Owner
  • Editor
  • Source Repository Administrator (roles/source.admin)
  • Source Repository Writer (roles/source.writer)

लिखने के लिए बस एक सामान्य git push करें।

source.repos.setIamPolicy

इस अनुमति के साथ attacker स्वयं को पिछले permissions दे सकता है।

Secret access

यदि attacker को वे secrets तक पहुँच है जहाँ tokens स्टोर होते हैं, तो वह उन्हें चुरा सकेगा। किसी secret तक कैसे पहुँचें इसके बारे में अधिक जानकारी के लिए देखें:

GCP - Secretmanager Privesc

Add SSH keys

वेब कंसोल में Source Repository project में ssh keys जोड़ना संभव है। यह एक POST request /v1/sshKeys:add बनाता है और इसे https://source.cloud.google.com/user/ssh_keys में कॉन्फ़िगर किया जा सकता है

एक बार आपका ssh key सेट हो जाने पर, आप एक repo तक पहुँच सकते हैं:

SSH का उपयोग करके रिपॉजिटरी क्लोन करें ```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p//r/ ```

और फिर सामान्य रूप से git कमांड का उपयोग करें।

मैनुअल क्रेडेंशियल्स

Source Repositories तक पहुँचने के लिए मैनुअल क्रेडेंशियल बनाना संभव है:

पहले लिंक पर क्लिक करने से यह आपको https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3 पर ले जाएगा

यह एक Oauth authorization prompt दिखाएगा जो Google Cloud Development को एक्सेस देने के लिए होगा। इसलिए इसके लिए आपको या तो उपयोगकर्ता के क्रेडेंशियल्स या ब्राउज़र में एक खुला सत्र चाहिए होगा।

यह आपको एक पेज पर भेजेगा जिसमें एक bash script to execute होगा और यह git cookie को $HOME/.gitcookies में कॉन्फ़िगर करेगा।

स्क्रिप्ट चलाने के बाद आप git clone, push… आदि का उपयोग कर सकते हैं और यह काम करेगा।

source.repos.updateProjectConfig

इस अनुमति के साथ Source Repositories की डिफ़ॉल्ट सुरक्षा को अक्षम करना संभव है ताकि Private Keys वाले कोड को अपलोड न किया जा सके:

pushblock को disable करें और pub/sub configuration को modify करें ```bash gcloud source project-configs update --disable-pushblock ``` आप एक अलग pub/sub topic भी कॉन्फ़िगर कर सकते हैं या इसे पूरी तरह से निष्क्रिय भी कर सकते हैं: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें