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 में एक मशीन के अंदर हैं, तो आप स्थानीय रूप से विशेषाधिकार बढ़ाने के लिए अनुमतियों का दुरुपयोग कर सकते हैं:
GCP - local privilege escalation ssh pivotingLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)