4.3 KiB
AWS - S3 Post Exploitation
{{#include ../../../../banners/hacktricks-training.md}}
S3
Für weitere Informationen siehe:
{{#ref}} ../../aws-services/aws-s3-athena-and-glacier-enum.md {{#endref}}
Sensitive Information
Manchmal findet man lesbare, sensible Informationen in Buckets. Zum Beispiel terraform state secrets.
Pivoting
Different platforms could be using S3 to store sensitive assets.
For example, airflow could be storing DAGs code in there, or web pages could be directly served from S3. Ein Angreifer mit Schreibrechten könnte den Code im Bucket verändern, um auf andere Plattformen zu pivoten oder durch das Ändern von JS-Dateien Accounts zu übernehmen.
S3 Ransomware
In diesem Szenario erstellt der Angreifer einen KMS (Key Management Service) key in seinem eigenen AWS account oder in einem anderen kompromittierten Account. Anschließend macht er diesen Key für jeden auf der Welt zugänglich, sodass jeder AWS user, role oder account Objekte mit diesem Key verschlüsseln kann. Die Objekte können jedoch nicht wieder entschlüsselt werden.
Der Angreifer identifiziert ein Ziel-S3-Bucket und erhält Schreibzugriff darauf über verschiedene Methoden. Das kann durch eine schlecht konfigurierte, öffentlich zugängliche Bucket-Policy passieren oder dadurch, dass der Angreifer Zugang zur AWS-Umgebung selbst erlangt. Der Angreifer zielt typischerweise auf Buckets mit sensiblen Informationen wie PII, PHI, Logs, Backups usw.
Um zu prüfen, ob das Bucket für Ransomware geeignet ist, überprüft der Angreifer dessen Konfiguration. Dazu gehört zu verifizieren, ob S3 Object Versioning aktiviert ist und ob multi-factor authentication delete (MFA delete) aktiviert ist. Wenn Object Versioning nicht aktiviert ist, kann der Angreifer fortfahren. Wenn Object Versioning aktiviert, aber MFA delete deaktiviert ist, kann der Angreifer Object Versioning deaktivieren. Sind sowohl Object Versioning als auch MFA delete aktiviert, wird es für den Angreifer deutlich schwieriger, dieses Bucket mit Ransomware zu attackieren.
Über die AWS API ersetzt der Angreifer jedes Objekt im Bucket durch eine verschlüsselte Kopie, die mit seinem KMS key erstellt wurde. Dadurch werden die Daten im Bucket effektiv verschlüsselt und sind ohne den Key nicht mehr zugänglich.
Um zusätzlichen Druck aufzubauen, plant der Angreifer die Löschung des in der Attacke verwendeten KMS keys. Dadurch hat das Opfer ein 7-tägiges Fenster, um seine Daten wiederherzustellen, bevor der Key gelöscht wird und die Daten dauerhaft verloren sind.
Schließlich könnte der Angreifer eine finale Datei hochladen, üblicherweise mit dem Namen "ransom-note.txt", die Anweisungen für das Opfer enthält, wie es seine Dateien zurückerhalten kann. Diese Datei wird unverschlüsselt hochgeladen, vermutlich um die Aufmerksamkeit des Opfers zu erregen und auf den Ransomware-Angriff hinzuweisen.
s3:RestoreObject
Ein Angreifer mit der Berechtigung s3:RestoreObject kann in Glacier oder Deep Archive archivierte Objekte reaktivieren und sie temporär zugänglich machen. Dadurch wird die Wiederherstellung und Exfiltration historisch archivierter Daten (Backups, Snapshots, Logs, Zertifikate, alte Secrets) möglich, die normalerweise nicht erreichbar wären. Kombiniert der Angreifer diese Berechtigung mit Leserechten (z. B. s3:GetObject), kann er vollständige Kopien sensibler Daten erhalten.
aws s3api restore-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY> \
--restore-request '{
"Days": <NUMBER_OF_DAYS>,
"GlacierJobParameters": { "Tier": "Standard" }
}'
s3:Delete*
Ein Angreifer mit der s3:Delete*-Berechtigung kann Objekte, Versionen und ganze Buckets löschen, Backups stören und sofortigen sowie irreversiblen Datenverlust verursachen, Beweismaterial vernichten und Backup- oder Wiederherstellungsartefakte kompromittieren.
# Delete an object from a bucket
aws s3api delete-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY>
# Delete a specific version
aws s3api delete-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY> \
--version-id <VERSION_ID>
# Delete a bucket
aws s3api delete-bucket \
--bucket <BUCKET_NAME>
Für mehr Infos siehe die Originalforschung.
{{#include ../../../../banners/hacktricks-training.md}}