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 b1fb99911..77bc75dd9 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 @@ -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 \ @@ -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. diff --git a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md index d56943616..0b14038f5 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md +++ b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md @@ -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` --> `` --> `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 --resource-group +az automation source-control list --automation-account-name --resource-group # 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"