GCP - Public Buckets Privilege Escalation
बकेट्स प्रिविलेज एस्केलेशन
यदि बकेट पॉलिसी ने “allUsers” या “allAuthenticatedUsers” को उनकी बकेट पॉलिसी में लिखने की अनुमति दी (यानी storage.buckets.setIamPolicy अनुमति), तो कोई भी बकेट पॉलिसी को संशोधित कर सकता है और खुद को पूर्ण एक्सेस दे सकता है।
अनुमतियाँ जाँचें
बकेट पर अनुमतियों की जाँच करने के दो तरीके हैं। पहला तरीका है उन्हें मांगना https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam
पर एक अनुरोध बनाकर या gsutil iam get gs://BUCKET_NAME
चलाकर।
हालांकि, यदि आपका उपयोगकर्ता (जो संभवतः allUsers या allAuthenticatedUsers" का हिस्सा हो) के पास बकेट की iam पॉलिसी को पढ़ने की अनुमति नहीं है (storage.buckets.getIamPolicy), तो यह काम नहीं करेगा।
दूसरा विकल्प जो हमेशा काम करेगा वह है बकेट के testPermissions एंडपॉइंट का उपयोग करना यह पता लगाने के लिए कि आपके पास निर्दिष्ट अनुमति है या नहीं, उदाहरण के लिए पहुँचना: https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam/testPermissions?permissions=storage.buckets.delete&permissions=storage.buckets.get&permissions=storage.buckets.getIamPolicy&permissions=storage.buckets.setIamPolicy&permissions=storage.buckets.update&permissions=storage.objects.create&permissions=storage.objects.delete&permissions=storage.objects.get&permissions=storage.objects.list&permissions=storage.objects.update
एस्केलेटिंग
Google Storage CLI प्रोग्राम “gsutil” के साथ, हम निम्नलिखित कमांड चला सकते हैं “allAuthenticatedUsers” को “Storage Admin” रोल का एक्सेस देने के लिए, इस प्रकार हमें दी गई विशेषाधिकारों को एस्केलेट करते हुए बकेट के लिए:
LegacyBucketOwner से Storage Admin में बढ़ाई गई क्षमताओं का मुख्य आकर्षण "storage.buckets.delete" विशेषाधिकार का उपयोग करने की क्षमता है। सिद्धांत रूप में, आप अपनी विशेषाधिकारों को बढ़ाने के बाद बकेट को हटा सकते हैं, फिर आप नाम चुराने के लिए अपने खाते में बकेट बना सकते हैं।
संदर्भ
Last updated