GCP - Run Privesc
Cloud Run
Cloud Run के बारे में अधिक जानकारी के लिए देखें:
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
एक हमलावर के पास मनमाने कोड को चलाने वाली एक रन सेवा बनाने के लिए ये अनुमतियाँ हैं (मनमाना Docker कंटेनर), इसे एक सेवा खाता संलग्न करें, और कोड को मेटाडेटा से सेवा खाता टोकन को एक्सफिल्ट्रेट करने के लिए बनाएं।
इस विधि के लिए एक एक्सप्लॉइट स्क्रिप्ट यहाँ मिल सकती है और Docker इमेज यहाँ मिल सकती है।
ध्यान दें कि जब gcloud run deploy
का उपयोग किया जाता है तो केवल सेवा बनाने के बजाय इसकी update
अनुमति की आवश्यकता होती है। एक उदाहरण यहाँ देखें।
run.services.update
, iam.serviceAccounts.actAs
run.services.update
, iam.serviceAccounts.actAs
पिछले वाले की तरह लेकिन एक सेवा को अपडेट करते समय:
run.services.setIamPolicy
run.services.setIamPolicy
अपने आप को क्लाउड रन पर पिछले अनुमतियाँ दें।
run.jobs.create
, run.jobs.run
, iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.create
, run.jobs.run
, iam.serviceaccounts.actAs
,(run.jobs.get
)कमांड में निर्दिष्ट सेवा खाते को चुराने के लिए एक रिवर्स शेल के साथ एक नौकरी लॉन्च करें। आप यहां एक एक्सप्लॉइट पा सकते हैं.
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)पिछले की तरह, एक जॉब को अपडेट करना और SA को अपडेट करना संभव है, कमांड और इसे निष्पादित करना:
run.jobs.setIamPolicy
run.jobs.setIamPolicy
अपने लिए Cloud Jobs पर पिछले अनुमतियाँ दें।
run.jobs.run
, run.jobs.runWithOverrides
, (run.jobs.get
)
run.jobs.run
, run.jobs.runWithOverrides
, (run.jobs.get
)एक नौकरी के निष्पादन के env वेरिएबल्स का दुरुपयोग करें ताकि मनमाना कोड निष्पादित किया जा सके और कंटेनर की सामग्री (स्रोत कोड) को डंप करने और मेटाडेटा के अंदर SA तक पहुँचने के लिए एक रिवर्स शेल प्राप्त किया जा सके:
संदर्भ
Last updated