GCP - Sourcerepos Privesc

Reading time: 4 minutes

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 के बारे में अधिक जानकारी के लिए देखें:

GCP - Source Repositories Enum

source.repos.get

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

bash
gcloud source repos clone <repo-name> --project=<project-uniq-name>

source.repos.update

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

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

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

source.repos.setIamPolicy

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

Secret access

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

GCP - Secretmanager Privesc

Add SSH keys

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

एक बार जब आपकी ssh कुंजी सेट हो जाती है, तो आप एक रिपॉजिटरी तक पहुँच सकते हैं:

bash
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>

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

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

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

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

जो Oauth प्राधिकरण प्रॉम्प्ट को प्रदर्शित करेगा ताकि Google Cloud Development तक पहुँच मिल सके। इसलिए आपको या तो उपयोगकर्ता के क्रेडेंशियल्स की आवश्यकता होगी या इसके लिए ब्राउज़र में एक खुला सत्र होना चाहिए।

यह आपको एक पृष्ठ पर भेजेगा जिसमें एक bash स्क्रिप्ट निष्पादित करने और $HOME/.gitcookies में एक git कुकी कॉन्फ़िगर करने के लिए है।

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

source.repos.updateProjectConfig

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

bash
gcloud source project-configs update --disable-pushblock

आप एक अलग pub/sub विषय को भी कॉन्फ़िगर कर सकते हैं या इसे पूरी तरह से बंद कर सकते हैं:

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 का समर्थन करें