Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-05-09 12:44:09 +00:00
parent fa02cebce5
commit c2be3b6a51
2 changed files with 9 additions and 9 deletions

View File

@@ -65,7 +65,7 @@ Befolgen Sie die Beschreibung im Abschnitt *Abusing Terraform State Files* der *
### `s3:PutBucketPolicy`
Ein Angreifer, der **aus demselben Konto** stammen muss, andernfalls wird der Fehler `Die angegebene Methode ist nicht erlaubt` ausgelöst, kann mit dieser Berechtigung sich selbst mehr Berechtigungen über den Bucket(s) gewähren, die es ihm ermöglichen, Buckets zu lesen, zu schreiben, zu ändern, zu löschen und offenzulegen.
Ein Angreifer, der **aus demselben Konto** stammen muss, da sonst der Fehler `Die angegebene Methode ist nicht erlaubt` ausgelöst wird, kann mit dieser Berechtigung sich selbst mehr Berechtigungen über die Bucket(s) gewähren, die es ihm ermöglichen, Buckets zu lesen, zu schreiben, zu ändern, zu löschen und offenzulegen.
```bash
# Update Bucket policy
aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-name>
@@ -151,7 +151,7 @@ aws s3api put-bucket-acl --bucket <bucket-name> --access-control-policy file://a
```
### `s3:GetObjectAcl`, `s3:PutObjectAcl`
Ein Angreifer könnte diese Berechtigungen missbrauchen, um sich mehr Zugriff auf bestimmte Objekte innerhalb von Buckets zu gewähren.
Ein Angreifer könnte diese Berechtigungen missbrauchen, um ihm mehr Zugriff auf bestimmte Objekte innerhalb von Buckets zu gewähren.
```bash
# Update bucket object ACL
aws s3api get-object-acl --bucket <bucekt-name> --key flag

View File

@@ -14,16 +14,16 @@ Für weitere Informationen siehe:
- **Vom Automatisierungskonto zur VM**
Denke daran, dass ein Angreifer, wenn er irgendwie ein beliebiges Runbook (beliebiger Code) in einem hybriden Worker ausführen kann, **zum Standort der VM pivotieren** wird. Dies könnte eine lokale Maschine, ein VPC einer anderen Cloud oder sogar eine Azure-VM sein.
Denke daran, dass ein Angreifer, wenn er irgendwie ein beliebiges Runbook (beliebiger Code) in einem hybriden Worker ausführen kann, **zum Standort der VM pivotieren wird**. Dies könnte eine lokale Maschine, ein VPC einer anderen Cloud oder sogar eine Azure-VM sein.
Darüber hinaus, wenn der hybride 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.
Darüber hinaus, wenn der hybride Worker in Azure mit anderen angehängten 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`**).
- **Von der VM zum Automatisierungskonto**
Darüber hinaus, wenn jemand eine VM kompromittiert, auf der ein Skript des Automatisierungskontos läuft, wird er in der Lage sein, die **Metadaten des Automatisierungskontos** zu lokalisieren und von der VM darauf zuzugreifen, um Tokens für die **verwalteten Identitäten** zu erhalten, die dem Automatisierungskonto zugeordnet sind.
Darüber hinaus, wenn jemand eine VM kompromittiert, auf der ein Skript des Automatisierungskontos läuft, wird er in der Lage sein, die **Metadaten des Automatisierungskontos** zu lokalisieren und von der VM aus darauf zuzugreifen, um Tokens für die **verwalteten Identitäten** zu erhalten, die dem Automatisierungskonto zugeordnet sind.
Wie im folgenden Bild zu sehen ist, ist es mit Administratorzugriff auf die VM möglich, in den **Umgebungsvariablen des Prozesses** die URL und das Geheimnis zum Zugriff auf den Metadatenservice des Automatisierungskontos zu finden:
@@ -32,9 +32,9 @@ Wie im folgenden Bild zu sehen ist, ist es mit Administratorzugriff auf die VM m
### `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 erlauben diese Berechtigungen, **Runbooks im Automatisierungskonto zu erstellen, zu ändern und auszuführen**, die du verwenden könntest, um **Code** im Kontext des Automatisierungskontos auszuführen und Berechtigungen für die zugewiesenen **verwalteten Identitäten** zu eskalieren sowie **Anmeldeinformationen** und **verschlüsselte Variablen**, die im Automatisierungskonto gespeichert sind, zu leaken.
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 Privilegien auf die zugewiesenen **verwalteten Identitäten** zu eskalieren sowie **Anmeldeinformationen** und **verschlüsselte Variablen** zu leaken, die im Automatisierungskonto gespeichert sind.
Die Berechtigung **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** erlaubt es, den Code eines Runbooks im Automatisierungskonto 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 \
@@ -115,7 +115,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 mit:
Dann ist es mit der Berechtigung **`Microsoft.Automation/automationAccounts/jobSchedules/write`** möglich, einen Scheduler einem Runbook zuzuweisen, indem man:
```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" \
@@ -237,7 +237,7 @@ Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_she
```
- Schritt 3 — Speicher-Kontext festlegen & hochladen
Die gezippte Konfigurationsdatei wird in einen vordefinierten Azure Storage-Container, azure-pentest, hochgeladen, indem das Azure-Cmdlet Set-AzStorageBlobContent verwendet wird.
Die gezippte Konfigurationsdatei wird in einen vordefinierten Azure Storage-Container, azure-pentest, mit dem Azure-Befehl Set-AzStorageBlobContent hochgeladen.
```bash
Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx
```