GCP - Compute Privesc
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 में Compute और VPC (नेटवर्क) के बारे में अधिक जानकारी के लिए देखें:
GCP - Compute Enumध्यान दें कि उन सभी विशेषाधिकार वृद्धि हमलों को करने के लिए जो इंस्टेंस के मेटाडेटा को संशोधित करने की आवश्यकता होती है (जैसे नए उपयोगकर्ताओं और SSH कुंजियों को जोड़ना) यह आवश्यक है कि आपके पास इंस्टेंस से जुड़े SA पर actAs
अनुमतियाँ हों, भले ही SA पहले से ही जुड़ा हो!
compute.projects.setCommonInstanceMetadata
उस अनुमति के साथ आप संशोधित कर सकते हैं मेटाडेटा जानकारी को एक इंस्टेंस का और एक उपयोगकर्ता की अधिकृत कुंजियों को बदल सकते हैं, या sudo अनुमतियों के साथ एक नया उपयोगकर्ता बना सकते हैं। इसलिए, आप किसी भी VM इंस्टेंस में SSH के माध्यम से exec करने में सक्षम होंगे और उस GCP सेवा खाते को चुरा सकते हैं जिसके साथ इंस्टेंस चल रहा है। सीमाएँ:
ध्यान दें कि VM इंस्टेंस में चलने वाले GCP सेवा खातों का डिफ़ॉल्ट रूप से बहुत सीमित दायरा होता है।
आपको लॉगिन करने के लिए SSH सर्वर से संपर्क करने में सक्षम होना चाहिए।
इस अनुमति का लाभ उठाने के बारे में अधिक जानकारी के लिए देखें:
GCP - Add Custom SSH Metadataआप नए स्टार्टअप-स्क्रिप्ट को जोड़कर और इंस्टेंस को पुनरारंभ करके भी इस हमले को कर सकते हैं:
compute.instances.setMetadata
यह अनुमति पिछली अनुमति के समान विशेषाधिकार देती है लेकिन एक विशिष्ट उदाहरण पर, पूरे प्रोजेक्ट के बजाय। पिछले अनुभाग के लिए समान शोषण और सीमाएँ लागू होती हैं।
compute.instances.setIamPolicy
इस प्रकार की अनुमति आपको पिछली अनुमतियों के साथ एक भूमिका देने और उनका दुरुपयोग करके विशेषाधिकार बढ़ाने की अनुमति देगी।
compute.instances.osLogin
यदि OSLogin उदाहरण में सक्षम है, तो इस अनुमति के साथ आप बस gcloud compute ssh [INSTANCE]
चला सकते हैं और उदाहरण से कनेक्ट कर सकते हैं। आपके पास उदाहरण के अंदर रूट विशेषाधिकार नहीं होंगे।
इस अनुमति के साथ VM उदाहरण के अंदर सफलतापूर्वक लॉगिन करने के लिए, आपको VM से जुड़े SA पर iam.serviceAccounts.actAs
अनुमति होनी चाहिए।
compute.instances.osAdminLogin
यदि OSLogin उदाहरण में सक्षम है, तो इस अनुमति के साथ आप बस gcloud compute ssh [INSTANCE]
चला सकते हैं और उदाहरण से कनेक्ट कर सकते हैं। आपके पास उदाहरण के अंदर रूट विशेषाधिकार होंगे।
इस अनुमति के साथ VM उदाहरण के अंदर सफलतापूर्वक लॉगिन करने के लिए, आपको VM से जुड़े SA पर iam.serviceAccounts.actAs
अनुमति होनी चाहिए।
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
यह संभव है कि एक असाइन की गई सेवा खाता के साथ एक वर्चुअल मशीन बनाई जाए और सेवा खाता का टोकन चुराया जाए जिससे विशेषाधिकार बढ़ाए जा सकें।
इस विधि के लिए शोषण स्क्रिप्ट यहाँ मिल सकती है।
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
यदि आपके पास osconfig.patchDeployments.create
या osconfig.patchJobs.exec
अनुमतियाँ हैं, तो आप एक पैच नौकरी या तैनाती बना सकते हैं। यह आपको वातावरण में पार्श्व रूप से आगे बढ़ने और प्रोजेक्ट के भीतर सभी कंप्यूट उदाहरणों पर कोड निष्पादन प्राप्त करने की अनुमति देगा।
ध्यान दें कि वर्तमान में आपको उदाहरण से जुड़े SA पर actAs
अनुमति की आवश्यकता नहीं है।
यदि आप इसे मैन्युअल रूप से शोषित करना चाहते हैं, तो आपको या तो एक पैच नौकरी या तैनाती** बनानी होगी।** पैच नौकरी चलाने के लिए:
एक पैच डिप्लॉयमेंट को लागू करने के लिए:
The tool patchy को इस गलत कॉन्फ़िगरेशन का लाभ उठाने के लिए अतीत में उपयोग किया जा सकता था (लेकिन अब यह काम नहीं कर रहा है)।
एक हमलावर इसे स्थायीता के लिए भी दुरुपयोग कर सकता है।
compute.machineImages.setIamPolicy
अपने लिए अतिरिक्त अनुमतियाँ कंप्यूट इमेज पर दें।
compute.snapshots.setIamPolicy
अपने लिए अतिरिक्त अनुमतियाँ एक डिस्क स्नैपशॉट पर दें।
compute.disks.setIamPolicy
अपने लिए अतिरिक्त अनुमतियाँ एक डिस्क पर दें।
इस लिंक का पालन करते हुए आप कुछ विचार पाएंगे एक्सेस स्कोप को बायपास करने के लिए।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)