GCP - Privilege Escalation

Reading time: 6 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Introduction to GCP Privilege Escalation

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

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

  • Privesc to a principal: यह आपको दूसरे principal का अनुकरण करने की अनुमति देगा, और इसलिए इसके सभी permissions के साथ कार्य करेगा। उदाहरण: getAccessToken का दुरुपयोग करके एक सेवा खाते का अनुकरण करना।
  • Privesc on the resource: यह आपको विशिष्ट resource पर अधिक permissions प्राप्त करने की अनुमति देगा। उदाहरण: आप cloudfunctions पर setIamPolicy permission का दुरुपयोग कर सकते हैं ताकि आप फ़ंक्शन को ट्रिगर कर सकें।
  • ध्यान दें कि कुछ resources permissions आपको resource से एक मनमाना सेवा खाता संलग्न करने की भी अनुमति देंगी। इसका मतलब है कि आप एक SA के साथ एक resource लॉन्च कर सकेंगे, resource में प्रवेश कर सकेंगे, और SA token चुरा सकेंगे। इसलिए, यह एक resource escalation के माध्यम से एक principal में वृद्धि करने की अनुमति देगा। यह पहले कई resources में हुआ है, लेकिन अब यह कम सामान्य है (लेकिन अभी भी हो सकता है)।

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

warning

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

note

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

Permissions for Privilege Escalation Methodology

यहाँ मैं GCP के भीतर विशिष्ट क्रियाएँ करने के लिए विशिष्ट permissions के लिए परीक्षण करता हूँ।

  1. गिटहब रेपो डाउनलोड करें https://github.com/carlospolop/gcp_privesc_scripts
  2. tests/ में नया स्क्रिप्ट जोड़ें

Bypassing access scopes

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

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

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

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

SA के साथ उत्पन्न कुंजी की जांच करें:

bash
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

विशेषाधिकार वृद्धि तकनीकें

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

warning

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

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

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

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

GCP - local privilege escalation ssh pivoting

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें