Translated ['src/pentesting-cloud/aws-security/aws-services/aws-cognito-

This commit is contained in:
Translator
2025-08-18 14:46:30 +00:00
parent 7b797c4f01
commit fdc60c859c
2 changed files with 9 additions and 9 deletions

View File

@@ -7,7 +7,7 @@
Identity pools एक महत्वपूर्ण भूमिका निभाते हैं क्योंकि ये आपके उपयोगकर्ताओं को **अस्थायी क्रेडेंशियल्स** प्राप्त करने में सक्षम बनाते हैं। ये क्रेडेंशियल्स विभिन्न AWS सेवाओं, जैसे कि Amazon S3 और DynamoDB, तक पहुँचने के लिए आवश्यक हैं। Identity pools की एक उल्लेखनीय विशेषता यह है कि ये गुमनाम अतिथि उपयोगकर्ताओं और उपयोगकर्ता प्रमाणीकरण के लिए विभिन्न पहचान प्रदाताओं का समर्थन करते हैं। समर्थित पहचान प्रदाता में शामिल हैं:
- Amazon Cognito user pools
-ामाजिक साइन-इन विकल्प जैसे Facebook, Google, Login with Amazon, और Sign in with Apple
-ोशल साइन-इन विकल्प जैसे Facebook, Google, Login with Amazon, और Sign in with Apple
- OpenID Connect (OIDC) के साथ संगत प्रदाता
- SAML (Security Assertion Markup Language) पहचान प्रदाता
- Developer authenticated identities
@@ -35,7 +35,7 @@ print(response)
```
### Cognito Sync
Identity Pool सत्र उत्पन्न करने के लिए, आपको पहले **एक पहचान ID उत्पन्न करने की आवश्यकता है**। यह पहचान ID **उस उपयोगकर्ता के सत्र की पहचान है**। इन पहचानों में 20 तक डेटा सेट हो सकते हैं जो 1MB तक की कुंजी-मूल्य जोड़ों को संग्रहीत कर सकते हैं।
Identity Pool सत्र उत्पन्न करने के लिए, आपको पहले **एक पहचान ID उत्पन्न करने की आवश्यकता है**। यह पहचान ID **उस उपयोगकर्ता के सत्र की पहचान है**। इन पहचानों में 20 तक डेटा सेट हो सकते हैं जो 1MB तक की कुंजी-मूल्य जोड़ को संग्रहीत कर सकते हैं।
यह **एक उपयोगकर्ता की जानकारी रखने के लिए उपयोगी है** (जो हमेशा उसी पहचान ID का उपयोग करेगा)।
@@ -43,13 +43,13 @@ Identity Pool सत्र उत्पन्न करने के लिए,
### Tools for pentesting
- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS शोषण ढांचा, अब "cognito\_\_enum" और "cognito\_\_attack" मॉड्यूल शामिल करता है जो एक खाते में सभी Cognito संपत्तियों की गणना को स्वचालित करता है और कमजोर कॉन्फ़िगरेशन, उपयोगकर्ता विशेषताएँ जो पहुँच नियंत्रण के लिए उपयोग की जाती हैं, आदि को चिह्नित करता है, और उपयोगकर्ता निर्माण (MFA समर्थन सहित) और परिवर्तनीय कस्टम विशेषताओं, उपयोग योग्य पहचान पूल क्रेडेंशियल्स, ID टोकन में ग्रहणीय भूमिकाओं के आधार पर विशेषाधिकार वृद्धि को भी स्वचालित करता है।
- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS शोषण ढांचा, अब "cognito\_\_enum" और "cognito\_\_attack" मॉड्यूल शामिल करता है जो एक खाते में सभी Cognito संपत्तियों की गणना को स्वचालित करता है और कमजोर कॉन्फ़िगरेशन, उपयोगकर्ता विशेषताएँ जो पहुँच नियंत्रण के लिए उपयोग की जाती हैं, आदि को चिह्नित करता है, और उपयोगकर्ता निर्माण (MFA समर्थन सहित) और परिवर्तनीय कस्टम विशेषताओं, उपयोग योग्य पहचान पूल क्रेडेंशियल्स, ID टोकन में अस्वीकार योग्य भूमिकाओं के आधार पर विशेषाधिकार वृद्धि को भी स्वचालित करता है।
मॉड्यूल के कार्यों का विवरण देखने के लिए [ब्लॉग पोस्ट](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2) का भाग 2 देखें। स्थापना निर्देशों के लिए मुख्य [Pacu](https://github.com/RhinoSecurityLabs/pacu) पृष्ठ देखें।
#### Usage
Sample cognito\_\_attack उपयोग एक दिए गए पहचान पूल और उपयोगकर्ता पूल क्लाइंट के खिलाफ उपयोगकर्ता निर्माण और सभी प्रिवेस्क वेक्टरों का प्रयास करने के लिए:
Sample cognito\_\_attack उपयोग एक दिए गए पहचान पूल और उपयोगकर्ता पूल क्लाइंट के खिलाफ उपयोगकर्ता निर्माण और सभी प्रिवेस्क वेक्टर का प्रयास करने के लिए:
```bash
Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
@@ -78,7 +78,7 @@ For more information check https://github.com/padok-team/cognito-scanner
एक हमलावर को **AWS क्रेडेंशियल्स** प्राप्त करने के लिए एक Cognito ऐप में बिना प्रमाणीकरण वाले उपयोगकर्ता के रूप में केवल **Identity Pool ID** जानने की आवश्यकता होती है, और यह **ID को वेब/मोबाइल** **ऐप्लिकेशन** में हार्डकोड किया जाना चाहिए ताकि इसका उपयोग किया जा सके। एक ID इस तरह दिखती है: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (यह ब्रूटफोर्स करने योग्य नहीं है)।
> [!TIP]
> **IAM Cognito बिना प्रमाणीकरण वाली भूमिका जो बनाई गई है उसे** डिफ़ॉल्ट रूप से `Cognito_<Identity Pool name>Unauth_Role` कहा जाता है।
> **IAM Cognito बिना प्रमाणीकरण वाली भूमिका जो बनाई गई है** उसे डिफ़ॉल्ट रूप से `Cognito_<Identity Pool name>Unauth_Role` कहा जाता है।
यदि आप एक हार्डकोडेड Identity Pools ID पाते हैं और यह बिना प्रमाणीकरण वाले उपयोगकर्ताओं की अनुमति देता है, तो आप AWS क्रेडेंशियल्स प्राप्त कर सकते हैं:
```python
@@ -118,7 +118,7 @@ aws cognito-identity get-credentials-for-identity --identity-id <identity_id> --
पिछले अनुभाग ने **डिफ़ॉल्ट संवर्धित प्रमाणीकरण प्रवाह** का पालन किया। यह प्रवाह IAM भूमिका सत्र के लिए एक **प्रतिबंधात्मक** [**सत्र नीति**](../../aws-basic-information/index.html#session-policies) सेट करता है। यह नीति केवल सत्र को [**इस सूची से सेवाओं का उपयोग करने**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) की अनुमति देगी (भले ही भूमिका को अन्य सेवाओं तक पहुंच हो)।
हालांकि, इसे बायपास करने का एक तरीका है, यदि **पहचान पूल में "बेसिक (क्लासिक) प्रवाह" सक्षम है**, तो उपयोगकर्ता उस प्रवाह का उपयोग करके एक सत्र प्राप्त कर सकेगा जिसमें **वह प्रतिबंधात्मक सत्र नीति नहीं होगी**
हालांकि, इसे बायपास करने का एक तरीका है, यदि **पहचान पूल में "बेसिक (क्लासिक) फ्लो" सक्षम है**, तो उपयोगकर्ता उस प्रवाह का उपयोग करके एक सत्र प्राप्त कर सकेगा जिसमें **वह प्रतिबंधात्मक सत्र नीति नहीं होगी**
```bash
# Get auth ID
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
@@ -149,7 +149,7 @@ IAM क्रेडेंशियल्स का एक सेट होने
> [!TIP]
> **IAM Cognito प्रमाणित भूमिका जो बनाई गई है** उसे डिफ़ॉल्ट रूप से `Cognito_<Identity Pool name>Auth_Role` कहा जाता है।
वैसे भी, **निम्नलिखित उदाहरण** यह अपेक्षाकृत करता है कि आपने पहले ही **Cognito User Pool** के अंदर लॉग इन किया है जिसका उपयोग Identity Pool तक पहुँचने के लिए किया गया है (यह न भूलें कि अन्य प्रकार के पहचान प्रदाता भी कॉन्फ़िगर किए जा सकते हैं)।
वैसे भी, **निम्नलिखित उदाहरण** यह अपेक्षाकृत करता है कि आप पहले से ही एक **Cognito User Pool** के अंदर लॉग इन कर चुके है जिसका उपयोग Identity Pool तक पहुँचने के लिए किया गया है (यह न भूलें कि अन्य प्रकार के पहचान प्रदाता भी कॉन्फ़िगर किए जा सकते हैं)।
<pre class="language-bash"><code class="lang-bash">
# Updated format
@@ -184,6 +184,6 @@ aws cognito-identity get-credentials-for-identity \
</code></pre>
> [!WARNING]
> यह संभव है कि **पहचान प्रदाता के आधार पर विभिन्न IAM भूमिकाएँ कॉन्फ़िगर की जाएं** जिस पर उपयोगकर्ता लॉग इन कर रहा है या यहां तक कि **उपयोगकर्ता** (क्लेम का उपयोग करके) के आधार पर। इसलिए, यदि आपके पास एक ही या विभिन्न प्रदाताओं के माध्यम से विभिन्न उपयोगकर्ताओं तक पहुँच है, तो **लॉग इन करना और उनके सभी IAM भूमिकाओं तक पहुँच प्राप्त करना फायदेमंद हो सकता है**।
> यह संभव है कि **पहचान प्रदाता के आधार पर विभिन्न IAM भूमिकाएँ कॉन्फ़िगर की जाएं** जिस पर उपयोगकर्ता लॉग इन कर रहा है या यहां तक कि **उपयोगकर्ता** (क्लेम का उपयोग करके) के आधार पर। इसलिए, यदि आपके पास एक ही या विभिन्न प्रदाताओं के माध्यम से विभिन्न उपयोगकर्ताओं तक पहुँच है, तो **लॉग इन करना और उनके सभी IAM भूमिकाओं तक पहुँच प्राप्त करना** **लायक हो सकता है**।
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -36,7 +36,7 @@ gcloud tasks queues add-iam-policy-binding \
--member serviceAccount:<account>@<project_id>.iam.gserviceaccount.com \
--role roles/cloudtasks.admin
```
यह हमलावर को किसी भी सेवा खाते को कतार पर पूर्ण Cloud Tasks व्यवस्थापक अनुमतियाँ देने की अनुमति देता है जिसे वे नियंत्रित करते हैं
यह हमलावर को किसी भी सेवा खाते को जो वे नियंत्रित करते हैं, कतार पर पूर्ण Cloud Tasks व्यवस्थापक अनुमतियाँ देने की अनुमति देता है।
## संदर्भ