GCP - Privilege Escalation

Support HackTricks

Introduction to GCP Privilege Escalation

GCP, किसी अन्य क्लाउड की तरह, कुछ प्रिंसिपल होते हैं: उपयोगकर्ता, समूह और सेवा खाते, और कुछ संसाधन जैसे कंप्यूट इंजन, क्लाउड फ़ंक्शंस… फिर, भूमिकाओं के माध्यम से, इन प्रिंसिपल को संसाधनों पर अनुमतियाँ दी जाती हैं। यह GCP में किसी संसाधन पर प्रिंसिपल के पास अनुमतियों को निर्दिष्ट करने का तरीका है। कुछ निश्चित अनुमतियाँ हैं जो एक उपयोगकर्ता को संसाधन या तीसरे पक्ष के संसाधनों पर और अधिक अनुमतियाँ प्राप्त करने की अनुमति देंगी, और इसे प्रिविलेज एस्कलेशन कहा जाता है (साथ ही, अधिक अनुमतियाँ प्राप्त करने के लिए कमजोरियों का शोषण करना)।

इसलिए, मैं GCP प्रिविलेज एस्कलेशन तकनीकों को 2 समूहों में विभाजित करना चाहूंगा:

  • प्रिंसिपल के लिए प्रिवेस्क: यह आपको दूसरे प्रिंसिपल का अनुकरण करने की अनुमति देगा, और इसलिए इसके सभी अनुमतियों के साथ कार्य करेगा। उदाहरण: सेवा खाते का अनुकरण करने के लिए getAccessToken का दुरुपयोग करें।

  • संसाधन पर प्रिवेस्क: यह आपको विशिष्ट संसाधन पर अधिक अनुमतियाँ प्राप्त करने की अनुमति देगा। उदाहरण: आप क्लाउडफंक्शंस पर setIamPolicy अनुमति का दुरुपयोग कर सकते हैं ताकि आप फ़ंक्शन को ट्रिगर कर सकें।

  • ध्यान दें कि कुछ संसाधन अनुमतियाँ आपको संसाधन से एक मनमाना सेवा खाता संलग्न करने की भी अनुमति देंगी। इसका मतलब है कि आप एक SA के साथ एक संसाधन लॉन्च कर सकेंगे, संसाधन में प्रवेश कर सकेंगे, और SA टोकन चुरा सकेंगे। इसलिए, यह एक संसाधन एस्कलेशन के माध्यम से एक प्रिंसिपल में एस्केलेट करने की अनुमति देगा। यह पहले कई संसाधनों में हुआ है, लेकिन अब यह कम सामान्य है (लेकिन अभी भी हो सकता है)।

स्पष्ट रूप से, सबसे दिलचस्प प्रिविलेज एस्कलेशन तकनीकें दूसरे समूह की हैं क्योंकि यह आपको उन संसाधनों के बाहर अधिक विशेषाधिकार प्राप्त करने की अनुमति देगा जिन पर आपके पास पहले से कुछ विशेषाधिकार हैं। हालाँकि, ध्यान दें कि संसाधनों में एस्केलेट करना आपको संवेदनशील जानकारी या यहां तक कि अन्य प्रिंसिपल (शायद एक SA के टोकन को शामिल करने वाले एक रहस्य को पढ़कर) तक पहुँच भी दे सकता है।

यह भी ध्यान रखना महत्वपूर्ण है कि GCP सेवा खाते दोनों प्रिंसिपल और अनुमतियाँ हैं, इसलिए SA में विशेषाधिकार बढ़ाने से आपको इसका अनुकरण करने की अनुमति मिलेगी।

कोष्ठकों के बीच अनुमतियाँ उस भेद्यता का शोषण करने के लिए आवश्यक अनुमतियों को इंगित करती हैं जिनकी आवश्यकता gcloud के साथ होती है। यदि इसे API के माध्यम से शोषित किया जाता है तो ये आवश्यक नहीं हो सकती हैं।

Permissions for Privilege Escalation Methodology

यहाँ मैं GCP के अंदर विशिष्ट क्रियाएँ करने के लिए विशिष्ट अनुमतियों का परीक्षण कैसे करता हूँ।

  1. गिटहब रेपो डाउनलोड करें https://github.com/carlospolop/gcp_privesc_scripts

  2. tests/ में नया स्क्रिप्ट जोड़ें

Bypassing access scopes

GCP मेटाडेटा सेवा से लीक हुए SA के टोकन में एक्सेस स्कोप होते हैं। ये अनुमतियों पर प्रतिबंध हैं जो टोकन के पास हैं। उदाहरण के लिए, यदि टोकन में https://www.googleapis.com/auth/cloud-platform स्कोप है, तो इसके पास सभी GCP सेवाओं तक पूर्ण पहुँच होगी। हालाँकि, यदि टोकन में https://www.googleapis.com/auth/cloud-platform.read-only स्कोप है, तो इसके पास सभी GCP सेवाओं तक केवल पढ़ने की अनुमति होगी, भले ही SA के पास IAM में अधिक अनुमतियाँ हों।

इन अनुमतियों को बायपास करने का कोई सीधा तरीका नहीं है, लेकिन आप हमेशा समझौता किए गए होस्ट में नई क्रेडेंशियल्स खोजने, एक सेवा कुंजी खोजने के लिए प्रयास कर सकते हैं ताकि बिना किसी प्रतिबंध के OAuth टोकन उत्पन्न किया जा सके या कम प्रतिबंधित एक अलग VM पर कूद सकते हैं

जब एक्सेस स्कोप का उपयोग किया जाता है, तो कंप्यूटिंग इंस्टेंस (VM) के लिए उत्पन्न OAuth टोकन में एक स्कोप सीमा शामिल होगी। हालाँकि, आप इस सीमा को बायपास करने और समझौता किए गए खाते के पास अनुमतियों का शोषण करने में सक्षम हो सकते हैं।

इस प्रतिबंध को बायपास करने का सर्वश्रेष्ठ तरीका या तो समझौता किए गए होस्ट में नई क्रेडेंशियल्स खोजना है, बिना किसी प्रतिबंध के OAuth टोकन उत्पन्न करने के लिए सेवा कुंजी खोजना या कम प्रतिबंधित SA के साथ एक अलग VM को समझौता करना है।

Check SA with keys generated with:

for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done

Privilege Escalation Techniques

AWS में अपने विशेषाधिकारों को बढ़ाने का तरीका यह है कि आपके पास अन्य सेवा खाता/उपयोगकर्ता/समूह विशेषाधिकारों तक पहुँचने के लिए पर्याप्त अनुमतियाँ हों। प्रशासनिक पहुँच प्राप्त करने के लिए बढ़ते विशेषाधिकारों को जोड़ना।

GCP में सैकड़ों (यदि हजारों नहीं) अनुमतियाँ हैं जो किसी इकाई को दी जा सकती हैं। इस पुस्तक में आप सभी अनुमतियाँ जो मैं जानता हूँ पा सकते हैं जिन्हें आप विशेषाधिकार बढ़ाने के लिए दुरुपयोग कर सकते हैं, लेकिन यदि आप यहाँ उल्लेखित किसी पथ को जानते हैं, तो कृपया साझा करें

इस अनुभाग के उपपृष्ठ सेवाओं के अनुसार क्रमबद्ध हैं। आप प्रत्येक सेवा पर विशेषाधिकार बढ़ाने के विभिन्न तरीके पा सकते हैं।

GCP का दुरुपयोग करके स्थानीय रूप से विशेषाधिकार बढ़ाना

यदि आप GCP में एक मशीन के अंदर हैं, तो आप स्थानीय रूप से विशेषाधिकार बढ़ाने के लिए अनुमतियों का दुरुपयोग कर सकते हैं:

References

Support HackTricks

Last updated