Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains

This commit is contained in:
Translator
2025-01-11 19:21:25 +00:00
parent a6b21df8e1
commit afd1580602
44 changed files with 2099 additions and 524 deletions

View File

@@ -4,9 +4,9 @@
## Basic Information
**Pentesting शुरू करने से पहले** एक **GCP** वातावरण के बारे में कुछ **बुनियादी बातें जानना आवश्यक है** कि यह कैसे काम करता है, ताकि आप समझ सकें कि आपको क्या करना है, कैसे गलत कॉन्फ़िगरेशन खोजने हैं और उन्हें कैसे शोषण करना है।
**GCP** वातावरण का **pentesting** शुरू करने से पहले, कुछ **बुनियादी बातें हैं जो आपको जाननी चाहिए** कि यह कैसे काम करता है, ताकि आप समझ सकें कि आपको क्या करना है, कैसे गलत कॉन्फ़िगरेशन खोजने हैं और उन्हें कैसे शोषण करना है।
**संगठन** पदानुक्रम, **अनुमतियाँ** और अन्य बुनियादी अवधारणाएँ निम्नलिखित में समझाई गई हैं:
**संगठन** पदानुक्रम, **अनुमतियाँ** और अन्य बुनियादी अवधारणाएँ इस में समझाई गई हैं:
{{#ref}}
gcp-basic-information/
@@ -23,42 +23,42 @@ gcp-basic-information/
GCP वातावरण का ऑडिट करने के लिए यह जानना बहुत महत्वपूर्ण है: कौन सी **सेवाएँ उपयोग की जा रही हैं**, क्या **प्रदर्शित किया जा रहा है**, किसके पास **पहुँच** है, और आंतरिक GCP सेवाएँ और **बाहरी सेवाएँ** कैसे जुड़ी हुई हैं।
Red Team के दृष्टिकोण से, **GCP वातावरण को समझौता करने का पहला कदम** कुछ **क्रेडेंशियल्स** प्राप्त करना है। यहाँ कुछ विचार दिए गए हैं कि आप ऐसा कैसे कर सकते हैं:
Red Team के दृष्टिकोण से, GCP वातावरण को समझौता करने का **पहला कदम** कुछ **क्रेडेंशियल्स** प्राप्त करना है। यहाँ कुछ विचार दिए गए हैं कि आप ऐसा कैसे कर सकते हैं:
- github (या समान) में **लीक** - OSINT
- **सोशल** इंजीनियरिंग (पृष्ठ देखें [**Workspace Security**](../workspace-security/))
- **सोशल** इंजीनियरिंग (पृष्ठ [**Workspace Security**](../workspace-security/index.html) देखें)
- **पासवर्ड** पुन: उपयोग (पासवर्ड लीक)
- GCP-Hosted Applications में कमजोरियाँ
- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) जिसमें मेटाडेटा एंडपॉइंट तक पहुँच है
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) के साथ मेटाडेटा एंडपॉइंट तक पहुँच
- **स्थानीय फ़ाइल पढ़ें**
- `/home/USERNAME/.config/gcloud/*`
- `C:\Users\USERNAME\.config\gcloud\*`
- 3rd पार्टियों के **भंग**
- **आंतरिक** कर्मचारी
या एक **अप्रमाणित सेवा** को समझौता करके जो प्रदर्शित है:
या **अप्रमाणित सेवा** को समझौता करके जो प्रदर्शित है:
{{#ref}}
gcp-unauthenticated-enum-and-access/
{{#endref}}
या यदि आप एक **समीक्षा** कर रहे हैं तो आप बस इन भूमिकाओं के साथ **क्रेडेंशियल्स** मांग सकते हैं:
या यदि आप एक **समीक्षा** कर रहे हैं तो आप बस इन भूमिकाओं के साथ **क्रेडेंशियल्स** के लिए पूछ सकते हैं:
{{#ref}}
gcp-permissions-for-a-pentest.md
{{#endref}}
> [!NOTE]
> एक बार जब आप क्रेडेंशियल्स प्राप्त करने में सफल हो जाते हैं, तो आपको यह जानने की आवश्यकता है कि **ये क्रेडेंशियल्स किसके हैं**, और **इनके पास क्या पहुँच है**, इसलिए आपको कुछ बुनियादी गणना करन होग:
> एक बार जब आप क्रेडेंशियल्स प्राप्त करने में सफल हो जाते हैं, तो आपको यह जानना होगा कि **ये क्रेडेंशियल्स किसके हैं**, और **इनके पास क्या पहुँच है**, इसलिए आपको कुछ बुनियादी एन्यूमरेशन करन होग:
## Basic Enumeration
### **SSRF**
GCP मेटाडेटा को **गणना** करने के बारे में अधिक जानकारी के लिए निम्नलिखित हैक्ट्रिक्स पृष्ठ देखें:
GCP मेटाडेटा को **एन्यूमरेट** करने के बारे में अधिक जानकारी के लिए निम्नलिखित हैक्ट्रिक्स पृष्ठ देखें:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
{{#endref}}
### Whoami
@@ -79,7 +79,7 @@ curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: OAu
curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: OAuth <access_token>" https://www.googleapis.com/oauth2/v1/userinfo
```
### संगठन गणना
### संगठन Enumeration
```bash
# Get organizations
gcloud organizations list #The DIRECTORY_CUSTOMER_ID is the Workspace ID
@@ -88,30 +88,30 @@ gcloud projects list # Get projects
```
### Principals & IAM Enumeration
यदि आपके पास पर्याप्त अनुमतियाँ हैं, तो **GCP खाते के भीतर प्रत्येक इकाई के विशेषाधिकारों की जांच करना** आपको यह समझने में मदद करेगा कि आप और अन्य पहचान क्या कर सकते हैं और कैसे **विशेषाधिकार बढ़ा सकते हैं**
यदि आपके पास पर्याप्त अनुमतियाँ हैं, तो **GCP खाते के अंदर प्रत्येक इकाई के विशेषाधिकारों की जांच करना** आपको यह समझने में मदद करेगा कि आप और अन्य पहचान क्या कर सकते हैं और कैसे **विशेषाधिकार बढ़ा सकते हैं**
यदि आपके पास IAM को सूचीबद्ध करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो आप **उन्हें ब्रूट-फोर्स करके चुरा सकते हैं**।\
**सूचीकरण और ब्रूट-फोर्सिंग कैसे करें** यह देखें:
जांचें **सूचीकरण और ब्रूट-फोर्सिंग कैसे करें** ें:
{{#ref}}
gcp-services/gcp-iam-and-org-policies-enum.md
{{#endref}}
> [!NOTE]
> अब जब आपके पास **अपने क्रेडेंशियल्स के बारे में कुछ जानकारी है** (और यदि आप एक रेड टीम हैं, तो उम्मीद है कि आप **पकड़े नहीं गए** हैं)। यह पता लगाने का समय है कि वातावरण में कौन सी सेवाएँ उपयोग की जा रही हैं।\
> अब जब आपके पास **आपकी क्रेडेंशियल्स के बारे में कुछ जानकारी है** (और यदि आप एक रेड टीम हैं, तो उम्मीद है कि आप **पता नहीं चले**)। यह पता लगाने का समय है कि वातावरण में कौन सी सेवाएँ उपयोग की जा रही हैं।\
> अगले अनुभाग में आप **कुछ सामान्य सेवाओं को सूचीबद्ध करने के कुछ तरीके** देख सकते हैं।
## Services Enumeration
GCP में सेवाओं की एक आश्चर्यजनक मात्रा है, अगले पृष्ठ पर आपको **बुनियादी जानकारी, सूचीकरण** चीटशीट, **पकड़े जाने से बचने** के तरीके, **स्थायीता** प्राप्त करने और उनमें से कुछ के बारे में अन्य **पोस्ट-एक्सप्लइटेशन** ट्रिक्स मिलेंग:
GCP में सेवाओं की एक आश्चर्यजनक मात्रा है, अगले पृष्ठ में आप **बुनियादी जानकारी, सूचीकरण** चीटशीट, **पता लगाने से बचने** के तरीके, **स्थायीता** प्राप्त करने, और उनमें से कुछ के बारे में अन्य **पोस्ट-एक्सप्लइटेशन** ट्रिक्स पाएंग:
{{#ref}}
gcp-services/
{{#endref}}
ध्यान दें कि आपको सभी का **हाथ से** करने की आवश्यकता **नहीं** है, इस पोस्ट के नीचे आप **स्वचालित उपकरणों** के बारे में एक **अनुभाग** पा सकते हैं [**automatic tools**](./#automatic-tools)।
ध्यान दें कि आपको सभी कार्य **हाथ से** करने की आवश्यकता **नहीं** है, इस पोस्ट के नीचे आप **स्वचालित उपकरणों** के बारे में एक **अनुभाग** पा सकते हैं [**automatic tools**](#automatic-tools)।
इसके अलावा, इस चरण में आप **असत्यापित उपयोगकर्ताओं के लिए अधिक सेवाएँ उजागर** कर सकते हैं, आप उन्हें शोषण करने में सक्षम हो सकते हैं:
इसके अलावा, इस चरण में आप **अधिक सेवाएँ अनधिकृत उपयोगकर्ताओं के लिए उजागर** कर सकते हैं, आप उन्हें शोषण करने में सक्षम हो सकते हैं:
{{#ref}}
gcp-unauthenticated-enum-and-access/
@@ -119,7 +119,7 @@ gcp-unauthenticated-enum-and-access/
## Privilege Escalation, Post Exploitation & Persistence
जब आपने कुछ क्लाउड क्रेडेंशियल्स प्राप्त कर लिए हैं या क्लाउड के भीतर चल रही कुछ सेवाओं से समझौता कर लिया है, तो सबसे सामान्य तरीका है **गलत कॉन्फ़िगर की गई अनुमतियों का दुरुपयोग** करना जो समझौता किए गए खाते के पास हो सकत है। इसलिए, आपको जो पहला काम करना चाहिए वह है अपने विशेषाधिकारों क सूची बनाना
जब आपने कुछ क्लाउड क्रेडेंशियल्स प्राप्त कर लिए हैं या क्लाउड के अंदर चल रही कुछ सेवा से समझौता कर लिया है, तो सबसे सामान्य तरीका है **गलत कॉन्फ़िगर की गई विशेषाधिकारों का दुरुपयोग** करना जो समझौता किए गए खाते के पास हो सकत है। इसलिए, आपको सबसे पहले अपने विशेषाधिकारों क सूचीबद्ध करना चाहिए
इसके अलावा, इस सूचीकरण के दौरान, याद रखें कि **अनुमतियाँ "संगठन" के उच्चतम स्तर पर सेट की जा सकती हैं**
@@ -137,18 +137,18 @@ gcp-persistence/
### Publicly Exposed Services
जब आप GCP सेवाओं क सूची बना रहे होंगे, तो आप उनमें से कुछ को **इंटरनेट पर तत्व उजागर करते हुए** पा सकते हैं (VM/Containers पोर्ट, डेटाबेस या कतार सेवाएँ, स्नैपशॉट या बाल्टियाँ...)।\
एक पेंटेस्टर/रेड टीमर के रूप में, आपको हमेशा यह जांचना चाहिए कि क्या आप उनमें **संवेदनशील जानकारी / कमजोरियाँ** पा सकते हैं क्योंकि वे आपको **AWS खाते में आगे की पहुँच** प्रदान कर सकते हैं।
जब आप GCP सेवाओं क सूचीबद्ध कर रहे े, तो आप उनमें से कुछ को **इंटरनेट पर तत्वों को उजागर करते हुए** पा सकते हैं (VM/Containers पोर्ट, डेटाबेस या कतार सेवाएँ, स्नैपशॉट या बकेट...)।\
एक पेंटेस्टर/रेड टीमर के रूप में, आपको हमेशा यह जांचना चाहिए कि क्या आप उन पर **संवेदनशील जानकारी / कमजोरियों** को खोज सकते हैं क्योंकि वे आपको **AWS खाते में आगे की पहुँच** प्रदान कर सकते हैं।
इस पुस्तक में आपको **जानकारी** मिलेगी कि **कैसे उजागर GCP सेवाओं को खोजें और उन्हें कैसे जांचें**। उजागर नेटवर्क सेवाओं में **कमजोरियों** को खोजने के लिए, मैं आपको **विशिष्ट सेवा** के लिए **खोजने** की सिफारिश करूंगा:
{{#ref}}
https://book.hacktricks.xyz/
https://book.hacktricks.wiki/
{{#endref}}
## GCP <--> Workspace Pivoting
**एक** प्लेटफ़ॉर्म में **समझौता करना** एक हमलावर को **दूसरे को समझौता करने** की अनुमति दे सकता है, इसे देखें:
**एक** प्लेटफ़ॉर्म में **समझौता करना** एक हमलावर को **दूसरे को समझौता करने** की अनुमति दे सकता है, इसे जांचें:
{{#ref}}
gcp-to-workspace-pivoting/
@@ -158,8 +158,8 @@ gcp-to-workspace-pivoting/
- **GCloud कंसोल** में, [https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard) पर आप प्रोजेक्ट द्वारा उपयोग की जा रही संसाधनों और IAMs को देख सकते हैं।
- यहाँ आप इस API द्वारा समर्थित संपत्तियों को देख सकते हैं: [https://cloud.google.com/asset-inventory/docs/supported-asset-types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
- **उपकरणों** की जाच करें जो [**कई क्लाउड में उपयोग किए जा सकते हैं**](../pentesting-cloud-methodology.md)।
- [**gcp_scanner**](https://github.com/google/gcp_scanner): यह एक GCP संसाधन स्कैनर है जो यह निर्धारित करने में मदद कर सकता है कि **किसी विशेष क्रेडेंशियल्स पर GCP पर किस स्तर की पहुँच है**
- **उपकरणों** की जाच करें जो [**कई क्लाउड में उपयोग किए जा सकते हैं**](../pentesting-cloud-methodology.md)।
- [**gcp_scanner**](https://github.com/google/gcp_scanner): यह एक GCP संसाधन स्कैनर है जो यह निर्धारित करने में मदद कर सकता है कि **कुछ क्रेडेंशियल्स पर GCP पर किस स्तर की पहुँच है**
```bash
# Install
git clone https://github.com/google/gcp_scanner.git
@@ -170,9 +170,9 @@ pip install -r requirements.txt
# Execute with gcloud creds
python3 __main__.py -o /tmp/output/ -g "$HOME/.config/gcloud"
```
- [**gcp_enum**](https://gitlab.com/gitlab-com/gl-security/threatmanagement/redteam/redteam-public/gcp_enum): Bash स्क्रिप्ट जो gcloud cli का उपयोग करके GCP वातावरण को सूचीबद्ध करती है और परिणामों को एक फ़ाइल में सहेजती है
- [**gcp_enum**](https://gitlab.com/gitlab-com/gl-security/threatmanagement/redteam/redteam-public/gcp_enum): GCP वातावरण को gcloud cli का उपयोग करके सूचीबद्ध करने और परिणामों को एक फ़ाइल में सहेजने के लिए Bash स्क्रिप्ट
- [**GCP-IAM-Privilege-Escalation**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation): उच्च IAM विशेषाधिकारों को सूचीबद्ध करने और GCP में उनका दुरुपयोग करके विशेषाधिकारों को बढ़ाने के लिए स्क्रिप्ट (मैं सूचीबद्ध स्क्रिप्ट को चलाने में असमर्थ था)।
- [**BF My GCP Permissions**](https://github.com/carlospolop/bf_my_gcp_permissions): आपक अनुमतियों को ब्रूटफोर्स करने के लिए स्क्रिप्ट।
- [**BF My GCP Permissions**](https://github.com/carlospolop/bf_my_gcp_permissions): आपक अनुमतियों को ब्रूटफोर्स करने के लिए स्क्रिप्ट।
## gcloud config & debug
```bash
@@ -191,7 +191,7 @@ gcloud components update
```
### Capture gcloud, gsutil... network
याद रखें कि आप **`gcloud`** cli के साथ **`--log-http`** **पैरामीटर** का उपयोग करके **उपकरण द्वारा किए जा रहे** **अनुरोधों** को **प्रिंट** कर सकते हैं। यदि आप नहीं चाहते कि लॉग टोकन मान को छुपाएं, तो `gcloud config set log_http_redact_token false` का उपयोग करें।
याद रखें कि आप **`gcloud`** cli के साथ **`--log-http`** **पैरामीटर** का उपयोग करके **उपकरण** द्वारा किए जा रहे **अनुरोधों** को **प्रिंट** कर सकते हैं। यदि आप नहीं चाहते कि लॉग टोकन मान को छुपाएं, तो `gcloud config set log_http_redact_token false` का उपयोग करें।
इसके अलावा, संचार को इंटरसेप्ट करने के लिए:
```bash
@@ -210,9 +210,9 @@ gcloud config unset proxy/type
gcloud config unset auth/disable_ssl_validation
gcloud config unset core/custom_ca_certs_file
```
### gcloud में OAuth टोकन कॉन्फ़िगर करें
### OAuth टोकन gcloud में कॉन्फ़िगर करें
**मेटाडेटा एंडपॉइंट से निकाले गए सेवा खाते के OAuth टोकन का उपयोग करने के लिए** आप बस कर सकते हैं:
**मेटाडेटा एंडपॉइंट से निकाले गए सेवा खाते के OAuth टोकन का उपयोग करने के लिए** आप बस यह कर सकते हैं:
```bash
# Via env vars
export CLOUDSDK_AUTH_ACCESS_TOKEN=<token>

View File

@@ -13,30 +13,30 @@ Artifact Registry के बारे में अधिक जानकार
### Dependency Confusion
- क्या होता है अगर एक **remote और एक standard** repositories **एक virtual** में मिलाए जाते हैं और एक package दोनों में मौजूद है?
- **Virtual repository** में **highest priority** सेट किया गया वाला उपयोग किया जाता है
- अगर **priority समान है**:
- अगर **version** **समान है**, तो **policy name alphabetically** पहले वाले का उपयोग किया जाता है
- अगर नहीं, तो **highest version** का उपयोग किया जाता है
- **वर्चुअल रिपॉजिटरी में सेट की गई उच्चतम प्राथमिकता** वाला उपयोग किया जाता है
- अगर **प्राथमिकता समान है**:
- अगर **संस्करण** **समान** है, तो **नीति का नाम वर्णानुक्रम में** पहले वर्चुअल रिपॉजिटरी में उपयोग किया जाता है
- अगर नहीं, तो **उच्चतम संस्करण** का उपयोग किया जाता है
> [!CAUTION]
> इसलिए, यह संभव है कि एक सार्वजनिक package registry में **highest version (dependency confusion)** का **दुरुपयोग** किया जाए अगर remote repository की priority अधिक या समान है
> इसलिए, यदि remote repository की प्राथमिकता उच्च या समान है, तो एक सार्वजनिक package registry में **उच्चतम संस्करण (dependency confusion)** का **दुरुपयोग** करना संभव है
यह तकनीक **persistence** और **unauthenticated access** के लिए उपयोगी हो सकती है क्योंकि इसे दुरुपयोग करने के लिए केवल **Artifact Registry** में संग्रहीत **library name** को **जानना** और **सार्वजनिक repository (उदाहरण के लिए Python के लिए PyPi)** में उसी library को उच्च version के साथ **बनाना** आवश्यक है।
यह तकनीक **persistence** और **unauthenticated access** के लिए उपयोगी हो सकती है क्योंकि इसे दुरुपयोग करने के लिए केवल **Artifact Registry में संग्रहीत एक लाइब्रेरी का नाम जानना** और **सार्वजनिक रिपॉजिटरी (उदाहरण के लिए Python के लिए PyPi) में उसी लाइब्रेरी को उच्च संस्करण के साथ बनाना** आवश्यक है।
Persistence के लिए आपको निम्नलिखित चरणों का पालन करना होगा:
persistence के लिए आपको निम्नलिखित चरणों का पालन करना होगा:
- **Requirements**: एक **virtual repository** का **अस्तित्व** होना चाहिए और इसका उपयोग किया जाना चाहिए, एक **internal package** जिसका **name** **public repository** में मौजूद नहीं है, का उपयोग किया जाना चाहिए।
- अगर यह मौजूद नहीं है तो एक remote repository बनाएं
- Remote repository को virtual repository में जोड़ें
- Remote repository को उच्च (या समान) priority देने के लिए virtual registry की नीतियों को संपादित करें।\
कुछ ऐसा चलाए:
- **आवश्यकताएँ**: एक **virtual repository** का **अस्तित्व** होना चाहिए और इसका उपयोग किया जाना चाहिए, एक **internal package** जिसका **नाम** **सार्वजनिक रिपॉजिटरी** में मौजूद नहीं है, का उपयोग किया जाना चाहिए।
- यदि यह मौजूद नहीं है तो एक remote repository बनाएं
- वर्चुअल रिपॉजिटरी में remote repository जोड़ें
- वर्चुअल रजिस्ट्री की नीतियों को संपादित करें ताकि remote repository को उच्च प्राथमिकता (या समान) दी जा सके।\
कुछ ऐसा चलाए:
- [gcloud artifacts repositories update --upstream-policy-file ...](https://cloud.google.com/sdk/gcloud/reference/artifacts/repositories/update#--upstream-policy-file)
- वैध package डाउनलोड करें, अपने दुर्भावनापूर्ण कोड को जोड़ें और इसे सार्वजनिक repository में उसी version के साथ पंजीकृत करें। हर बार जब एक developer इसे स्थापित करता है, तो वह आपका स्थापित करेगा!
- वैध पैकेज डाउनलोड करें, अपने दुर्भावनापूर्ण कोड को जोड़ें और इसे सार्वजनिक रिपॉजिटरी में उसी संस्करण के साथ पंजीकृत करें। हर बार जब एक डेवलपर इसे स्थापित करता है, तो वह आपका स्थापित करेगा!
Dependency confusion के बारे में अधिक जानकारी के लिए देखें:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/dependency-confusion
https://book.hacktricks.wiki/en/pentesting-web/dependency-confusion.html
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,17 +1,17 @@
# GCP - टोकन स्थिरता
# GCP - Token Persistance
{{#include ../../../banners/hacktricks-training.md}}
### प्रमाणित उपयोगकर्ता टोकन
किसी उपयोगकर्ता का **वर्तमान टोकन** प्राप्त करने के लिए आप चला सकते हैं:
To get the **current token** of a user you can run:
```bash
sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_tokens where account_id='<email>';"
```
इस पृष्ठ पर देखें कि **gcloud का उपयोग करके इस टोकन का सीधे उपयोग कैसे करें**:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#id-6440-1
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
{{#endref}}
**नया एक्सेस टोकन उत्पन्न करने** के लिए विवरण प्राप्त करने के लिए चलाएँ:
@@ -20,7 +20,7 @@ sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where
```
यह भी संभव है कि **`$HOME/.config/gcloud/application_default_credentials.json`** और **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`** में रिफ्रेश टोकन पाए जाएं।
क नया रिफ्रेश किया गया एक्सेस टोकन प्राप्त करने के लिए **refresh token**, क्लाइंट आईडी, और क्लाइंट सीक्रेट के साथ चलाएँ:
ए रिफ्रेश किए गए एक्सेस टोकन को **रिफ्रेश टोकन**, क्लाइंट आईडी, और क्लाइंट सीक्रेट के साथ प्राप्त करने के लिए चलाएँ:
```bash
curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data grant_type=refresh_token --data refresh_token=<refresh_token> --data scope="https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/accounts.reauth" https://www.googleapis.com/oauth2/v4/token
```
@@ -45,7 +45,7 @@ curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data
```bash
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-A/\-\._]*' | sort -u
```
इस स्क्रिप्ट के साथ यह देखना संभव है कि **`gcloud`** द्वारा प्रमाणीकरण के लिए उपयोग क जाने वाल एप्लिकेशन कौन से स्कोप का समर्थन कर सकती है:
यह स्क्रिप्ट यह देखने की अनुमति देती है कि **`gcloud`** द्वारा प्रमाणीकरण के लिए उपयोग किए जाने वाल एप्लिकेशन के लिए कौन से स्कोप समर्थित है:
```bash
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-Z/\._\-]*' | sort -u | while read -r scope; do
echo -ne "Testing $scope \r"
@@ -67,16 +67,16 @@ https://www.googleapis.com/auth/userinfo.email
```
यह देखना दिलचस्प है कि यह ऐप **`drive`** स्कोप का समर्थन करता है, जो एक उपयोगकर्ता को GCP से Workspace में बढ़ाने की अनुमति दे सकता है यदि एक हमलावर उपयोगकर्ता को इस स्कोप के साथ एक टोकन उत्पन्न करने के लिए मजबूर करने में सफल होता है।
**यहां देखें कि कैसे** [**इसका दुरुपयोग करें**](../gcp-to-workspace-pivoting/#abusing-gcloud)**।**
**यहां देखें कि कैसे** [**इसका दुरुपयोग करें**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**।**
### सेवा खाते
जैसे कि प्रमाणित उपयोगकर्ताओं के साथ, यदि आप एक सेवा खाते की **निजी कुंजी फ़ाइल को समझौता** करने में सफल होते हैं, तो आप इसे **आम तौर पर जितना चाहें उतना एक्सेस कर सकेंगे**।\
जैसे कि प्रमाणित उपयोगकर्ताओं के साथ, यदि आप एक सेवा खाते की **निजी कुंजी फ़ाइल को समझौता** कर लेते हैं, तो आप इसे **आम तौर पर जितना चाहें उतना एक्सेस कर सकेंगे**।\
हालांकि, यदि आप एक सेवा खाते का **OAuth टोकन** चुरा लेते हैं, तो यह और भी दिलचस्प हो सकता है, क्योंकि, भले ही डिफ़ॉल्ट रूप से ये टोकन केवल एक घंटे के लिए उपयोगी होते हैं, यदि **पीड़ित निजी एपीआई कुंजी को हटा देता है, तो OAuh टोकन तब भी मान्य रहेगा जब तक कि यह समाप्त नहीं हो जाता**
### मेटाडेटा
स्पष्ट रूप से, जब तक आप GCP वातावरण में चल रही मशीन के अंदर हैं, आप उस मशीन से जुड़े सेवा खाते को **मेटाडेटा एंडपॉइंट से संपर्क करके एक्सेस कर सकेंगे** (ध्यान दें कि इस एंडपॉइंट में आप जो Oauth टोकन एक्सेस कर सकते हैं, वे आमतौर पर स्कोप द्वारा प्रतिबंधित होते हैं)।
स्पष्ट रूप से, जब तक आप GCP वातावरण में चल रही मशीन के अंदर हैं, आप **उस मशीन से जुड़े सेवा खाते को मेटाडेटा एंडपॉइंट से संपर्क करके एक्सेस कर सकेंगे** (ध्यान दें कि इस एंडपॉइंट में आप जो Oauth टोकन एक्सेस कर सकते हैं, वे आमतौर पर स्कोप द्वारा प्रतिबंधित होते हैं)।
### सुधार

View File

@@ -2,13 +2,13 @@
{{#include ../../../banners/hacktricks-training.md}}
इस परिदृश्य में हम मान लेंगे कि आपने **एक गैर-विशेषाधिकार खाता** एक VM में एक Compute Engine प्रोजेक्ट के अंदर समझौता किया है।
इस परिदृश्य में हम मानने जा रहे हैं कि आपने **एक गैर-विशेषाधिकार खाता** को एक VM के अंदर एक Compute Engine प्रोजेक्ट में समझौता किया है।
अद्भुत रूप से, आपके द्वारा समझौता किए गए Compute Engine के GPC अनुमतियाँ आपको **एक मशीन के अंदर स्थानीय रूप से विशेषाधिकार बढ़ाने** में मदद कर सकती हैं। भले ही यह हमेशा एक क्लाउड वातावरण में बहुत सहायक न हो, यह जानना अच्छा है कि यह संभव है।
## स्क्रिप्ट पढ़ें <a href="#follow-the-scripts" id="follow-the-scripts"></a>
**कंप्यूट इंस्टेंस** शायद वहां **कुछ स्क्रिप्ट्स** को उनके सेवा खातों के साथ क्रियान्वित करने के लिए हैं।
**Compute Instances** शायद वहां **कुछ स्क्रिप्ट्स** को उनके सेवा खातों के साथ क्रियान्वित करने के लिए हैं।
चूंकि IAM बहुत बारीक है, एक खाता एक संसाधन पर **पढ़ने/लिखने** के विशेषाधिकार रख सकता है लेकिन **कोई सूची विशेषाधिकार नहीं**
@@ -20,31 +20,31 @@
## कस्टम मेटाडेटा
प्रशासक **इंस्टेंस** और **प्रोजेक्ट स्तर** पर [कस्टम मेटाडेटा](https://cloud.google.com/compute/docs/storing-retrieving-metadata#custom) जोड़ सकते हैं। यह बस एक तरीके से **मनमाने कुंजी/मान जोड़े को एक इंस्टेंस में पास करने** का तरीका है, और इसे पर्यावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए सामान्यतः उपयोग किया जाता है।
प्रशासक **इंस्टेंस** और **प्रोजेक्ट स्तर** पर [कस्टम मेटाडेटा](https://cloud.google.com/compute/docs/storing-retrieving-metadata#custom) जोड़ सकते हैं। यह बस **एक इंस्टेंस में मनमाने कुंजी/मान जोड़े पास करने** का एक तरीका है, और इसे पर्यावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए सामान्यतः उपयोग किया जाता है।
इसके अलावा, **userdata** जोड़ना संभव है, जो एक स्क्रिप्ट है जो **हर बार** मशीन शुरू या पुनः प्रारंभ होने पर **क्रियान्वित** की जाएगी और जिसे **मेटाडेटा एंडपॉइंट से भी एक्सेस किया जा सकता है।**
अधिक जानकारी के लिए देखें:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
{{#endref}}
## **IAM अनुमतियों का दुरुपयोग**
## **IAM अनुमतियों का दुरुपयोग करना**
निम्नलिखित प्रस्तावित अनुमतियों में से अधिकांश **डिफ़ॉल्ट Compute SA को दी गई हैं,** केवल समस्या यह है कि **डिफ़ॉल्ट एक्सेस स्कोप SA को उनका उपयोग करने से रोकता है।** हालाँकि, यदि **`cloud-platform`** **स्कोप** सक्षम है या केवल **`compute`** **स्कोप** सक्षम है, तो आप **नका दुरुपयोग करने में सक्षम होंगे।**
निम्नलिखित प्रस्तावित अनुमतियों में से अधिकांश **डिफ़ॉल्ट Compute SA को दी गई हैं,** केवल समस्या यह है कि **डिफ़ॉल्ट एक्सेस स्कोप SA को उनका उपयोग करने से रोकता है।** हालाँकि, यदि **`cloud-platform`** **स्कोप** सक्षम है या केवल **`compute`** **स्कोप** सक्षम है, तो आप **नका दुरुपयोग करने में सक्षम होंगे।**
निम्नलिखित अनुमतियों की जांच करें:
- [**compute.instances.osLogin**](gcp-compute-privesc/#compute.instances.oslogin)
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/#compute.instances.osadminlogin)
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/#compute.projects.setcommoninstancemetadata)
- [**compute.instances.setMetadata**](gcp-compute-privesc/#compute.instances.setmetadata)
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/#compute.instances.setiampolicy)
- [**compute.instances.osLogin**](gcp-compute-privesc/index.html#compute.instances.oslogin)
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/index.html#compute.instances.osadminlogin)
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/index.html#compute.projects.setcommoninstancemetadata)
- [**compute.instances.setMetadata**](gcp-compute-privesc/index.html#compute.instances.setmetadata)
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/index.html#compute.instances.setiampolicy)
## फ़ाइल सिस्टम में कुंजियों की खोज करें
जांचें कि क्या अन्य उपयोगकर्ताओं ने बॉक्स के अंदर gcloud में लॉगिन किया है और फ़ाइल सिस्टम में अपन क्रेडेंशियल्स छोड़ द हैं:
जांचें कि क्या अन्य उपयोगकर्ताओं ने बॉक्स के अंदर gcloud में लॉगिन किया है और फ़ाइल सिस्टम में अपन क्रेडेंशियल्स छोड़ दिए हैं:
```
sudo find / -name "gcloud"
```

View File

@@ -4,22 +4,22 @@
## Basic Information
Google Cloud Compute Instances **गूगल के क्लाउड इन्फ्रास्ट्रक्चर पर अनुकूलन योग्य वर्चुअल मशीनें** हैं, जो विभिन्न प्रकार के अनुप्रयोगों के लिए स्केलेबल और ऑन-डिमांड कंप्यूटिंग पावर प्रदान करती हैं। ये वैश्विक तैनाती, स्थायी भंडारण, लचीले OS विकल्प, और मजबूत नेटवर्किंग और सुरक्षा एकीकरण जैसी सुविधाएँ प्रदान करती हैं, जिससे ये वेबसाइटों को होस्ट करने, डेटा संसाधित करने, और क्लाउड में अनुप्रयोगों को कुशलता से चलाने के लिए एक बहुपरकारी विकल्प बनती हैं।
Google Cloud Compute Instances **गूगल के क्लाउड इन्फ्रास्ट्रक्चर पर अनुकूलन योग्य वर्चुअल मशीनें** हैं, जो विभिन्न प्रकार के अनुप्रयोगों के लिए स्केलेबल और ऑन-डिमांड कंप्यूटिंग पावर प्रदान करती हैं। ये वैश्विक तैनाती, स्थायी भंडारण, लचीले OS विकल्प और मजबूत नेटवर्किंग और सुरक्षा एकीकरण जैसी सुविधाएँ प्रदान करती हैं, जिससे ये वेबसाइटों को होस्ट करने, डेटा संसाधित करने और क्लाउड में अनुप्रयोगों को कुशलतापूर्वक चलाने के लिए एक बहुपरकारी विकल्प बनती हैं।
### Confidential VM
Confidential VMs **हार्डवेयर-आधारित सुरक्षा सुविधाओं** का उपयोग करती हैं जो नवीनतम पीढ़ी के AMD EPYC प्रोसेसर द्वारा प्रदान की जाती हैं, जिसमें मेमोरी एन्क्रिप्शन और सुरक्षित एन्क्रिप्टेड वर्चुअलाइजेशन शामिल हैं। ये सुविधाएँ VM को इसके भीतर संसाधित और संग्रहीत डेटा की सुरक्षा करने में सक्षम बनाती हैं, यहां तक कि होस्ट ऑपरेटिंग सिस्टम और हाइपरवाइजर से भी।
Confidential VMs **हार्डवेयर-आधारित सुरक्षा सुविधाओं** का उपयोग करती हैं जो नवीनतम पीढ़ी के AMD EPYC प्रोसेसर द्वारा प्रदान की जाती हैं, जिसमें मेमोरी एन्क्रिप्शन और सुरक्षित एन्क्रिप्टेड वर्चुअलाइजेशन शामिल हैं। ये सुविधाएँ VM को उस डेटा की सुरक्षा करने में सक्षम बनाती हैं जो इसके भीतर संसाधित और संग्रहीत होता है, यहां तक कि होस्ट ऑपरेटिंग सिस्टम और हाइपरवाइजर से भी।
Confidential VM चलाने के लिए इसे **बदलने** की आवश्यकता हो सकती है जैसे कि **मशीन का प्रकार**, नेटवर्क **इंटरफेस**, **बूट डिस्क इमेज**
### Disk & Disk Encryption
आप **डिस्क का चयन** कर सकते हैं या **एक नई डिस्क बना सकते हैं**। यदि आप एक नई डिस्क का चयन करते हैं तो आप:
आप **डिस्क का चयन** करने या **नई बनाने** के लिए स्वतंत्र हैं। यदि आप नई का चयन करते हैं तो आप:
- डिस्क का **आकार** चुन सकते हैं
- **OS** का चयन कर सकते हैं
- **डिस्क का आकार** चुन सकते हैं
- **OS** चुन सकते हैं
- संकेत कर सकते हैं कि आप **इंस्टेंस के हटाए जाने पर डिस्क को हटाना चाहते हैं**
- **एन्क्रिप्शन**: **डिफ़ॉल्ट** रूप से एक **गूगल प्रबंधित कुंजी** का उपयोग किया जाएगा, लेकिन आप **KMS से एक कुंजी का चयन** भी कर सकते हैं या **उपयोग करने के लिए कच्ची कुंजी** का संकेत दे सकते हैं।
- **एन्क्रिप्शन**: **डिफ़ॉल्ट** के रूप में एक **गूगल प्रबंधित कुंजी** का उपयोग किया जाएगा, लेकिन आप **KMS से एक कुंजी का चयन** भी कर सकते हैं या **उपयोग करने के लिए कच्ची कुंजी** का संकेत दे सकते हैं।
### Deploy Container
@@ -28,8 +28,8 @@ Confidential VM चलाने के लिए इसे **बदलने**
### Service Account
डिफ़ॉल्ट रूप से, **कंप्यूट इंजन डिफ़ॉल्ट सेवा खाता** का उपयोग किया जाएगा। इस SA का ईमेल इस प्रकार है: `<proj-num>-compute@developer.gserviceaccount.com`\
इस सेवा खाते के पास **पूरे प्रोजेक्ट पर संपादक की भूमिका (उच्च विशेषाधिकार)** है।
डिफ़ॉल्ट रूप से, **Compute Engine डिफ़ॉल्ट सेवा खाता** का उपयोग किया जाएगा। इस SA का ईमेल इस प्रकार है: `<proj-num>-compute@developer.gserviceaccount.com`\
इस सेवा खाते के पास **पूरे प्रोजेक्ट पर संपादक भूमिका (उच्च विशेषाधिकार)** है।
और **डिफ़ॉल्ट एक्सेस स्कोप** निम्नलिखित हैं:
@@ -76,7 +76,7 @@ VM तक पहुंच सक्षम करने का सामान्
आप **स्वचालन** (AWS में userdata) को परिभाषित कर सकते हैं जो **शेल कमांड** हैं जो हर बार मशीन चालू होने या पुनरारंभ होने पर निष्पादित होंगे।
आप अतिरिक्त मेटाडेटा कुंजी-मूल्य जोड़ने के लिए भी सक्षम हैं जो मेटाडेटा एंडपॉइंट से सुलभ होंगे। यह जानकारी आमतौर पर पर्यावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए उपयोग की जाती है। इसे **enumeration section में एक कमांड से `describe` method** का उपयोग करके प्राप्त किया जा सकता है, लेकिन इसे इंस्टेंस के अंदर मेटाडेटा एंडपॉइंट तक पहुंचकर भी पुनः प्राप्त किया जा सकता है।
आप अतिरिक्त मेटाडेटा कुंजी-मूल्य जोड़ने के लिए भी स्वतंत्र हैं जो मेटाडेटा एंडपॉइंट से सुलभ होंगे। यह जानकारी आमतौर पर पर्यावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए उपयोग की जाती है। इसे **enumeration section में एक कमांड से `describe` method** का उपयोग करके प्राप्त किया जा सकता है, लेकिन इसे इंस्टेंस के अंदर मेटाडेटा एंडपॉइंट तक पहुंचकर भी पुनः प्राप्त किया जा सकता है।
```bash
# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
@@ -86,10 +86,10 @@ curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?rec
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
```
इसके अलावा, **संलग्न सेवा खाते के लिए auth टोकन** और **संस्थान, नेटवर्क और परियोजना के बारे में सामान्य जानकारी** भी **मेटाडेटा एंडपॉइंट** से उपलब्ध होगी। अधिक जानकारी के लिए देखें:
इसके अलावा, **संलग्न सेवा खाते के लिए प्रमाणीकरण टोकन** और **संस्थान, नेटवर्क और परियोजना के बारे में सामान्य जानकारी** भी **मेटाडेटा एंडपॉइंट** से उपलब्ध होगी। अधिक जानकारी के लिए देखें:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
{{#endref}}
### एन्क्रिप्शन

View File

@@ -1,4 +1,4 @@
# GCP - Cloud SQL अनधिकृत Enum
# GCP - Cloud SQL Unauthenticated Enum
{{#include ../../../banners/hacktricks-training.md}}
@@ -10,14 +10,14 @@ Cloud SQL के बारे में अधिक जानकारी क
../gcp-services/gcp-cloud-sql-enum.md
{{#endref}}
### ब्रूट फोर्स
### Brute Force
यदि आपके पास **Cloud SQL पोर्ट तक पहुंच** है क्योंकि सभी इंटरनेट की अनुमति है या किसी अन्य कारण से, तो आप क्रेडेंशियल्स को ब्रूट फोर्स करने की कोशिश कर सकते हैं।
विभिन्न डेटाबेस तकनीकों के लिए **ब्रूट-फोर्स करने के लिए विभिन्न उपकरणों** के लिए इस पृष्ठ की जांच करें:
**विभिन्न डेटाबेस तकनीकों के लिए ब्रूट-फोर्स करने के लिए विभिन्न उपकरणों** के लिए इस पृष्ठ की जांच करें:
{{#ref}}
https://book.hacktricks.xyz/generic-methodologies-and-resources/brute-force
https://book.hacktricks.wiki/en/generic-hacking/brute-force.html
{{#endref}}
याद रखें कि कुछ विशेषाधिकारों के साथ GCP API के माध्यम से **सभी डेटाबेस उपयोगकर्ताओं की सूची** बनाना संभव है।

View File

@@ -15,7 +15,7 @@ Compute और VPC (Networking) के बारे में अधिक ज
यदि एक वेब **SSRF के लिए संवेदनशील** है और **मेटाडेटा हेडर जोड़ना** संभव है, तो एक हमलावर इसका दुरुपयोग करके मेटाडेटा एंडपॉइंट से SA OAuth टोकन तक पहुँच सकता है। SSRF के बारे में अधिक जानकारी के लिए देखें:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/index.html
{{#endref}}
### Vulnerable exposed services