mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-27 15:24:32 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -2,27 +2,59 @@
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Osnovne Informacije
|
||||
## Osnovne informacije
|
||||
|
||||
**Dynamic groups** su grupe koje imaju set **pravila** konfigurisanih i svi **korisnici ili uređaji** koji se poklapaju sa pravilima se dodaju u grupu. Svaki put kada se **atribut** korisnika ili uređaja **promeni**, dinamička pravila se **ponovo proveravaju**. A kada se **novo pravilo** **kreira**, svi uređaji i korisnici se **proveravaju**.
|
||||
**Dinamičke grupe** su grupe koje imaju podešen skup **pravila**, i svi **korisnici ili uređaji** koji se poklapaju sa tim pravilima bivaju dodati u grupu. Svaki put kad se **atribut** korisnika ili uređaja **promeni**, dinamička pravila se ponovo **proveravaju**. I kada se **novo pravilo** **kreira**, svi uređaji i korisnici se **provere**.
|
||||
|
||||
Dinamičkim grupama se mogu dodeliti **Azure RBAC uloge**, ali nije **moguće** dodati **AzureAD uloge** dinamičkim grupama.
|
||||
Dinamičkim grupama se mogu dodeliti **Azure RBAC roles**, ali nije **moguće** dodati **AzureAD roles** dinamičkim grupama.
|
||||
|
||||
Ova funkcija zahteva Azure AD premium P1 licencu.
|
||||
|
||||
## Privesc
|
||||
|
||||
Imajte na umu da po defaultu bilo koji korisnik može pozvati goste u Azure AD, tako da, ako dinamička grupa **pravilo** daje **dozvole** korisnicima na osnovu **atributa** koji se mogu **postaviti** kod novog **gosta**, moguće je **kreirati gosta** sa ovim atributima i **escalirati privilegije**. Takođe je moguće da gost upravlja svojim profilom i menja ove atribute.
|
||||
Imajte na umu da po defaultu bilo koji korisnik može pozvati goste u Azure AD, tako da, ako dinamičko grupno **pravilo** dodeljuje **dozvole** korisnicima na osnovu **atributa** koji se mogu **podesiti** kod novog **gosta**, moguće je **kreirati gosta** sa tim atributima i **eskalirati privilegije**. Takođe je moguće da gost upravlja svojim profilom i menja ove atribute.
|
||||
|
||||
Dobijte grupe koje omogućavaju dinamičko članstvo: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
Dobijte grupe koje omogućavaju Dynamic membership: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
|
||||
|
||||
### Enumeracija dinamičkih grupa
|
||||
|
||||
Preuzmite pravila dinamičke grupe:
|
||||
|
||||
With **Azure CLI**:
|
||||
```bash
|
||||
az ad group list \
|
||||
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
|
||||
--query "[].{displayName:displayName, rule:membershipRule}" \
|
||||
-o table
|
||||
```
|
||||
Pomoću **PowerShell** i **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
|
||||
```
|
||||
### Primer
|
||||
|
||||
- **Primer pravila**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
|
||||
- **Opis pravila**: Bilo koji gost korisnik sa sekundarnim emailom koji sadrži string 'security' biće dodat u grupu
|
||||
- **Opis pravila**: Bilo koji gostujući korisnik koji u sekundarnom e-mailu ima tekst 'security' biće dodat u grupu
|
||||
|
||||
Za email gost korisnika, prihvatite pozivnicu i proverite trenutne postavke **tog korisnika** u [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Nažalost, stranica ne dozvoljava modifikaciju vrednosti atributa, tako da moramo koristiti API:
|
||||
Za e-mail gostujućeg korisnika, prihvatite pozivnicu i proverite trenutna podešavanja **tog korisnika** na [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
|
||||
Nažalost, stranica ne dozvoljava izmenu vrednosti atributa, pa moramo koristiti API:
|
||||
```bash
|
||||
# Login with the gust user
|
||||
az login --allow-no-subscriptions
|
||||
@@ -41,7 +73,7 @@ az rest --method GET \
|
||||
--url "https://graph.microsoft.com/v1.0/users/<user-object-id>" \
|
||||
--query "otherMails"
|
||||
```
|
||||
## Reference
|
||||
## Referencije
|
||||
|
||||
- [https://www.mnemonic.io/resources/blog/abusing-dynamic-groups-in-azure-ad-for-privilege-escalation/](https://www.mnemonic.io/resources/blog/abusing-dynamic-groups-in-azure-ad-for-privilege-escalation/)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user