GCP - Cloudbuild Privesc
cloudbuild
Cloud Build के बारे में अधिक जानकारी के लिए देखें:
pageGCP - Cloud Build Enumcloudbuild.builds.create
cloudbuild.builds.create
इस अनुमति के साथ आप एक क्लाउड बिल्ड सबमिट कर सकते हैं। cloudbuild मशीन में डिफ़ॉल्ट रूप से cloudbuild सेवा खाते का टोकन होगा: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com
। हालांकि, आप प्रोजेक्ट के अंदर किसी भी सेवा खाते को इंडिकेट कर सकते हैं cloudbuild कॉन्फ़िगरेशन में।
इसलिए, आप बस मशीन को अपने सर्वर पर टोकन को बाहर निकालने के लिए या उसमें रिवर्स शैल मिलाने और खुद को टोकन प्राप्त करने के लिए (टोकन को संभालने वाली फ़ाइल बदल सकती है)।
आप मूल एक्सप्लॉइट स्क्रिप्ट यहाँ GitHub पर में पा सकते हैं (लेकिन जहाँ से यह टोकन ले रहा है, वह मेरे लिए काम नहीं कर रहा था)। इसलिए, एक स्क्रिप्ट की जाँच करें यहाँ एक वल्न पर्यावरण के निर्माण, एक्सप्लॉइट और सफाई करने के लिए और cloudbuild मशीन में रिवर्स शैल मिलाने और चुरा लेने के लिए यहाँ (कोड में आपको अन्य सेवा खातों को निर्दिष्ट करने का तरीका मिलेगा)।
अधिक विस्तृत समझ के लिए, यहाँ जाएं https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.builds.update
cloudbuild.builds.update
संभावित रूप से इस अनुमति के साथ आप एक क्लाउड बिल्ड को अपडेट कर सकते हैं और सेवा खाता टोकन चुरा सकते हैं जैसा कि पिछली अनुमति के साथ किया गया था (लेकिन दुःख की बात है कि इस लेख के समय में मैंने उस API को कॉल करने का कोई तरीका नहीं मिला)।
करने के लिए
cloudbuild.repositories.accessReadToken
cloudbuild.repositories.accessReadToken
इस अनुमति के साथ उपयोगकर्ता पहुंच पढ़ने का टोकन प्राप्त कर सकता है जो रिपॉजिटरी तक पहुंचने के लिए उपयोग किया जाता है:
Last updated