GCP - Bigtable Privesc

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Bigtable

Bigtable के बारे में अधिक जानकारी के लिए देखें:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

अनुमतियाँ: bigtable.instances.setIamPolicy (और आमतौर पर वर्तमान bindings पढ़ने के लिए bigtable.instances.getIamPolicy)।

इंस्टेंस का IAM policy आपके पास होने पर आप अपने आप को roles/bigtable.admin (या कोई भी कस्टम role) दे सकते हैं, जो इंस्टेंस के हर क्लस्टर, टेबल, बैकअप और अधिकृत व्यू तक लागू हो जाता है।

इंस्टेंस पर अपने लिए bigtable.admin role दें ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

यदि आप existing bindings की सूची नहीं निकाल सकते हैं, तो एक नया policy document तैयार करें और उसे gcloud bigtable instances set-iam-policy के साथ push कर दें, बशर्ते आप खुद उस पर बने रहें।

यह अनुमति मिलने के बाद, Bigtable permissions का दुरुपयोग करने के और तरीकों के लिए Bigtable Post Exploitation section में दी गई techniques देखें।

bigtable.tables.setIamPolicy

अनुमतियाँ: bigtable.tables.setIamPolicy (वैकल्पिक रूप से bigtable.tables.getIamPolicy).

Instance policies को लॉक किया जा सकता है जबकि individual tables delegated होते हैं। यदि आप table IAM संपादित कर सकते हैं तो आप बिना अन्य workloads को छुए अपने आप को लक्षित dataset का owner बना सकते हैं

Grant yourself bigtable.admin role on table ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

इन अनुमतियों की जांच करने के बाद Bigtable Post Exploitation section में मौजूद तकनीकों को देखें ताकि Bigtable permissions का दुरुपयोग करने के और तरीके मिल सकें।

bigtable.backups.setIamPolicy

अनुमतियाँ: bigtable.backups.setIamPolicy

बैकअप्स को आपके नियंत्रण वाले any instance in any project में पुनर्स्थापित किया जा सकता है। पहले अपनी identity को बैकअप तक पहुँच दें, फिर इसे ऐसे sandbox में restore करें जहाँ आपके पास Admin/Owner भूमिकाएँ हों।

यदि आपके पास अनुमति bigtable.backups.setIamPolicy है, तो आप अपने आप को अनुमति bigtable.backups.restore दे सकते हैं ताकि पुराने बैकअप्स पुनर्स्थापित करके संवेदनशील जानकारी तक पहुँचने की कोशिश की जा सके।

बैकअप स्नैपशॉट का स्वामित्व लें ```bash # Take ownership of the snapshot gcloud bigtable backups add-iam-policy-binding \ --instance= --cluster= \ --member='user:' \ --role='roles/bigtable.admin' ```

इस अनुमति के मिलने के बाद Bigtable Post Exploitation section में देखें कि बैकअप कैसे रिस्टोर किया जाता है।

Authorized view अपडेट करें

अनुमतियाँ: bigtable.authorizedViews.update

Authorized Views rows/columns को redact करने के लिए होते हैं। इन्हें बदलने या हटाने से वे सूक्ष्म-स्तरीय सुरक्षा प्रतिबंध हट जाते हैं जिन पर defenders निर्भर करते हैं।

Authorized view अपडेट करके एक्सेस बढ़ाएँ ```bash # Broaden the subset by uploading a permissive definition gcloud bigtable authorized-views update \ --instance= --table= \ --definition-file=/tmp/permissive-view.json --ignore-warnings

Json example not filtering any row or column

cat <<‘EOF’ > /tmp/permissive-view.json { “subsetView”: { “rowPrefixes”: [“”], “familySubsets”: { “”: { “qualifierPrefixes”: [“”] } } } } EOF

Describe the authorized view to get a family name

gcloud bigtable authorized-views describe
–instance= –table=

</details>

इस अनुमति को प्राप्त करने के बाद [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md) में देखें कि कैसे एक authorized view से पढ़ा जाता है।

### `bigtable.authorizedViews.setIamPolicy`

**अनुमतियाँ:**  `bigtable.authorizedViews.setIamPolicy`.

इस permission वाले attacker अपने आप को एक Authorized View तक पहुँच दे सकते हैं, जो संवेदनशील डेटा रख सकता है और जिसके लिए उनके पास अन्यथा पहुँच नहीं होगी।

<details><summary>अपने आप को authorized view तक पहुँच दें</summary>
```bash
# Give more permissions over an existing view
gcloud bigtable authorized-views add-iam-policy-binding <view-id> \
--instance=<instance-id> --table=<table-id> \
--member='user:<attacker@example.com>' \
--role='roles/bigtable.viewer'

इस अनुमति जांच के बाद Bigtable Post Exploitation section में देखें कि किसी authorized view से कैसे पढ़ना है।

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें