AWS - S3 Post Exploitation
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
S3
For more information check:
AWS - S3, Athena & Glacier Enum
Sensitiewe Inligting
Soms sal jy sensitiewe inligting leesbaar in die buckets vind. Byvoorbeeld, terraform state secrets.
Pivoting
Verskillende platforms kan S3 gebruik om sensitiewe assets te stoor.
Byvoorbeeld, airflow kan DAGs code daar stoor, of web pages kan direk vanaf S3 bedien word. ân aanvaller met write permissions kan die code in die bucket wysig om na ander platforms te pivot, of takeover accounts deur JS-lĂȘers te wysig.
S3 Ransomware
In hierdie scenario skep die aanvaller ân KMS (Key Management Service) key in hul eie AWS account of in ân ander gekompromitteerde account. Hulle maak dan hierdie key toeganklik vir enigiemand in die wĂȘreld, wat enige AWS user, role, of account toelaat om objects met hierdie key te enkripteer. Die objects kan egter nie ontsleuteld word nie.
Die aanvaller identifiseer ân teiken-S3 bucket en verwerf write-level access daartoe deur verskeie metodes. Dit kan wees as gevolg van swak bucket-konfigurasie wat dit publiek maak of dat die aanvaller toegang tot die AWS environment self verkry. Die aanvaller mik gewoonlik na buckets wat sensitiewe inligting bevat soos personally identifiable information (PII), protected health information (PHI), logs, backups, en meer.
Om te bepaal of die bucket ân teiken vir ransomware kan wees, kontroleer die aanvaller die konfigurasie daarvan. Dit sluit in om te verifieer of S3 Object Versioning aangeskakel is en of multi-factor authentication delete (MFA delete) aangeskakel is. As Object Versioning nie aangeskakel is nie, kan die aanvaller voortgaan. As Object Versioning aangeskakel is maar MFA delete gedeaktiveer is, kan die aanvaller Object Versioning uitskakel. As beide Object Versioning en MFA delete aangeskakel is, word dit moeiliker vir die aanvaller om daardie spesifieke bucket te ransomware.
Deur die AWS API te gebruik, vervang die aanvaller elke object in die bucket met ân geĂ«nkripteerde kopie wat hul KMS key gebruik. Dit enkripteer effektief die data in die bucket, wat dit ontoeganklik maak sonder die key.
Om meer druk te plaas, skeduleer die aanvaller die verwydering van die KMS key wat in die aanval gebruik is. Dit gee die teiken ân 7-dag venster om hul data te herstel voordat die key verwyder word en die data permanent verlore raak.
Laastens kan die aanvaller ân finale lĂȘer oplaai, gewoonlik genaamd âransom-note.txt,â wat instruksies vir die teiken bevat oor hoe om hul lĂȘers terug te kry. Hierdie lĂȘer word sonder enkripsie opgelaai, waarskynlik om die teiken se aandag te trek en hulle bewus te maak van die ransomware-aanval.
SSE-C (Customer-Provided Key) Ransomware (Codefinger-like)
Nog ân variant is die misbruik van SSE-C (S3 server-side encryption met customer-provided keys). Met SSE-C voorsien die client die enkripsie-sleutel by elke versoek en AWS stoor nie die sleutel nie. Dit beteken dat as ân aanvaller bestaande objects herskryf met hul eie SSE-C key, raak die slagoffer se data onleesbaar tensy die slagoffer daardie aanvaller-gekontroleerde key kan verskaf.
- Preconditions: Gekomromitteerde AWS credentials (of enige principal met die regte permissions) en die vermoë om objects te herskryf (bv.
s3:PutObjectop die teiken keys/prefixes). Dit word dikwels gepaar met die vermoë om destruktiewe lifecycle policies te stel (kyk hieronder), bv.s3:PutLifecycleConfiguration. - Attack chain:
- Aanvaller genereer ân ewekansige 256-bit key (AES-256) en hou dit.
- Aanvaller herskryf bestaande objects (dieselfde object keys) met SSE-C headers sodat die gestoorde object nou geënkripteer is met die aanvaller se key.
- Slagoffer kan nie download/ontsleutel sonder om die SSE-C key te verskaf nie (selfs al is IAM permissions reg).
- Aanvaller kan die key verwyder (of eenvoudig nooit verskaf nie) om die data onherstelbaar te maak.
Example (conceptual) CLI usage:
# Upload/overwrite an object encrypted with attacker-provided SSE-C key
aws s3 cp ./file s3://<BUCKET>/<KEY> \
--sse-c AES256 \
--sse-c-key <BASE64_32_BYTES>
# Download requires providing the same key again
aws s3 cp s3://<BUCKET>/<KEY> ./file \
--sse-c AES256 \
--sse-c-key <BASE64_32_BYTES>
Verhoogde Druk: Lewensiklus âTimerâ Misbruik
Om herstelopsies (soos ou weergawes) te verwyder, kan aanvallers SSE-C-omskrywings kombineer met lewensiklusreĂ«ls wat objekte laat verval en/of nie-aktuele weergawes na ân kort periode verwyder:
s3:PutLifecycleConfigurationop die bucket laat ân aanvaller toe om verwyderings te skeduleer sonder om eksplisiete delete-operasies vir elke object/weergawe uit te voer.- Dit is veral ingrypend wanneer versioning is enabled, omdat dit die âvorige goeie weergaweâ kan verwyder wat andersins herstel sou moontlik maak.
Opsporing & Mitigasies
- Verkies SSE-KMS (of SSE-S3) bo SSE-C, tensy jy ân sterk operasionele rede het om SSE-C toe te laat.
- Monitor/waarsku op
PutObjectversoeke wat SSE-C headers gebruik (CloudTrail data events vir S3). - Monitor/waarsku op onverwagte
PutBucketLifecycleConfiguration(lewensiklusveranderinge). - Monitor/waarsku op skielike styging in oorskryfaktiwiteit (dieselfde keys wat vinnig bygewerk word) en delete-marker/weergaweverwyderings.
- Beperk hoë-risiko permissies: Beperk
s3:PutObjecttot nodige voorvoegsels; beperk sterks3:PutLifecycleConfigurationens3:PutBucketVersioning; oorweeg om MFA te vereis vir sensitiewe admin-aksies (waar toepaslik) en gebruik afsonderlike admin-rolle met goedkeurings. - Herstelhouding: Gebruik versioning, backups, en onveranderlike/offline kopieĂ« (S3 replicasie na ân beskermde account, backup vaults, ens.); beskerm nie-aktuele weergawes teen aggressiewe verwydering en beveilig lewensiklusveranderinge met SCPs / guardrails.
s3:RestoreObject
ân Aanvaller met die s3:RestoreObject permissie kan objekte wat in Glacier of Deep Archive gearchiveer is heraktiveer, en dit tydelik toeganklik maak. Dit maak herstel en exfiltration van histories gearchiveerde data (backups, snapshots, logs, sertifikate, ou geheime) moontlik wat normaalweg buite bereik sou wees. As die aanvaller hierdie permissie kombineer met leespermissies (bv. s3:GetObject), kan hulle volledige kopieĂ« van sensitiewe data verkry.
aws s3api restore-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY> \
--restore-request '{
"Days": <NUMBER_OF_DAYS>,
"GlacierJobParameters": { "Tier": "Standard" }
}'
s3:Delete*
An attacker met die s3:Delete* permission kan objects, versions en entire buckets uitvee, backups ontwrig en onmiddellike, onomkeerbare dataverlies veroorsaak, bewysvernietiging teweegbring en backup- of recovery-artifacts kompromitteer.
# 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>
Vir meer info check the original research.
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

