mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 23:15:48 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -10,11 +10,11 @@ Para más información, consulta:
|
||||
../az-services/az-automation-accounts.md
|
||||
{{#endref}}
|
||||
|
||||
### Hybrid Workers
|
||||
### Grupo de Trabajadores Híbridos
|
||||
|
||||
Recuerda que si de alguna manera un atacante puede ejecutar un runbook arbitrario (código arbitrario) en un hybrid worker, él **pivotará a la ubicación de la VM**. Esto podría ser una máquina local, un VPC de otra nube o incluso una VM de Azure.
|
||||
Recuerda que si de alguna manera un atacante puede ejecutar un runbook arbitrario (código arbitrario) en un trabajador híbrido, él **se moverá a la ubicación de la VM**. Esto podría ser una máquina local, un VPC de otra nube o incluso una VM de Azure.
|
||||
|
||||
Además, si el hybrid worker se está ejecutando en Azure con otras Identidades Administradas adjuntas, el runbook podrá acceder a la **identidad administrada del runbook y todas las identidades administradas de la VM desde el servicio de metadatos**.
|
||||
Además, si el trabajador híbrido se está ejecutando en Azure con otras Identidades Administradas adjuntas, el runbook podrá acceder a la **identidad administrada del runbook y todas las identidades administradas de la VM desde el servicio de metadatos**.
|
||||
|
||||
> [!TIP]
|
||||
> Recuerda que el **servicio de metadatos** tiene una URL diferente (**`http://169.254.169.254`**) que el servicio desde donde se obtiene el token de identidades administradas de la cuenta de automatización (**`IDENTITY_ENDPOINT`**).
|
||||
@@ -179,7 +179,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 el siguiente (este usa 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 utiliza Github como ejemplo):
|
||||
```bash
|
||||
az automation source-control create \
|
||||
--resource-group <res-group> \
|
||||
@@ -196,7 +196,7 @@ az automation source-control create \
|
||||
```
|
||||
Esto importará automáticamente los runbooks del repositorio de Github a la Automation Account y con algunos otros permisos para comenzar a ejecutarlos sería **posible escalar privilegios**.
|
||||
|
||||
Además, recuerda que para que el control de versiones funcione en las Automation Accounts, debe tener una identidad administrada con el rol **`Contributor`** y si es una identidad administrada por el usuario, el id del cliente de la MI debe especificarse en la variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
Además, recuerda que para que el control de versiones funcione en las Automation Accounts debe tener una identidad administrada con el rol **`Contributor`** y si es una identidad administrada por el usuario, el id del cliente de la MI debe especificarse en la variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
|
||||
> [!TIP]
|
||||
> Ten en cuenta que no es posible cambiar la URL del repositorio de un control de versiones una vez que se ha creado.
|
||||
|
||||
@@ -14,14 +14,12 @@ Las Cuentas de Automatización de Azure son servicios basados en la nube en Micr
|
||||
- **Conexiones**: Se utilizan para almacenar **información de conexión** a servicios externos. Esto podría contener **información sensible**.
|
||||
- **Acceso a la Red**: Se puede establecer como **público** o **privado**.
|
||||
|
||||
## Runbooks y Trabajos
|
||||
### Runbooks y Trabajos
|
||||
|
||||
Un Runbook en Azure Automation es un **script que realiza tareas automáticamente** dentro de tu entorno en la nube. Los runbooks pueden ser escritos en PowerShell, Python o editores gráficos. Ayudan a automatizar tareas administrativas como la gestión de VM, parches o verificaciones de cumplimiento.
|
||||
|
||||
En el **código** ubicado dentro de **Runbooks** podría contener **información sensible** (como credenciales).
|
||||
|
||||
Ve a `Cuentas de Automatización` --> `<Seleccionar Cuenta de Automatización>` --> `Runbooks/Trabajos/Grupos de trabajadores híbridos/Tareas de observador/credenciales/variables/certificados/conexiones`
|
||||
|
||||
Un **Trabajo es una instancia de ejecución de un Runbook**. Cuando ejecutas un Runbook, se crea un Trabajo para rastrear esa ejecución. Cada trabajo incluye:
|
||||
|
||||
- **Estado**: En cola, En ejecución, Completado, Fallido, Suspendido.
|
||||
@@ -40,13 +38,13 @@ Hay 3 formas principales de ejecutar un Runbook:
|
||||
|
||||
### Control de Versiones
|
||||
|
||||
Permite importar Runbooks desde **Github, Azure Devops (Git) y Azure Devops (TFVC)**. Es posible indicar que publique los Runbooks del repositorio en la cuenta de Automatización de Azure y también es posible indicar que **sincronice los cambios del repositorio** a la cuenta de Automatización de Azure.
|
||||
Permite importar Runbooks desde **Github, Azure Devops (Git) y Azure Devops (TFVC)**. Es posible indicar que publique los Runbooks del repositorio en la cuenta de automatización de Azure y también es posible indicar que **sincronice los cambios del repositorio** a la cuenta de automatización de Azure.
|
||||
|
||||
Cuando la sincronización está habilitada, en el **repositorio de Github se crea un webhook** para activar la sincronización cada vez que ocurre un evento de push. Ejemplo de una URL de webhook: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
|
||||
|
||||
Ten en cuenta que estos webhooks **no serán visibles** al listar webhooks en los runbooks asociados al repositorio de Github. También ten en cuenta que **no es posible cambiar la URL del repositorio** de un control de versiones una vez creado.
|
||||
|
||||
Para que el control de versiones configurado funcione, la **Cuenta de Automatización de Azure** necesita tener una identidad administrada (sistema o usuario) con el rol de **`Contribuyente`**. Además, para asignar una identidad administrada de usuario a la Cuenta de Automatización, es necesario indicar el ID de cliente de la MI de usuario en la variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
Para que el control de versiones configurado funcione, la **Cuenta de Automatización de Azure** necesita tener una identidad administrada (sistema o usuario) con el rol de **`Contributor`**. Además, para asignar una identidad administrada de usuario a la Cuenta de Automatización, es necesario indicar el ID de cliente de la MI de usuario en la variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
|
||||
### Entornos de Ejecución
|
||||
|
||||
@@ -70,7 +68,7 @@ Cuando se crea un grupo de trabajadores híbridos, es necesario indicar las **cr
|
||||
- **Credenciales predeterminadas**: No necesitas proporcionar las credenciales y los runbooks se ejecutarán dentro de las VMs como **Sistema**.
|
||||
- **Credenciales específicas**: Necesitas proporcionar el nombre del objeto de credenciales dentro de la cuenta de automatización, que se utilizará para ejecutar los **runbooks dentro de las VMs**. Por lo tanto, en este caso, podría ser posible **robar credenciales válidas** para las VMs.
|
||||
|
||||
Por lo tanto, si puedes elegir ejecutar un **Runbook** en un **Trabajador Híbrido de Windows**, ejecutarás **comandos arbitrarios** dentro de una máquina externa como **Sistema** (una buena técnica de pivot).
|
||||
Por lo tanto, si puedes elegir ejecutar un **Runbook** en un **Trabajador Híbrido**, ejecutarás **comandos arbitrarios** dentro de una máquina externa como **Sistema** (una buena técnica de pivot).
|
||||
|
||||
Además, si el trabajador híbrido se está ejecutando en Azure con otras Identidades Administradas adjuntas, el runbook podrá acceder a la **identidad administrada del runbook y todas las identidades administradas de la VM desde el servicio de metadatos**.
|
||||
|
||||
@@ -80,9 +78,9 @@ Además, si el trabajador híbrido se está ejecutando en Azure con otras Identi
|
||||
### Configuración de Estado (SC)
|
||||
|
||||
>[!WARNING]
|
||||
> Como se indica en [la documentación](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), la Configuración de Estado de Automatización de Azure será retirada el 30 de septiembre de 2027 y reemplazada por [Azure Machine Configuration](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
|
||||
> Como se indica en [la documentación](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), la Configuración de Estado de Automatización de Azure será retirada el 30 de septiembre de 2027 y reemplazada por [Configuración de Máquina de Azure](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
|
||||
|
||||
Las Cuentas de Automatización también admiten **Configuración de Estado (SC)**, que es una característica que ayuda a **configurar** y **mantener** el **estado** de tus VMs. Es posible **crear** y **aplicar** configuraciones DSC a máquinas **Windows** y **Linux**.
|
||||
Las Cuentas de Automatización también admiten **Configuración de Estado (SC)**, que es una función que ayuda a **configurar** y **mantener** el **estado** de tus VMs. Es posible **crear** y **aplicar** configuraciones DSC a máquinas **Windows** y **Linux**.
|
||||
|
||||
Desde la perspectiva de un atacante, esto era interesante porque permitía **ejecutar código PS arbitrario en todas las VMs configuradas**, permitiendo escalar privilegios a las identidades administradas de estas VMs, potencialmente pivotando a nuevas redes... Además, las configuraciones podrían contener **información sensible**.
|
||||
|
||||
@@ -170,7 +168,7 @@ az rest --method GET \
|
||||
|
||||
# Get the source control setting of an automation account (if any)
|
||||
## inside the output it's possible to see if the autoSync is enabled, if the publishRunbook is enabled and the repo URL
|
||||
aaz automation source-control list --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME>
|
||||
az automation source-control list --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME>
|
||||
|
||||
# Get custom runtime environments
|
||||
## Check in defaultPackages for custom ones, by default Python envs won't have anything here and PS1 envs will have "az" and "azure cli"
|
||||
|
||||
Reference in New Issue
Block a user