mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 05:33:10 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -1,27 +1,59 @@
|
||||
# Az - Dynamische Gruppen Privesc
|
||||
# Az - Dynamic Groups Privesc
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Grundinformationen
|
||||
## Basic Information
|
||||
|
||||
**Dynamische Gruppen** sind Gruppen, die eine Reihe von **Regeln** konfiguriert haben, und alle **Benutzer oder Geräte**, die den Regeln entsprechen, werden der Gruppe hinzugefügt. Jedes Mal, wenn ein **Attribut** eines Benutzers oder Geräts **geändert** wird, werden die dynamischen Regeln **erneut überprüft**. Und wenn eine **neue Regel** **erstellt** wird, werden alle Geräte und Benutzer **überprüft**.
|
||||
**Dynamische Gruppen** sind Gruppen, die eine Menge von **Regeln** konfiguriert haben und alle **Benutzer oder Geräte**, die den Regeln entsprechen, werden der Gruppe hinzugefügt. Jedes Mal, wenn ein Benutzer- oder Geräte-**Attribut** **geändert** wird, werden die dynamischen Regeln **neu überprüft**. Und wenn eine **neue Regel** **erstellt** wird, werden alle Geräte und Benutzer **überprüft**.
|
||||
|
||||
Dynamische Gruppen können **Azure RBAC-Rollen** zugewiesen werden, aber es ist **nicht möglich**, **AzureAD-Rollen** zu dynamischen Gruppen hinzuzufügen.
|
||||
Dynamische Gruppen können **Azure RBAC roles assigned** haben, aber es ist **nicht möglich**, **AzureAD roles** zu dynamischen Gruppen hinzuzufügen.
|
||||
|
||||
Diese Funktion erfordert eine Azure AD Premium P1-Lizenz.
|
||||
Diese Funktion erfordert eine Azure AD premium P1 license.
|
||||
|
||||
## Privesc
|
||||
|
||||
Beachten Sie, dass standardmäßig jeder Benutzer Gäste in Azure AD einladen kann. Wenn also eine dynamische Gruppen-**regel** **Berechtigungen** für Benutzer basierend auf **Attributen** gewährt, die in einem neuen **Gast** **festgelegt** werden können, ist es möglich, einen Gast mit diesen Attributen zu **erstellen** und die **Berechtigungen zu eskalieren**. Es ist auch möglich, dass ein Gast sein eigenes Profil verwaltet und diese Attribute ändert.
|
||||
Beachte, dass standardmäßig jeder Benutzer Gäste in Azure AD einladen kann. Wenn also eine dynamische Gruppen-**Regel** **Berechtigungen** für Benutzer basierend auf **Attributen** vergibt, die in einem neuen **Gast** **gesetzt** werden können, ist es möglich, **einen Gast zu erstellen** mit diesen Attributen und **Privilegien zu eskalieren**. Ein Gast kann außerdem sein eigenes Profil verwalten und diese Attribute ändern.
|
||||
|
||||
Holen Sie sich Gruppen, die dynamische Mitgliedschaften erlauben: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
Gruppen abrufen, die dynamische Mitgliedschaft erlauben: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
|
||||
### Dynamic Groups Enumeration
|
||||
|
||||
Regeln einer dynamischen Gruppe abrufen:
|
||||
|
||||
Mit **Azure CLI**:
|
||||
```bash
|
||||
az ad group list \
|
||||
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
|
||||
--query "[].{displayName:displayName, rule:membershipRule}" \
|
||||
-o table
|
||||
```
|
||||
Mit **PowerShell** und **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
|
||||
```
|
||||
### Beispiel
|
||||
|
||||
- **Regelbeispiel**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
|
||||
- **Regelbeschreibung**: Jeder Gastbenutzer mit einer sekundären E-Mail, die den String 'security' enthält, wird der Gruppe hinzugefügt.
|
||||
- **Regelbeschreibung**: Jeder Gastbenutzer mit einer sekundären E-Mail, die die Zeichenfolge 'security' enthält, wird der Gruppe hinzugefügt
|
||||
|
||||
Für die E-Mail des Gastbenutzers, akzeptieren Sie die Einladung und überprüfen Sie die aktuellen Einstellungen **dieses Benutzers** in [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Für die E-Mail des Gastbenutzers, akzeptiere die Einladung und überprüfe die aktuellen Einstellungen **dieses Benutzers** in [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Leider erlaubt die Seite nicht, die Attributwerte zu ändern, daher müssen wir die API verwenden:
|
||||
```bash
|
||||
# Login with the gust user
|
||||
|
||||
Reference in New Issue
Block a user