GCP - Cloud Build Unauthenticated Enum

Support HackTricks

Cloud Build

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

GCP - Cloud Build Enum

cloudbuild.yml

यदि आप cloudbuild.yml नामक फ़ाइल वाले एक रिपॉजिटरी पर लिखने की पहुंच को समझौता करते हैं, तो आप इस फ़ाइल को backdoor कर सकते हैं, जो कमांड को निर्दिष्ट करता है जो Cloud Build के अंदर निष्पादित होने वाले हैं और रहस्यों को निकाल सकते हैं, जो किया गया है उसे समझौता कर सकते हैं और साथ ही Cloud Build सेवा खाता को भी समझौता कर सकते हैं।

ध्यान दें कि GCP के पास "Comment Control" के माध्यम से बाहरी PRs से निर्माण प्रणालियों के निष्पादन को नियंत्रित करने के लिए प्रशासकों को अनुमति देने का विकल्प है। Comment Control एक विशेषता है जहां सहयोगियों/प्रोजेक्ट मालिकों को निर्माण को ट्रिगर करने के लिए “/gcbrun” टिप्पणी करने की आवश्यकता होती है और इस विशेषता का उपयोग स्वाभाविक रूप से इंटरनेट पर किसी को भी आपके निर्माण प्रणालियों को ट्रिगर करने से रोकता है।

कुछ संबंधित जानकारी के लिए आप Github Actions पर हमले के तरीके के बारे में पृष्ठ देख सकते हैं (इससे मिलता-जुलता):

Abusing Github Actions

PR Approvals

जब ट्रिगर PR होता है क्योंकि कोई भी सार्वजनिक रिपॉजिटरी पर PR कर सकता है, तो किसी भी PR के साथ ट्रिगर के निष्पादन की अनुमति देना बहुत खतरनाक होगा। इसलिए, डिफ़ॉल्ट रूप से, निष्पादन केवल मालिकों और सहयोगियों के लिए स्वचालित होगा, और अन्य उपयोगकर्ताओं के PRs के साथ ट्रिगर को निष्पादित करने के लिए एक मालिक या सहयोगी को /gcbrun टिप्पणी करनी होगी।

इसलिए, यदि इसे Not required पर सेट किया गया है, तो एक हमलावर ब्रांच पर PR कर सकता है जो निष्पादन को ट्रिगर करेगा, जिसमें cloudbuild.yml फ़ाइल में दुर्भावनापूर्ण कोड निष्पादन जोड़ा जाएगा और cloudbuild निष्पादन को समझौता करेगा (ध्यान दें कि cloudbuild कोड को PR से डाउनलोड करेगा, इसलिए यह दुर्भावनापूर्ण cloudbuild.yml को निष्पादित करेगा)।

इसके अलावा, जब आप PR भेजते हैं तो यह देखना आसान है कि कुछ cloudbuild निष्पादन किया जाना चाहिए क्योंकि यह Github में दिखाई देता है:

फिर, भले ही cloudbuild निष्पादित न हो, हमलावर को उस कंपनी के GCP प्रोजेक्ट का प्रोजेक्ट नाम देखने में सक्षम होगा।

Support HackTricks

Last updated