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

This commit is contained in:
Translator
2025-05-09 11:47:45 +00:00
parent d1e6e7a0e5
commit fa02cebce5

View File

@@ -34,7 +34,7 @@ Zum Beispiel kann ein Angreifer mit diesen **Berechtigungen über einen CloudFor
]
}
```
Und die Übernahme ist möglich, weil es ein **kleines Zeitfenster vom Moment des Hochladens der Vorlage** in den Bucket bis zum Moment der **Bereitstellung der Vorlage** gibt. Ein Angreifer könnte einfach eine **lambda function** in seinem Konto erstellen, die **ausgelöst wird, wenn eine Bucket-Benachrichtigung gesendet wird**, und **übernimmt** den **Inhalt** dieses **Buckets**.
Und die Übernahme ist möglich, weil es ein **kurzes Zeitfenster vom Moment des Hochladens der Vorlage** in den Bucket bis zum Moment der **Bereitstellung der Vorlage** gibt. Ein Angreifer könnte einfach eine **lambda function** in seinem Konto erstellen, die **ausgelöst wird, wenn eine Bucket-Benachrichtigung gesendet wird**, und **übernimmt** den **Inhalt** dieses **Buckets**.
![](<../../../images/image (174).png>)
@@ -45,7 +45,7 @@ Für weitere Informationen siehe die ursprüngliche Forschung: [https://rhinosec
Dies sind die Berechtigungen, um **Objekte in S3 zu erhalten und hochzuladen**. Mehrere Dienste innerhalb von AWS (und außerhalb davon) verwenden S3-Speicher, um **Konfigurationsdateien** zu speichern.\
Ein Angreifer mit **Lesezugriff** auf diese könnte **sensible Informationen** darin finden.\
Ein Angreifer mit **Schreibzugriff** auf diese könnte **die Daten ändern, um einen Dienst auszunutzen und zu versuchen, Privilegien zu eskalieren**.\
Ein Angreifer mit **Schreibzugriff** könnte **die Daten ändern, um einen Dienst auszunutzen und zu versuchen, Privilegien zu eskalieren**.\
Hier sind einige Beispiele:
- Wenn eine EC2-Instanz die **Benutzerdaten in einem S3-Bucket speichert**, könnte ein Angreifer diese ändern, um **beliebigen Code innerhalb der EC2-Instanz auszuführen**.
@@ -53,19 +53,19 @@ Hier sind einige Beispiele:
### `s3:PutObject`, `s3:GetObject` (optional) über Terraform-Zustandsdatei
Es ist sehr häufig, dass die [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) Zustandsdateien im Blob-Speicher von Cloud-Anbietern, z.B. AWS S3, gespeichert werden. Die Dateiendung für eine Zustandsdatei ist `.tfstate`, und die Bucket-Namen geben oft auch preis, dass sie Terraform-Zustandsdateien enthalten. In der Regel hat jedes AWS-Konto einen solchen Bucket, um die Zustandsdateien zu speichern, die den Zustand des Kontos anzeigen.\
Außerdem haben in realen Konten fast immer alle Entwickler `s3:*` und manchmal sogar Geschäftsanwender `s3:Put*`.
Außerdem haben in der realen Welt fast immer alle Entwickler `s3:*` und manchmal sogar Geschäftsanwender `s3:Put*`.
Wenn Sie also die oben genannten Berechtigungen über diese Dateien haben, gibt es einen Angriffsvektor, der es Ihnen ermöglicht, RCE in der Pipeline mit den Berechtigungen von `terraform` zu erlangen - meistens `AdministratorAccess`, was Sie zum Administrator des Cloud-Kontos macht. Außerdem können Sie diesen Vektor verwenden, um einen Denial-of-Service-Angriff durchzuführen, indem Sie `terraform` legitime Ressourcen löschen lassen.
Wenn Sie also die oben genannten Berechtigungen über diese Dateien haben, gibt es einen Angriffsvektor, der es Ihnen ermöglicht, RCE in der Pipeline mit den Rechten von `terraform` zu erlangen - meistens `AdministratorAccess`, was Sie zum Administrator des Cloud-Kontos macht. Außerdem können Sie diesen Vektor verwenden, um einen Denial-of-Service-Angriff durchzuführen, indem Sie `terraform` legitime Ressourcen löschen lassen.
Befolgen Sie die Beschreibung im Abschnitt *Missbrauch von Terraform-Zustandsdateien* der *Terraform-Sicherheits*-Seite für direkt verwendbaren Exploit-Code:
Befolgen Sie die Beschreibung im Abschnitt *Abusing Terraform State Files* der *Terraform Security*-Seite für direkt verwendbaren Exploit-Code:
{{#ref}}
pentesting-ci-cd/terraform-security.md#abusing-terraform-state-files
../../../pentesting-ci-cd/terraform-security.md#abusing-terraform-state-files
{{#endref}}
### `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 die 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, 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.
```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 ihm mehr Zugriff auf bestimmte Objekte innerhalb von Buckets zu gewähren.
Ein Angreifer könnte diese Berechtigungen missbrauchen, um sich 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