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-basic-information/RE
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
|
||||
### Suscripciones de Azure
|
||||
|
||||
- Es otro **contenedor lógico donde se pueden ejecutar y facturar recursos** (VMs, DBs…).
|
||||
- Es otro **contenedor lógico donde se pueden ejecutar recursos** (VMs, DBs…) y se facturará.
|
||||
- Su **padre** es siempre un **grupo de gestión** (y puede ser el grupo de gestión raíz) ya que las suscripciones no pueden contener otras suscripciones.
|
||||
- **Confía en un solo directorio de Entra ID**
|
||||
- **Los permisos** aplicados a nivel de suscripción (o cualquiera de sus padres) son **heredados** a todos los recursos dentro de la suscripción.
|
||||
@@ -94,7 +94,7 @@ Puedes consultarlos en [https://learn.microsoft.com/en-us/entra/fundamentals/use
|
||||
|
||||
- **Miembros (**[**docs**](https://learn.microsoft.com/en-gb/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions)**)**
|
||||
- Registrar Aplicaciones: Predeterminado **Sí**
|
||||
- Restringir a usuarios no administradores de crear inquilinos: Predeterminado **No**
|
||||
- Restringir a los usuarios no administradores de crear inquilinos: Predeterminado **No**
|
||||
- Crear grupos de seguridad: Predeterminado **Sí**
|
||||
- Restringir el acceso al portal de administración de Microsoft Entra: Predeterminado **No**
|
||||
- Esto no restringe el acceso a la API del portal (solo web)
|
||||
@@ -105,7 +105,7 @@ Puedes consultarlos en [https://learn.microsoft.com/en-us/entra/fundamentals/use
|
||||
- **Invitados**
|
||||
- Opciones de **restricciones de acceso para usuarios invitados**:
|
||||
- **Los usuarios invitados tienen el mismo acceso que los miembros**.
|
||||
- **Los usuarios invitados tienen acceso limitado a propiedades y membresías de objetos de directorio (predeterminado)**. Esto restringe el acceso de los invitados solo a su propio perfil de usuario por defecto. El acceso a información de otros usuarios y grupos ya no está permitido.
|
||||
- **Los usuarios invitados tienen acceso limitado a propiedades y membresías de objetos de directorio (predeterminado)**. Esto restringe el acceso de invitados solo a su propio perfil de usuario por defecto. El acceso a información de otros usuarios y grupos ya no está permitido.
|
||||
- **El acceso de los usuarios invitados está restringido a propiedades y membresías de sus propios objetos de directorio** es la más restrictiva.
|
||||
- Opciones de **invitación de invitados**:
|
||||
- **Cualquiera en la organización puede invitar a usuarios invitados, incluidos invitados y no administradores (más inclusivo) - Predeterminado**
|
||||
@@ -170,13 +170,13 @@ Una **Registración de Aplicación** es una configuración que permite a una apl
|
||||
- profile - ver el perfil básico del usuario
|
||||
- email - ver la dirección de correo electrónico del usuario
|
||||
- **Permitir el consentimiento del usuario para aplicaciones (Predeterminado)**
|
||||
- Todos los usuarios pueden consentir que cualquier aplicación acceda a los datos de la organización.
|
||||
- Todos los usuarios pueden consentir cualquier aplicación para acceder a los datos de la organización.
|
||||
|
||||
**Solicitudes de consentimiento de administrador**: Predeterminado **No**
|
||||
|
||||
- Los usuarios pueden solicitar consentimiento de administrador para aplicaciones a las que no pueden consentir
|
||||
- Si **Sí**: Es posible indicar Usuarios, Grupos y Roles que pueden consentir solicitudes
|
||||
- Configurar también si los usuarios recibirán notificaciones por correo electrónico y recordatorios de expiración
|
||||
- Configura también si los usuarios recibirán notificaciones por correo electrónico y recordatorios de expiración
|
||||
|
||||
### **Identidad Administrada (Metadatos)**
|
||||
|
||||
@@ -184,8 +184,8 @@ Las identidades administradas en Azure Active Directory ofrecen una solución pa
|
||||
|
||||
Hay dos tipos de identidades administradas:
|
||||
|
||||
- **Asignadas por el sistema**. Algunos servicios de Azure permiten **habilitar una identidad administrada directamente en una instancia de servicio**. Cuando habilitas una identidad administrada asignada por el sistema, se crea un **principal de servicio** en el inquilino de Entra ID confiado por la suscripción donde se encuentra el recurso. Cuando se **elimina el recurso**, Azure automáticamente **elimina** la **identidad** por ti.
|
||||
- **Asignadas por el usuario**. También es posible que los usuarios generen identidades administradas. Estas se crean dentro de un grupo de recursos dentro de una suscripción y se creará un principal de servicio en el EntraID confiado por la suscripción. Luego, puedes asignar la identidad administrada a una o **más instancias** de un servicio de Azure (múltiples recursos). Para las identidades administradas asignadas por el usuario, la **identidad se gestiona por separado de los recursos que la utilizan**.
|
||||
- **Asignada por el sistema**. Algunos servicios de Azure te permiten **habilitar una identidad administrada directamente en una instancia de servicio**. Cuando habilitas una identidad administrada asignada por el sistema, se crea un **principal de servicio** en el inquilino de Entra ID confiado por la suscripción donde se encuentra el recurso. Cuando se **elimina el recurso**, Azure automáticamente **elimina** la **identidad** por ti.
|
||||
- **Asignada por el usuario**. También es posible que los usuarios generen identidades administradas. Estas se crean dentro de un grupo de recursos dentro de una suscripción y se creará un principal de servicio en el EntraID confiado por la suscripción. Luego, puedes asignar la identidad administrada a una o **más instancias** de un servicio de Azure (múltiples recursos). Para las identidades administradas asignadas por el usuario, la **identidad se gestiona por separado de los recursos que la utilizan**.
|
||||
|
||||
Las Identidades Administradas **no generan credenciales eternas** (como contraseñas o certificados) para acceder como el principal de servicio adjunto a ella.
|
||||
|
||||
@@ -212,34 +212,28 @@ Ejemplo:
|
||||
- Otorgar el rol de "Administrador de Usuarios" al personal de TI regional, limitado a la AU de su región.
|
||||
- Resultado: Los administradores de TI regionales pueden gestionar cuentas de usuario dentro de su región sin afectar a otras regiones.
|
||||
|
||||
### Roles de Entra ID
|
||||
### Roles y Permisos de Entra ID
|
||||
|
||||
- Para gestionar Entra ID hay algunos **roles integrados** que pueden ser asignados a principales de Entra ID para gestionar Entra ID
|
||||
- Consulta los roles en [https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference)
|
||||
- Los roles marcados como **`PRIVILEGIADOS`** por EntraID deben ser asignados con precaución porque, como explica Microsoft [en la documentación](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference): Las asignaciones de roles privilegiados pueden llevar a una elevación de privilegios si no se utilizan de manera segura y con intención.
|
||||
- El rol más privilegiado es **Administrador Global**
|
||||
- En la descripción del rol es posible ver sus **permisos granulares**
|
||||
- Los roles agrupan **permisos granulares** y se pueden encontrar en sus descripciones.
|
||||
- Es posible **crear roles personalizados** con los permisos deseados. Aunque por alguna razón no todos los permisos granulares están disponibles para que los administradores creen roles personalizados.
|
||||
- Los roles en Entra ID son completamente **independientes** de los roles en Azure. La única relación es que los principales con el rol **Administrador Global** en Entra ID pueden elevarse al rol de **Administrador de Acceso de Usuario** en Azure.
|
||||
- **No es posible usar comodines** en los roles de Entra ID.
|
||||
|
||||
## Roles y Permisos
|
||||
## Roles y Permisos de Azure
|
||||
|
||||
**Roles** son **asignados** a **principales** en un **alcance**: `principal -[TIENE ROL]->(alcance)`
|
||||
|
||||
**Roles** asignados a **grupos** son **heredados** por todos los **miembros** del grupo.
|
||||
|
||||
Dependiendo del alcance al que se asignó el rol, el **rol** podría ser **heredado** a **otros recursos** dentro del contenedor de alcance. Por ejemplo, si un usuario A tiene un **rol en la suscripción**, tendrá ese **rol en todos los grupos de recursos** dentro de la suscripción y en **todos los recursos** dentro del grupo de recursos.
|
||||
|
||||
### Roles Clásicos
|
||||
|
||||
| **Propietario** | <ul><li>Acceso total a todos los recursos</li><li>Puede gestionar el acceso para otros usuarios</li></ul> | Todos los tipos de recursos |
|
||||
| ----------------------------- | ---------------------------------------------------------------------------------------- | ------------------ |
|
||||
| **Colaborador** | <ul><li>Acceso total a todos los recursos</li><li>No puede gestionar el acceso</li></ul> | Todos los tipos de recursos |
|
||||
| **Lector** | • Ver todos los recursos | Todos los tipos de recursos |
|
||||
| **Administrador de Acceso de Usuario** | <ul><li>Ver todos los recursos</li><li>Puede gestionar el acceso para otros usuarios</li></ul> | Todos los tipos de recursos |
|
||||
- **Los roles** son **asignados** a **principales** en un **alcance**: `principal -[TIENE ROL]->(alcance)`
|
||||
- **Los roles** asignados a **grupos** son **heredados** por todos los **miembros** del grupo.
|
||||
- Dependiendo del alcance al que se asignó el rol, el **rol** podría ser **heredado** a **otros recursos** dentro del contenedor de alcance. Por ejemplo, si un usuario A tiene un **rol en la suscripción**, tendrá ese **rol en todos los grupos de recursos** dentro de la suscripción y en **todos los recursos** dentro del grupo de recursos.
|
||||
|
||||
### Roles Integrados
|
||||
|
||||
[De la documentación: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[El control de acceso basado en roles de Azure (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) tiene varios **roles integrados de Azure** que puedes **asignar** a **usuarios, grupos, principales de servicio e identidades administradas**. Las asignaciones de roles son la forma en que controlas **el acceso a los recursos de Azure**. Si los roles integrados no satisfacen las necesidades específicas de tu organización, puedes crear tus propios [**roles personalizados de Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**.**
|
||||
[De la documentación: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[El control de acceso basado en roles de Azure (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) tiene varios **roles integrados de Azure** que puedes **asignar** a **usuarios, grupos, principales de servicio y identidades administradas**. Las asignaciones de roles son la forma en que controlas **el acceso a los recursos de Azure**. Si los roles integrados no satisfacen las necesidades específicas de tu organización, puedes crear tus propios [**roles personalizados de Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles).
|
||||
|
||||
Los roles **integrados** se aplican solo a los **recursos** para los que están **destinados**, por ejemplo, consulta estos 2 ejemplos de **roles integrados sobre recursos de Cómputo**:
|
||||
**Los roles integrados** se aplican solo a los **recursos** para los que están **destinados**, por ejemplo, consulta estos 2 ejemplos de **roles integrados sobre recursos de Cómputo**:
|
||||
|
||||
| [Lector de Copia de Seguridad de Disco](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Proporciona permiso al cofre de copia de seguridad para realizar copias de seguridad de disco. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ |
|
||||
@@ -264,7 +258,7 @@ Estos roles también pueden **ser asignados sobre contenedores lógicos** (como
|
||||
- `notActions` y `notDataActions` se utilizan para excluir permisos específicos del rol. Sin embargo, **no los niegan**, si un rol diferente los otorga, el principal los tendrá.
|
||||
- `assignableScopes` es un array de alcances donde se puede asignar el rol (como grupos de gestión, suscripciones o grupos de recursos).
|
||||
|
||||
Ejemplo de permisos JSON para un rol personalizado:
|
||||
Ejemplo de JSON de permisos para un rol personalizado:
|
||||
```json
|
||||
{
|
||||
"properties": {
|
||||
@@ -336,9 +330,9 @@ Las Políticas de Azure son **proactivas**: pueden detener la creación o modifi
|
||||
**Algunos ejemplos:**
|
||||
|
||||
1. **Asegurar el Cumplimiento con Regiones Específicas de Azure**: Esta política asegura que todos los recursos se desplieguen en regiones específicas de Azure. Por ejemplo, una empresa podría querer asegurarse de que todos sus datos se almacenen en Europa para cumplir con el GDPR.
|
||||
2. **Hacer Cumplir Normas de Nomenclatura**: Las políticas pueden hacer cumplir convenciones de nomenclatura para los recursos de Azure. Esto ayuda a organizar e identificar fácilmente los recursos según sus nombres, lo cual es útil en entornos grandes.
|
||||
2. **Hacer Cumplir Estándares de Nomenclatura**: Las políticas pueden hacer cumplir convenciones de nomenclatura para los recursos de Azure. Esto ayuda a organizar e identificar fácilmente los recursos según sus nombres, lo cual es útil en entornos grandes.
|
||||
3. **Restringir Ciertos Tipos de Recursos**: Esta política puede restringir la creación de ciertos tipos de recursos. Por ejemplo, se podría establecer una política para prevenir la creación de tipos de recursos costosos, como ciertos tamaños de VM, para controlar costos.
|
||||
4. **Hacer Cumplir Políticas de Etiquetado**: Las etiquetas son pares clave-valor asociados con los recursos de Azure utilizados para la gestión de recursos. Las políticas pueden hacer cumplir que ciertas etiquetas deben estar presentes, o tener valores específicos, para todos los recursos. Esto es útil para el seguimiento de costos, propiedad o categorización de recursos.
|
||||
4. **Hacer Cumplir Políticas de Etiquetado**: Las etiquetas son pares clave-valor asociados con recursos de Azure utilizados para la gestión de recursos. Las políticas pueden hacer cumplir que ciertas etiquetas deben estar presentes, o tener valores específicos, para todos los recursos. Esto es útil para el seguimiento de costos, propiedad o categorización de recursos.
|
||||
5. **Limitar el Acceso Público a Recursos**: Las políticas pueden hacer cumplir que ciertos recursos, como cuentas de almacenamiento o bases de datos, no tengan puntos finales públicos, asegurando que solo sean accesibles dentro de la red de la organización.
|
||||
6. **Aplicar Automáticamente Configuraciones de Seguridad**: Las políticas pueden usarse para aplicar automáticamente configuraciones de seguridad a los recursos, como aplicar un grupo de seguridad de red específico a todas las VM o asegurarse de que todas las cuentas de almacenamiento utilicen cifrado.
|
||||
|
||||
|
||||
@@ -184,11 +184,11 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
Cuando inicias sesión a través de CLI en Azure con cualquier programa, estás utilizando una Aplicación de Azure de un inquilino que pertenece a Microsoft. Estas Aplicaciones, como las que puedes crear en tu cuenta, tienen un id de cliente. No podrás ver todas ellas en las listas de aplicaciones permitidas que puedes ver en la consola, pero están permitidas por defecto.
|
||||
Cuando **inicias sesión** a través de **CLI** en Azure con cualquier programa, estás utilizando una **Aplicación de Azure** de un **inquilino** que pertenece a **Microsoft**. Estas Aplicaciones, como las que puedes crear en tu cuenta, **tienen un id de cliente**. **No podrás ver todas ellas** en las **listas de aplicaciones permitidas** que puedes ver en la consola, **pero están permitidas por defecto**.
|
||||
|
||||
Por ejemplo, un script de powershell que autentica utiliza una aplicación con el id de cliente `1950a258-227b-4e31-a9cf-717495945fc2`. Incluso si la aplicación no aparece en la consola, un sysadmin podría bloquear esa aplicación para que los usuarios no puedan acceder utilizando herramientas que se conectan a través de esa App.
|
||||
Por ejemplo, un **script de powershell** que **autentica** utiliza una aplicación con el id de cliente **`1950a258-227b-4e31-a9cf-717495945fc2`**. Incluso si la aplicación no aparece en la consola, un sysadmin podría **bloquear esa aplicación** para que los usuarios no puedan acceder utilizando herramientas que se conectan a través de esa App.
|
||||
|
||||
Sin embargo, hay otros ids de cliente de aplicaciones que te permitirán conectarte a Azure:
|
||||
Sin embargo, hay **otros ids de cliente** de aplicaciones que **te permitirán conectarte a Azure**:
|
||||
```bash
|
||||
# The important part is the ClientId, which identifies the application to login inside Azure
|
||||
|
||||
@@ -735,6 +735,13 @@ az ad app owner list --id <id> --query "[].[displayName]" -o table
|
||||
az ad app list --show-mine
|
||||
# Get apps with generated secret or certificate
|
||||
az ad app list --query '[?length(keyCredentials) > `0` || length(passwordCredentials) > `0`].[displayName, appId, keyCredentials, passwordCredentials]' -o json
|
||||
# Get Global Administrators (full access over apps)
|
||||
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1b2256f9-46c1-4fc2-a125-5b2f51bb43b7/members"
|
||||
# Get Application Administrators (full access over apps)
|
||||
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1e92c3b7-2363-4826-93a6-7f7a5b53e7f9/members"
|
||||
# Get Cloud Applications Administrators (full access over apps)
|
||||
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/0d601d27-7b9c-476f-8134-8e7cd6744f02/members"
|
||||
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
@@ -894,7 +901,7 @@ Get-AzDenyAssignment -Scope '/subscriptions/96231a05-34ce-4eb4-aa6a-70759cbb5e83
|
||||
{{#tab name="Raw" }}
|
||||
|
||||
```bash
|
||||
# Obtener permisos sobre un recurso usando ARM directamente
|
||||
# Obtener permisos sobre un recurso utilizando ARM directamente
|
||||
$Token = (Get-AzAccessToken).Token
|
||||
$URI = 'https://management.azure.com/subscriptions/b413826f-108d-4049-8c11-d52d5d388768/resourceGroups/Research/providers/Microsoft.Compute/virtualMachines/infradminsrv/providers/Microsoft.Authorization/permissions?api-version=2015-07-01'
|
||||
$RequestParams = @{
|
||||
@@ -1059,11 +1066,11 @@ For more information about administrative units check:
|
||||
```bash
|
||||
# Listar todas las unidades administrativas
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits"
|
||||
# Obtener información de la AU
|
||||
# Obtener información de AU
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53"
|
||||
# Obtener miembros
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/members"
|
||||
# Obtener principios con roles sobre la AU
|
||||
# Obtener principales con roles sobre la AU
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/scopedRoleMembers"
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user