GCP - Sourcerepos Privesc
Source Repositories
Source Repositories के बारे में अधिक जानकारी के लिए देखें:
GCP - Source Repositories Enumsource.repos.get
source.repos.get
इस अनुमति के साथ, रिपॉजिटरी को स्थानीय रूप से डाउनलोड करना संभव है:
source.repos.update
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
source.repos.setIamPolicy
इस अनुमति के साथ एक हमलावर खुद को पिछली अनुमतियाँ दे सकता है।
Secret access
यदि हमलावर के पास उन रहस्यों तक पहुंच है जहां टोकन संग्रहीत हैं, तो वह उन्हें चुरा सकेगा। एक रहस्य तक कैसे पहुंचें इसके बारे में अधिक जानकारी के लिए देखें:
GCP - Secretmanager PrivescAdd SSH keys
वेब कंसोल में Source Repository प्रोजेक्ट में ssh keys जोड़ना संभव है। यह /v1/sshKeys:add
पर एक पोस्ट अनुरोध करता है और इसे https://source.cloud.google.com/user/ssh_keys में कॉन्फ़िगर किया जा सकता है।
एक बार जब आपकी ssh key सेट हो जाती है, तो आप एक रिपॉजिटरी तक पहुंच सकते हैं:
और फिर सामान्य रूप से 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.repos.updateProjectConfig
इस अनुमति के साथ, Source Repositories की डिफ़ॉल्ट सुरक्षा को अक्षम करना संभव है ताकि प्राइवेट कीज़ को शामिल करने वाले कोड को अपलोड न किया जा सके:
आप एक अलग pub/sub topic को भी कॉन्फ़िगर कर सकते हैं या इसे पूरी तरह से अक्षम कर सकते हैं:
Last updated