GCP - Sourcerepos Privesc

Support HackTricks

Source Repositories

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

source.repos.get

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

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

source.repos.update

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

  • मालिक

  • संपादक

  • स्रोत रिपॉजिटरी प्रशासक (roles/source.admin)

  • स्रोत रिपॉजिटरी लेखक (roles/source.writer)

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

source.repos.setIamPolicy

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

Secret access

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

Add SSH keys

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

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

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

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

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

स्रोत रिपोजिटरीज़ तक पहुँचने के लिए मैनुअल क्रेडेंशियल्स बनाना संभव है:

पहले लिंक पर क्लिक करने से आपको 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

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

gcloud source project-configs update --disable-pushblock

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

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
Support HackTricks

Last updated