diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md index 86633cc85..24a87022f 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md @@ -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 \ --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 \ @@ -69,7 +69,7 @@ Die toestemming **`Microsoft.Automation/automationAccounts/jobs/output/read`** l az rest --method GET \ --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Automation/automationAccounts//jobs//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 --resource-group --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 -ResourceGroupName -AutomationAccountName -RunbookName -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//resourceGroups//providers/Microsoft.Automation/automationAccounts//webhooks/?api-version=2018-06-30" \ ---body '{ -"name": "", -"properties": { -"isEnabled": true, -"expiryTime": "2026-01-09T20:03:30.291Z", -"parameters": {}, -"runOn": null, -"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//resourceGroups//providers/Microsoft.Automation/automationAccounts//variables/?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 ```