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