GCP - Workflows Privesc
Workflows
बुनियादी जानकारी:
workflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)
workflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)मेरी जानकारी के अनुसार, यह संभव नहीं है कि एक शेल प्राप्त किया जा सके जिसमें उस मेटाडेटा एंडपॉइंट तक पहुंच हो जिसमें उस वर्कफ़्लो से जुड़े SA के क्रेडेंशियल्स हों। हालाँकि, वर्कफ़्लो के भीतर प्रदर्शन करने के लिए क्रियाएँ जोड़कर SA की अनुमतियों का दुरुपयोग करना संभव है।
कनेक्टर्स की दस्तावेज़ीकरण ढूंढना संभव है। उदाहरण के लिए, यह Secretmanager कनेक्टर का पृष्ठ** है।** साइड बार में कई अन्य कनेक्टर्स मिल सकते हैं।
और यहाँ आप एक कनेक्टर का उदाहरण देख सकते हैं जो एक रहस्य प्रिंट करता है:
CLI से अपडेट:
यदि आपको ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
जैसी त्रुटि मिलती है, तो बस एक मिनट प्रतीक्षा करें और फिर से प्रयास करें।
यदि आपके पास वेब एक्सेस नहीं है, तो एक वर्कफ़्लो को ट्रिगर करना और उसकी कार्यान्वयन को देखना संभव है:
आप पिछले निष्पादन के आउटपुट की जांच भी कर सकते हैं ताकि संवेदनशील जानकारी की तलाश की जा सके
ध्यान दें कि भले ही आपको PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
जैसी त्रुटि मिले क्योंकि आपके पास वह अनुमति नहीं है, वर्कफ़्लो उत्पन्न हो चुका है।
OIDC टोकन लीक (और OAuth?)
दस्तावेज़ों के अनुसार यह संभव है कि वर्कफ़्लो चरणों का उपयोग किया जाए जो OAuth या OIDC टोकन के साथ HTTP अनुरोध भेजेंगे। हालाँकि, Cloud Scheduler के मामले की तरह, OAuth टोकन के साथ HTTP अनुरोध को होस्ट .googleapis.com
पर होना चाहिए।
इसलिए, यह संभव है कि OIDC टोकन को उपयोगकर्ता द्वारा नियंत्रित HTTP एंडपॉइंट को इंगित करके लीक किया जाए लेकिन OAuth टोकन को लीक करने के लिए आपको उस सुरक्षा के लिए बायपास की आवश्यकता होगी। हालाँकि, आप अभी भी SA की ओर से कार्य करने के लिए किसी भी GCP API से संपर्क कर सकते हैं या तो कनेक्टर्स या OAuth टोकन के साथ HTTP अनुरोधों का उपयोग करके।
OAuth
OIDC
workflows.workflows.update
...
workflows.workflows.update
...इस अनुमति के साथ workflows.workflows.create
के बजाय, एक पहले से मौजूद वर्कफ़्लो को अपडेट करना और समान हमले करना संभव है।
Last updated