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

This commit is contained in:
Translator
2025-11-19 17:18:12 +00:00
parent 0a50460481
commit c2b779d5da

View File

@@ -4,25 +4,57 @@
## Informações Básicas
**Dynamic groups** são grupos que têm um conjunto de **regras** configuradas e todos os **usuários ou dispositivos** que correspondem às regras são adicionados ao grupo. Sempre que um **atributo** de usuário ou dispositivo é **alterado**, as regras dinâmicas são **reverificadas**. E quando uma **nova regra** é **criada**, todos os dispositivos e usuários são **verificados**.
**Dynamic groups** são grupos que têm um conjunto de **regras** configuradas e todos os **usuários ou dispositivos** que correspondem às regras são adicionados ao grupo. Toda vez que um **atributo** de um usuário ou dispositivo é **alterado**, as regras dinâmicas são **rechecadas**. E quando uma **nova regra** é **criada**, todos os dispositivos e usuários são **verificados**.
Dynamic groups podem ter **Azure RBAC roles** atribuídos a eles, mas **não é possível** adicionar **AzureAD roles** a grupos dinâmicos.
Dynamic groups podem ter **Azure RBAC roles assigned** a eles, mas **não é possível** adicionar **AzureAD roles** a dynamic groups.
Esse recurso requer licença Azure AD premium P1.
## Privesc
Observe que, por padrão, qualquer usuário pode convidar convidados no Azure AD, então, se uma **regra** de grupo dinâmico concede **permissões** a usuários com base em **atributos** que podem ser **definidos** em um novo **convidado**, é possível **criar um convidado** com esses atributos e **escalar privilégios**. Também é possível para um convidado gerenciar seu próprio perfil e alterar esses atributos.
Note que por padrão qualquer usuário pode convidar **convidados** no Azure AD, então, se uma **regra** de dynamic group concede **permissões** a usuários com base em **atributos** que podem ser **definidos** em um novo **convidado**, é possível **criar um convidado** com esses atributos e **escalar privilégios**. Também é possível que um convidado gerencie seu próprio perfil e altere esses atributos.
Obtenha grupos que permitem associação dinâmica: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
Get groups that allow Dynamic membership: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
### Dynamic Groups Enumeration
Get the rules of a dynamic group:
With **Azure CLI**:
```bash
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
```
Com **PowerShell** e **Microsoft Graph SDK**:
```bash
Install-Module Microsoft.Graph -Scope CurrentUser -Force
Import-Module Microsoft.Graph
Connect-MgGraph -Scopes "Group.Read.All"
Get-MgGroup -Filter "groupTypes/any(c:c eq 'DynamicMembership')" `
-Property Id, DisplayName, GroupTypes
# Get the rules of a specific group
$g = Get-MgGroup -Filter "displayName eq '<GROUP NAME>'" `
-Property DisplayName, GroupTypes, MembershipRule, MembershipRuleProcessingState
$g | Select-Object DisplayName, GroupTypes, MembershipRule
# Get the rules of all dynamic groups
Get-MgGroup -Filter "groupTypes/any(c:c eq 'DynamicMembership')" `
-Property DisplayName, MembershipRule |
Select-Object DisplayName, MembershipRule
```
### Exemplo
- **Exemplo de regra**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
- **Descrição da regra**: Qualquer usuário convidado com um e-mail secundário contendo a string 'security' será adicionado ao grupo
Para o e-mail do usuário convidado, aceite o convite e verifique as configurações atuais de **aquele usuário** em [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
Infelizmente, a página não permite modificar os valores dos atributos, então precisamos usar a API:
Para o e-mail do usuário convidado, aceite o convite e verifique as configurações atuais de **esse usuário** em [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
Infelizmente a página não permite modificar os valores dos atributos, então precisamos usar a API:
```bash
# Login with the gust user
az login --allow-no-subscriptions