GCP - Cloud Build Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Build एक प्रबंधित CI/CD प्लेटफ़ॉर्म है जो सॉफ़्टवेयर निर्माण और रिलीज़ प्रक्रियाओं को स्वचालित करता है, स्रोत कोड रिपॉजिटरी के साथ एकीकृत होता है और विभिन्न प्रोग्रामिंग भाषाओं का समर्थन करता है। यह डेवलपर्स को स्वचालित रूप से कोड बनाने, परीक्षण करने और तैनात करने की अनुमति देता है जबकि निर्माण चरणों और कार्यप्रवाहों को अनुकूलित करने की लचीलापन प्रदान करता है।
प्रत्येक Cloud Build Trigger एक Cloud Repository से संबंधित है या सीधे एक बाहरी रिपॉजिटरी (Github, Bitbucket और Gitlab) से जुड़ा होता है।
मैं यहाँ से या Cloud Repositories से Github/Bitbucket टोकन चुराने का कोई तरीका नहीं देख सका क्योंकि जब रिपॉजिटरी डाउनलोड की जाती है, तो इसे https://source.cloud.google.com/ URL के माध्यम से एक्सेस किया जाता है और Github क्लाइंट द्वारा एक्सेस नहीं किया जाता है।
Cloud Build को ट्रिगर किया जा सकता है यदि:
एक शाखा पर पुश करें: शाखा निर्दिष्ट करें
एक नया टैग पुश करें: टैग निर्दिष्ट करें
पुल अनुरोध: उस शाखा को निर्दिष्ट करें जो PR प्राप्त करती है
मैनुअल इनवोकेशन
Pub/Sub संदेश: विषय निर्दिष्ट करें
Webhook घटना: एक HTTPS URL को उजागर करेगा और अनुरोध को एक गुप्त के साथ प्रमाणित किया जाना चाहिए
यहाँ 3 विकल्प हैं:
एक yaml/json कमांड को निर्दिष्ट करना जो निष्पादित किया जाना है। आमतौर पर: /cloudbuild.yaml
केवल एक जो वेब कंसोल और CLI में "इनलाइन" निर्दिष्ट किया जा सकता है
सबसे सामान्य विकल्प
प्रमाणीकरण रहित पहुंच के लिए प्रासंगिक
एक Dockerfile बनाने के लिए
एक Buildpack बनाने के लिए
Service Account का cloud-platform
स्कोप है, इसलिए यह सभी विशेषाधिकारों का उपयोग कर सकता है। यदि कोई SA निर्दिष्ट नहीं किया गया है (जैसे जब सबमिट कर रहे हैं) तो डिफ़ॉल्ट SA <proj-number>@cloudbuild.gserviceaccount.com
का उपयोग किया जाएगा।
डिफ़ॉल्ट रूप से कोई अनुमतियाँ नहीं दी जाती हैं लेकिन इसे कुछ देना काफी आसान है:
यह संभव है कि Cloud Build को निर्माण निष्पादन के लिए अनुमतियों की आवश्यकता हो (डिफ़ॉल्ट रूप से अक्षम)।
जब ट्रिगर PR है क्योंकि कोई भी सार्वजनिक रिपॉजिटरी में PR कर सकता है तो केवल किसी भी PR के साथ ट्रिगर के निष्पादन की अनुमति देना बहुत खतरनाक होगा। इसलिए, डिफ़ॉल्ट रूप से, निष्पादन केवल स्वामियों और सहयोगियों के लिए स्वचालित होगा, और अन्य उपयोगकर्ताओं के PRs के साथ ट्रिगर को निष्पादित करने के लिए एक मालिक या सहयोगी को /gcbrun
टिप्पणी करनी होगी।
कनेक्शन निम्नलिखित पर बनाए जा सकते हैं:
GitHub: यह Github टोकन प्राप्त करने के लिए अनुमतियों के लिए OAuth प्रॉम्प्ट दिखाएगा जो Secret Manager के अंदर संग्रहीत किया जाएगा।
GitHub Enterprise: यह एक GithubApp स्थापित करने के लिए कहेगा। आपके GitHub Enterprise होस्ट से एक प्रमाणीकरण टोकन बनाया जाएगा और इसे इस प्रोजेक्ट में एक Secret Manager गुप्त के रूप में संग्रहीत किया जाएगा।
GitLab / Enterprise: आपको API एक्सेस टोकन और पढ़ने के लिए API एक्सेस टोकन प्रदान करने की आवश्यकता है जो Secret Manager में संग्रहीत किया जाएगा।
एक बार कनेक्शन उत्पन्न होने के बाद, आप इसका उपयोग उन रिपॉजिटरी को लिंक करने के लिए कर सकते हैं जिनका Github खाता तक पहुंच है।
यह विकल्प बटन के माध्यम से उपलब्ध है:
ध्यान दें कि इस विधि से जुड़े रिपॉजिटरी केवल 2nd जनरेशन का उपयोग करने वाले ट्रिगर्स में उपलब्ध हैं।
यह connection
के समान नहीं है। यह Github या Bitbucket रिपॉजिटरी तक पहुँच प्राप्त करने के विभिन्न तरीकों की अनुमति देता है लेकिन एक कनेक्शन ऑब्जेक्ट उत्पन्न नहीं करता है, लेकिन यह एक रिपॉजिटरी ऑब्जेक्ट (1st जनरेशन का) उत्पन्न करता है।
यह विकल्प बटन के माध्यम से उपलब्ध है:
कभी-कभी Cloud Build ट्रिगर के लिए फ़ाइलों को संग्रहीत करने के लिए एक नया स्टोरेज उत्पन्न करेगा। यह उदाहरण के लिए उस उदाहरण में होता है जो GCP प्रदान करता है:
एक स्टोरेज बकेट जिसे security-devbox_cloudbuild कहा जाता है, एक .tgz
फ़ाइल को स्टोर करने के लिए बनाया गया है जिसमें उपयोग के लिए फ़ाइलें हैं।
आप बिल्ड कॉन्फ़िग्स और लॉग्स में संवेदनशील जानकारी पा सकते हैं।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)