mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-27 21:23:07 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -32,7 +32,7 @@ Soos in die volgende beeld gesien kan word, is dit moontlik om in die **omgewing
|
||||
|
||||
### `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`)
|
||||
|
||||
As opsomming laat hierdie toestemmings toe om **Runbooks te skep, te wysig en uit te voer** in die Automatiseringsrekening wat jy kan gebruik om **kode** in die konteks van die Automatiseringsrekening uit te voer en voorregte na die toegewyde **Bestuurde Identiteite** te eskaleer en **akkrediteer** en **versleutelde veranderlikes** wat in die Automatiseringsrekening gestoor is, te lek.
|
||||
As opsomming laat hierdie toestemmings toe om **Runbooks te skep, te wysig en uit te voer** in die Automatiseringsrekening wat jy kan gebruik om **kode** in die konteks van die Automatiseringsrekening uit te voer en voorregte na die toegewyde **Bestuurde Identiteite** te eskaleer en **bewyse** en **versleutelde veranderlikes** wat in die Automatiseringsrekening gestoor is, te lek.
|
||||
|
||||
Die toestemming **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** laat toe om die kode van 'n Runbook in die Automatiseringsrekening te wysig met:
|
||||
```bash
|
||||
@@ -56,7 +56,7 @@ az automation runbook publish \
|
||||
--automation-account-name <account-name> \
|
||||
--name <runbook-name>
|
||||
```
|
||||
Die toestemming **`Microsoft.Automation/automationAccounts/jobs/write`** laat die gebruiker toe om 'n Runbook in die Automatiseringsrekening te loop met:
|
||||
Die toestemming **`Microsoft.Automation/automationAccounts/jobs/write`** laat die gebruiker toe om 'n Runbook in die Automatiseringsrekening te hardloop met:
|
||||
```bash
|
||||
az automation runbook start \
|
||||
--automation-account-name <account-name> \
|
||||
@@ -69,7 +69,7 @@ Die toestemming **`Microsoft.Automation/automationAccounts/jobs/output/read`** l
|
||||
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"
|
||||
```
|
||||
As daar nie Runbooks geskep is nie, of jy wil 'n nuwe een skep, sal jy die **toestemmings `Microsoft.Resources/subscriptions/resourcegroups/read` en `Microsoft.Automation/automationAccounts/runbooks/write`** nodig hê om dit te doen met:
|
||||
As daar geen Runbooks geskep is nie, of jy wil 'n nuwe een skep, sal jy die **toestemmings `Microsoft.Resources/subscriptions/resourcegroups/read` en `Microsoft.Automation/automationAccounts/runbooks/write`** nodig hê om dit te doen met:
|
||||
```bash
|
||||
az automation runbook create --automation-account-name <account-name> --resource-group <res-group> --name <runbook-name> --type PowerShell
|
||||
```
|
||||
@@ -93,7 +93,7 @@ az rest --method PATCH \
|
||||
|
||||
Met die toestemming **`Microsoft.Automation/automationAccounts/schedules/write`** is dit moontlik om 'n nuwe Skedule in die Automatiseringsrekening te skep wat elke 15 minute uitgevoer word (nie baie stil nie) met behulp van die volgende opdrag.
|
||||
|
||||
Let daarop dat die **minimum interval vir 'n skedule 15 minute** is, en die **minimum begin tyd 5 minute** in die toekoms is.
|
||||
Let daarop dat die **minimum interval vir 'n skedule 15 minute** is, en die **minimum begin tyd is 5 minute** in die toekoms.
|
||||
```bash
|
||||
## For linux
|
||||
az automation schedule create \
|
||||
@@ -138,27 +138,12 @@ az rest --method PUT \
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/webhooks/write`
|
||||
|
||||
Met die toestemming **`Microsoft.Automation/automationAccounts/webhooks/write`** is dit moontlik om 'n nuwe Webhook vir 'n Runbook binne 'n Automatiseringsrekening te skep met die volgende opdrag.
|
||||
|
||||
Let daarop dat jy moet **aandui webhook URI** met die token wat gebruik moet word.
|
||||
Met die toestemming **`Microsoft.Automation/automationAccounts/webhooks/write`** is dit moontlik om 'n nuwe Webhook vir 'n Runbook binne 'n Automatiseringsrekening te skep met behulp van die volgende opdrag.
|
||||
```bash
|
||||
New-AzAutomationWebHook -Name <webhook-name> -ResourceGroupName <res-group> -AutomationAccountName <automation-account-name> -RunbookName <runbook-name> -IsEnabled $true
|
||||
```
|
||||
Hierdie opdrag behoort 'n webhook URI te retourneer wat slegs tydens die skepping vertoon word. Dan, om die runbook te bel met behulp van die webhook URI
|
||||
```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
|
||||
curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d" \
|
||||
-H "Content-Length: 0"
|
||||
```
|
||||
@@ -207,14 +192,14 @@ az automation source-control create \
|
||||
```
|
||||
Dit sal outomaties die runbooks van die Github-bewaarplek na die Automatiseringsrekening invoer en met 'n paar ander toestemmings om dit te begin uitvoer, sal dit **moontlik wees om voorregte te verhoog**.
|
||||
|
||||
Boonop, onthou dat vir bronbeheer om in Automatiseringsrekeninge te werk, dit 'n bestuurde identiteit met die rol **`Contributor`** moet hê en as dit 'n gebruikersbestuurde identiteit is, moet die kliënt-id van die MI in die veranderlike **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** gespesifiseer word.
|
||||
Boonop, onthou dat vir bronbeheer om in Automatiseringsrekeninge te werk, dit 'n bestuurde identiteit met die rol **`Contributor`** moet hê, en as dit 'n gebruikersbestuurde identiteit is, moet die kliënt-id van die MI in die veranderlike **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** gespesifiseer word.
|
||||
|
||||
> [!TIP]
|
||||
> Let daarop dat dit nie moontlik is om die repo-URL van 'n bronbeheer te verander sodra dit geskep is nie.
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/variables/write`
|
||||
|
||||
Met die toestemming **`Microsoft.Automation/automationAccounts/variables/write`** is dit moontlik om veranderlikes in die Automatiseringsrekening te skryf met die volgende opdrag.
|
||||
Met die toestemming **`Microsoft.Automation/automationAccounts/variables/write`** is dit moontlik om veranderlikes in die Automatiseringsrekening te skryf met behulp van die volgende opdrag.
|
||||
```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" \
|
||||
@@ -230,16 +215,16 @@ az rest --method PUT \
|
||||
```
|
||||
### Pasgemaakte Runtime Omgewings
|
||||
|
||||
As 'n outomatiseringsrekening 'n pasgemaakte runtime-omgewing gebruik, kan dit moontlik wees om 'n pasgemaakte pakket van die runtime met kwaadwillige kode (soos **'n agterdeur**) te oorskry. Op hierdie manier, wanneer 'n runbook wat daardie pasgemaakte runtime gebruik, uitgevoer word en die pasgemaakte pakket laai, sal die kwaadwillige kode uitgevoer word.
|
||||
As 'n outomatiseringsrekening 'n pasgemaakte runtime-omgewing gebruik, kan dit moontlik wees om 'n pasgemaakte pakket van die runtime met kwaadwillige kode (soos **'n agterdeur**) te oorskryf. Op hierdie manier, wanneer 'n runbook wat daardie pasgemaakte runtime gebruik, uitgevoer word en die pasgemaakte pakket laai, sal die kwaadwillige kode uitgevoer word.
|
||||
|
||||
### Kompromittering van Toestand Konfigurasie
|
||||
### Kompromittering van Staat Konfigurasie
|
||||
|
||||
**Kyk die volledige pos in:** [**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)
|
||||
|
||||
- Stap 1 — Skep Lêers
|
||||
|
||||
**Benodigde Lêers:** Twee PowerShell-skripte is nodig:
|
||||
1. `reverse_shell_config.ps1`: 'n Gewenste Toestand Konfigurasie (DSC) lêer wat die payload aflaai en uitvoer. Dit is verkrygbaar van [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
|
||||
1. `reverse_shell_config.ps1`: 'n Gewenste Staat Konfigurasie (DSC) lêer wat die payload aflaai en uitvoer. Dit is beskikbaar van [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
|
||||
2. `push_reverse_shell_config.ps1`: 'n Skrip om die konfigurasie na die VM te publiseer, beskikbaar by [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
|
||||
|
||||
**Aanpassing:** Veranderlikes en parameters in hierdie lêers moet aangepas word vir die gebruiker se spesifieke omgewing, insluitend hulpbronname, lêerpaaie, en bediener/payload identifiseerders.
|
||||
@@ -252,7 +237,7 @@ Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_she
|
||||
```
|
||||
- Stap 3 — Stel Stoor Konteks in & Laai op
|
||||
|
||||
Die gecomprimeerde konfigurasie-lêer word na 'n vooraf gedefinieerde Azure Storage-container, azure-pentest, opgelaai met behulp van Azure se Set-AzStorageBlobContent cmdlet.
|
||||
Die gecomprimeerde konfigurasie lêer word na 'n vooraf gedefinieerde Azure Stoor houer, azure-pentest, opgelaai met behulp van Azure se Set-AzStorageBlobContent cmdlet.
|
||||
```bash
|
||||
Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user