GCP - BigQuery Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
BigQuery के बारे में अधिक जानकारी के लिए देखें:
GCP - Bigquery EnumBigQuery तालिका के अंदर संग्रहीत जानकारी को पढ़ने से संवेदनशील जानकारी मिलना संभव हो सकता है। जानकारी तक पहुँचने के लिए आवश्यक अनुमति bigquery.tables.get
, bigquery.jobs.create
और bigquery.tables.getData
है:
यह डेटा तक पहुँचने का एक और तरीका है। इसे एक क्लाउड स्टोरेज बकेट में निर्यात करें और जानकारी के साथ फ़ाइलें डाउनलोड करें।
इस क्रिया को करने के लिए निम्नलिखित अनुमतियों की आवश्यकता है: bigquery.tables.export
, bigquery.jobs.create
और storage.objects.create
।
यह संभव है कि कुछ विश्वसनीय डेटा को Bigquery तालिका में किसी अन्य स्थान में एक कमजोरियों का लाभ उठाने के लिए पेश किया जाए। यह bigquery.tables.get
, bigquery.tables.updateData
और bigquery.jobs.create
अनुमतियों के साथ आसानी से किया जा सकता है:
bigquery.datasets.setIamPolicy
एक हमलावर इस विशेषाधिकार का दुरुपयोग करके अपने लिए और अधिक अनुमतियाँ एक BigQuery डेटासेट पर दे सकता है:
bigquery.datasets.update
, (bigquery.datasets.get
)बस यह अनुमति आपकी पहुँच को एक BigQuery डेटासेट पर अपडेट करने की अनुमति देती है, ACLs को संशोधित करके जो यह दर्शाती हैं कि कौन इसे एक्सेस कर सकता है:
bigquery.tables.setIamPolicy
एक हमलावर इस विशेषाधिकार का दुरुपयोग करके अपने लिए और अधिक अनुमतियाँ एक BigQuery तालिका पर दे सकता है:
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
दस्तावेज़ों के अनुसार, उल्लेखित अनुमतियों के साथ एक पंक्ति नीति को अपडेट करना संभव है।
हालांकि, cli bq
का उपयोग करते समय आपको कुछ और चाहिए: bigquery.rowAccessPolicies.create
, bigquery.tables.get
.
यह पंक्ति नीतियों की गणना के आउटपुट में फ़िल्टर आईडी खोजने के लिए संभव है। उदाहरण:
यदि आपके पास bigquery.rowAccessPolicies.delete
है बजाय bigquery.rowAccessPolicies.update
के, तो आप नीति को बस हटा भी सकते हैं:
पंक्ति पहुंच नीतियों को बायपास करने का एक और संभावित विकल्प प्रतिबंधित डेटा के मान को बस बदलना होगा। यदि आप केवल तब देख सकते हैं जब term
Cfba
है, तो तालिका के सभी रिकॉर्ड को term = "Cfba"
में संशोधित करें। हालांकि, यह bigquery द्वारा रोका गया है।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)