GCP - Privilege Escalation
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)
GCP, किसी अन्य क्लाउड की तरह, कुछ प्रिंसिपल होते हैं: उपयोगकर्ता, समूह और सेवा खाते, और कुछ संसाधन जैसे कंप्यूट इंजन, क्लाउड फ़ंक्शंस… फिर, भूमिकाओं के माध्यम से, इन प्रिंसिपल को संसाधनों पर अनुमतियाँ दी जाती हैं। यह GCP में किसी प्रिंसिपल के पास किसी संसाधन पर अनुमतियों को निर्दिष्ट करने का तरीका है। कुछ निश्चित अनुमतियाँ हैं जो एक उपयोगकर्ता को संसाधन या तीसरे पक्ष के संसाधनों पर और अधिक अनुमतियाँ प्राप्त करने की अनुमति देंगी, और इसे प्रिविलेज एस्कलेशन कहा जाता है (साथ ही, अधिक अनुमतियाँ प्राप्त करने के लिए कमजोरियों का शोषण करना)।
इसलिए, मैं GCP प्रिविलेज एस्कलेशन तकनीकों को 2 समूहों में विभाजित करना चाहूंगा:
प्रिंसिपल के लिए प्रिवेस्क: यह आपको दूसरे प्रिंसिपल का अनुकरण करने की अनुमति देगा, और इसलिए इसके सभी अनुमतियों के साथ कार्य करेगा। उदाहरण: getAccessToken का दुरुपयोग करके एक सेवा खाते का अनुकरण करना।
संसाधन पर प्रिवेस्क: यह आपको विशिष्ट संसाधन पर अधिक अनुमतियाँ प्राप्त करने की अनुमति देगा। उदाहरण: आप क्लाउडफंक्शंस पर setIamPolicy अनुमति का दुरुपयोग कर सकते हैं ताकि आपको फ़ंक्शन को ट्रिगर करने की अनुमति मिल सके।
ध्यान दें कि कुछ संसाधन अनुमतियाँ आपको संसाधन से एक मनमाना सेवा खाता संलग्न करने की भी अनुमति देंगी। इसका मतलब है कि आप एक SA के साथ एक संसाधन लॉन्च कर सकेंगे, संसाधन में प्रवेश कर सकेंगे, और SA टोकन चुरा सकेंगे। इसलिए, यह एक संसाधन एस्कलेशन के माध्यम से एक प्रिंसिपल में एस्केलेट करने की अनुमति देगा। यह पहले कई संसाधनों में हुआ है, लेकिन अब यह कम सामान्य है (लेकिन अभी भी हो सकता है)।
स्पष्ट रूप से, सबसे दिलचस्प प्रिविलेज एस्कलेशन तकनीकें दूसरे समूह की हैं क्योंकि यह आपको उन संसाधनों के बाहर अधिक विशेषाधिकार प्राप्त करने की अनुमति देगा जिन पर आपके पास पहले से कुछ विशेषाधिकार हैं। हालाँकि, ध्यान दें कि संसाधनों में एस्केलेट करना आपको संवेदनशील जानकारी या यहां तक कि अन्य प्रिंसिपल (शायद एक SA के टोकन को शामिल करने वाले एक रहस्य को पढ़कर) तक पहुँच भी दे सकता है।
यह भी ध्यान रखना महत्वपूर्ण है कि GCP सेवा खाते दोनों प्रिंसिपल और अनुमतियाँ हैं, इसलिए SA में विशेषाधिकार बढ़ाने से आपको इसका अनुकरण करने की अनुमति भी मिलेगी।
कोष्ठकों के बीच अनुमतियाँ उस भेद्यता का शोषण करने के लिए आवश्यक अनुमतियाँ इंगित करती हैं जिनके साथ gcloud
। यदि इसे API के माध्यम से शोषित किया जाता है तो ये आवश्यक नहीं हो सकती हैं।
यहाँ मैं GCP के अंदर विशिष्ट क्रियाएँ करने के लिए विशिष्ट अनुमतियों का परीक्षण कैसे करता हूँ।
गिटहब रेपो डाउनलोड करें https://github.com/carlospolop/gcp_privesc_scripts
tests/ में नया स्क्रिप्ट जोड़ें
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:
AWS में अपने विशेषाधिकारों को बढ़ाने का तरीका यह है कि आपके पास अन्य सेवा खाता/उपयोगकर्ता/समूह विशेषाधिकारों तक पहुँचने के लिए पर्याप्त अनुमतियाँ हों। प्रशासनिक पहुँच प्राप्त करने के लिए बढ़ते विशेषाधिकारों को जोड़ना।
GCP में सैकड़ों (यदि हजारों नहीं) अनुमतियाँ हैं जो किसी इकाई को दी जा सकती हैं। इस पुस्तक में आप सभी अनुमतियाँ पा सकते हैं जो मैं जानता हूँ कि आप विशेषाधिकार बढ़ाने के लिए दुरुपयोग कर सकते हैं, लेकिन यदि आप कोई ऐसा मार्ग जानते हैं जो यहाँ उल्लेखित नहीं है, कृपया इसे साझा करें।
इस अनुभाग के उपपृष्ठ सेवाओं के अनुसार क्रमबद्ध हैं। आप प्रत्येक सेवा पर विशेषाधिकार बढ़ाने के विभिन्न तरीके पा सकते हैं।
यदि आप GCP में किसी मशीन के अंदर हैं, तो आप स्थानीय रूप से विशेषाधिकार बढ़ाने के लिए अनुमतियों का दुरुपयोग कर सकते हैं:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)