mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
+41
-9
@@ -4,25 +4,57 @@
|
||||
|
||||
## Informations de base
|
||||
|
||||
Les **dynamic groups** sont des groupes qui ont un ensemble de **règles** configurées et tous les **utilisateurs ou appareils** qui correspondent aux règles sont ajoutés au groupe. Chaque fois qu'un **attribut** d'utilisateur ou d'appareil est **modifié**, les règles dynamiques sont **vérifiées à nouveau**. Et lorsqu'une **nouvelle règle** est **créée**, tous les appareils et utilisateurs sont **vérifiés**.
|
||||
**Dynamic groups** sont des groupes qui ont un ensemble de **règles** configurées et tous les **utilisateurs ou appareils** qui correspondent aux règles sont ajoutés au groupe. À chaque fois qu'un **attribut** d'un utilisateur ou d'un appareil est **modifié**, les règles dynamiques sont **réévaluées**. Et lorsqu'une **nouvelle règle** est **créée**, tous les appareils et utilisateurs sont **vérifiés**.
|
||||
|
||||
Les groupes dynamiques peuvent avoir des **rôles Azure RBAC assignés** à eux, mais il est **impossible** d'ajouter des **rôles AzureAD** aux groupes dynamiques.
|
||||
**Dynamic groups** peuvent se voir attribuer des **Azure RBAC roles assigned**, mais il **n'est pas possible** d'ajouter des **AzureAD roles** aux Dynamic groups.
|
||||
|
||||
Cette fonctionnalité nécessite une licence Azure AD premium P1.
|
||||
Cette fonctionnalité nécessite une licence Azure AD Premium P1.
|
||||
|
||||
## Privesc
|
||||
|
||||
Notez qu'en default, tout utilisateur peut inviter des invités dans Azure AD, donc, si une **règle** de groupe dynamique donne des **permissions** aux utilisateurs en fonction des **attributs** qui peuvent être **définis** dans un nouvel **invité**, il est possible de **créer un invité** avec ces attributs et **escalader les privilèges**. Il est également possible pour un invité de gérer son propre profil et de modifier ces attributs.
|
||||
Notez que par défaut tout utilisateur peut inviter des guests dans Azure AD. Donc, si une **règle** d'un Dynamic group donne des **permissions** à des utilisateurs basées sur des **attributs** qui peuvent être **définis** sur un nouveau **guest**, il est possible de **créer un guest** avec ces attributs et d'**escalader les privilèges**. Un **guest** peut aussi gérer son propre profil et modifier ces attributs.
|
||||
|
||||
Obtenez les groupes qui permettent l'adhésion dynamique : **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
Récupérer les groupes qui autorisent Dynamic membership : **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
|
||||
### Énumération des Dynamic Groups
|
||||
|
||||
Obtenir les règles d'un Dynamic group :
|
||||
|
||||
Avec **Azure CLI** :
|
||||
```bash
|
||||
az ad group list \
|
||||
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
|
||||
--query "[].{displayName:displayName, rule:membershipRule}" \
|
||||
-o table
|
||||
```
|
||||
Avec **PowerShell** et **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
|
||||
```
|
||||
### Exemple
|
||||
|
||||
- **Exemple de règle** : `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
|
||||
- **Description de la règle** : Tout utilisateur invité avec un email secondaire contenant la chaîne 'security' sera ajouté au groupe
|
||||
- **Exemple de règle**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
|
||||
- **Description de la règle**: Tout utilisateur Guest avec un e-mail secondaire contenant la chaîne 'security' sera ajouté au groupe
|
||||
|
||||
Pour l'email de l'utilisateur invité, acceptez l'invitation et vérifiez les paramètres actuels de **cet utilisateur** dans [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Malheureusement, la page ne permet pas de modifier les valeurs des attributs, donc nous devons utiliser l'API :
|
||||
Pour l'e-mail de l'utilisateur Guest, acceptez l'invitation et vérifiez les paramètres actuels de **cet utilisateur** dans [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Malheureusement, la page n'autorise pas la modification des valeurs des attributs, nous devons donc utiliser l'API:
|
||||
```bash
|
||||
# Login with the gust user
|
||||
az login --allow-no-subscriptions
|
||||
|
||||
Reference in New Issue
Block a user