mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -1,28 +1,60 @@
|
||||
# Az - Dynamic Groups Privesc
|
||||
# Az - Gruppi dinamici Privesc
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Informazioni di base
|
||||
|
||||
I **dynamic groups** sono gruppi che hanno un insieme di **regole** configurate e tutti gli **utenti o dispositivi** che corrispondono alle regole vengono aggiunti al gruppo. Ogni volta che un **attributo** di un utente o dispositivo viene **cambiato**, le regole dinamiche vengono **ricontrollate**. E quando una **nuova regola** viene **creata**, tutti i dispositivi e gli utenti vengono **controllati**.
|
||||
**I gruppi dinamici** sono gruppi a cui è configurato un insieme di **regole** e tutti gli **utenti o dispositivi** che corrispondono alle regole vengono aggiunti al gruppo. Ogni volta che un **attributo** di un utente o dispositivo viene **modificato**, le regole dinamiche vengono **ricontrollate**. E quando viene **creata una nuova regola**, tutti i dispositivi e gli utenti vengono **verificati**.
|
||||
|
||||
I gruppi dinamici possono avere **ruoli Azure RBAC assegnati** a loro, ma **non è possibile** aggiungere **ruoli AzureAD** ai gruppi dinamici.
|
||||
I gruppi dinamici possono avere **Azure RBAC roles assigned** a loro, ma non è **possibile** aggiungere **AzureAD roles** ai gruppi dinamici.
|
||||
|
||||
Questa funzionalità richiede una licenza Azure AD premium P1.
|
||||
Questa funzionalità richiede una licenza Azure AD Premium P1.
|
||||
|
||||
## Privesc
|
||||
|
||||
Nota che per impostazione predefinita qualsiasi utente può invitare ospiti in Azure AD, quindi, se una **regola** di un gruppo dinamico concede **permessi** agli utenti in base agli **attributi** che possono essere **impostati** in un nuovo **ospite**, è possibile **creare un ospite** con questi attributi e **escalare i privilegi**. È anche possibile per un ospite gestire il proprio profilo e cambiare questi attributi.
|
||||
Nota che per impostazione predefinita qualsiasi utente può invitare guest in Azure AD, quindi, se una **regola** di un gruppo dinamico concede **permessi** agli utenti basandosi su **attributi** che possono essere **impostati** in un nuovo **guest**, è possibile **creare un guest** con questi attributi e **escalare i privilegi**. È anche possibile che un guest gestisca il proprio profilo e modifichi questi attributi.
|
||||
|
||||
Ottieni gruppi che consentono l'appartenenza dinamica: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
Ottieni i gruppi che permettono la membership dinamica: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
|
||||
### Enumerazione Gruppi Dinamici
|
||||
|
||||
Ottieni le regole di un gruppo dinamico:
|
||||
|
||||
Con **Azure CLI**:
|
||||
```bash
|
||||
az ad group list \
|
||||
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
|
||||
--query "[].{displayName:displayName, rule:membershipRule}" \
|
||||
-o table
|
||||
```
|
||||
Con **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
|
||||
```
|
||||
### Esempio
|
||||
|
||||
- **Esempio di regola**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
|
||||
- **Descrizione della regola**: Qualsiasi utente ospite con un'email secondaria contenente la stringa 'security' verrà aggiunto al gruppo
|
||||
- **Descrizione della regola**: Qualsiasi utente Guest con un'email secondaria con la stringa 'security' verrà aggiunto al gruppo
|
||||
|
||||
Per l'email dell'utente ospite, accetta l'invito e controlla le impostazioni attuali di **quell'utente** in [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Sfortunatamente, la pagina non consente di modificare i valori degli attributi, quindi dobbiamo utilizzare l'API:
|
||||
Per l'email dell'utente Guest, accetta l'invito e verifica le impostazioni correnti di **quel utente** in [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Sfortunatamente la pagina non permette di modificare i valori degli attributi, quindi dobbiamo usare l'API:
|
||||
```bash
|
||||
# Login with the gust user
|
||||
az login --allow-no-subscriptions
|
||||
|
||||
Reference in New Issue
Block a user