GCP - Sourcerepos Privesc

HackTricks को समर्थन दें

Source Repositories

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

GCP - Source Repositories Enum

source.repos.get

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

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 key सेट हो जाती है, तो आप एक रिपॉजिटरी तक पहुंच सकते हैं:

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 authorization prompt को Google Cloud Development तक पहुँच देने के लिए प्रेरित करेगा। इसलिए आपको या तो यूजर के क्रेडेंशियल्स या ब्राउज़र में एक ओपन सेशन की आवश्यकता होगी।

यह आपको एक पेज पर ले जाएगा जिसमें bash script को execute करने और $HOME/.gitcookies में एक git cookie को configure करने के निर्देश होंगे।

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

source.repos.updateProjectConfig

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

gcloud source project-configs update --disable-pushblock

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

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
HackTricks को समर्थन दें

Last updated