Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation

This commit is contained in:
Translator
2026-02-14 19:50:39 +00:00
parent 5a55c4672a
commit b829ac3698
@@ -1,10 +1,10 @@
# AWS - S3 Post Eksploitasie
# AWS - S3 Post Exploitation
{{#include ../../../../banners/hacktricks-training.md}}
## S3
Vir meer inligting kyk:
For more information check:
{{#ref}}
../../aws-services/aws-s3-athena-and-glacier-enum.md
@@ -12,30 +12,69 @@ Vir meer inligting kyk:
### Sensitiewe Inligting
Soms sal jy sensitiewe inligting vind wat leesbaar is in die buckets. Byvoorbeeld, terraform state secrets.
Soms sal jy sensitiewe inligting leesbaar in die buckets vind. Byvoorbeeld, terraform state secrets.
### Pivoting
Different platforms could be using S3 to store sensitive assets.\
Byvoorbeeld, **airflow** kan **DAGs** **code** daar stoor, of **webbladsye** kan direk vanaf S3 gedien word. 'n Aanvaller met skryfpermissies kan die **code** in die bucket wysig om na ander platforms te **pivot**, of **takeover accounts** deur JS-lêers te wysig.
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 vervolgens hierdie **key toeganglik 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 gedekripsieer word nie.
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 and gains write-level access** daartoe deur verskeie metodes. Dit kan te wyte wees aan swak bucket-konfigurasie wat dit publiek blootstel of daaraan dat die aanvaller toegang tot die AWS environment self kry. Die aanvaller mik gewoonlik na buckets wat sensitiewe inligting bevat soos personally identifiable information (PII), protected health information (PHI), logs, backups, en meer.
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 vir ransomware geteiken kan word, kontroleer die aanvaller die konfigurasie. Dit sluit in om te verifieer of **S3 Object Versioning** geaktiveer is en of **multi-factor authentication delete (MFA delete) is enabled**. As Object Versioning nie geaktiveer is nie, kan die aanvaller voortgaan. As Object Versioning geaktiveer is maar MFA delete disabled is, kan die aanvaller **disable Object Versioning**. As beide Object Versioning en MFA delete geaktiveer is, word dit moeiliker vir die aanvaller om daardie spesifieke bucket te ransomware.
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 encrypted copy using their KMS key**. Dit enkripteer effens die data in die bucket en maak dit ontoeganklik sonder die key.
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 verdere druk te plaas, skeduleer die aanvaller die verwydering van die KMS key wat in die aanval gebruik is. Dit gee die teiken 'n 7-dae venster om hul data te herstel voordat die key verwyder word en die data permanent verlore gaan.
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 met die naam "ransom-note.txt," wat instruksies vir die teiken bevat oor hoe om hul files te herstel. Hierdie lêer word without encryption opgelaai, waarskynlik om die teiken se aandag te trek en hulle bewus te maak van die ransomware-aanval.
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:PutObject` op die teiken keys/prefixes). Dit word dikwels gepaar met die vermoë om destruktiewe lifecycle policies te stel (kyk hieronder), bv. `s3:PutLifecycleConfiguration`.
- **Attack chain:**
1. Aanvaller genereer 'n ewekansige 256-bit key (AES-256) en hou dit.
2. Aanvaller **herskryf** bestaande objects (dieselfde object keys) met SSE-C headers sodat die gestoorde object nou geënkripteer is met die aanvaller se key.
3. Slagoffer kan nie download/ontsleutel sonder om die SSE-C key te verskaf nie (selfs al is IAM permissions reg).
4. Aanvaller kan die key verwyder (of eenvoudig nooit verskaf nie) om die data onherstelbaar te maak.
Example (conceptual) CLI usage:
```bash
# 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:PutLifecycleConfiguration` op 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 `PutObject` versoeke 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:PutObject` tot nodige voorvoegsels; beperk sterk `s3:PutLifecycleConfiguration` en `s3: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 permission kan voorwerpe wat in Glacier of Deep Archive gearchiveer is heraktiveer, wat hulle tydelik toeganklik maak. Dit maak recovery en exfiltration van histories gearchiveerde data (backups, snapshots, logs, certifications, old secrets) moontlik wat normaalweg buite bereik sou wees. As die aanvaller hierdie permission kombineer met leespermissies (bv., s3:GetObject), kan hulle volle kopieë van sensitiewe data verkry.
'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.
```bash
aws s3api restore-object \
--bucket <BUCKET_NAME> \
@@ -47,7 +86,7 @@ aws s3api restore-object \
```
### `s3:Delete*`
'n Aanvaller met die s3:Delete* regte kan objects, versions en hele buckets uitvee, rugsteune ontwrig, en onmiddellike en onomkeerbare dataverlies, vernietiging van bewyse, en kompromittering van rugsteun- of herstelartefakte veroorsaak.
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.
```bash
# Delete an object from a bucket
aws s3api delete-object \
@@ -64,6 +103,6 @@ aws s3api delete-object \
aws s3api delete-bucket \
--bucket <BUCKET_NAME>
```
**Vir meer inligting** [**bekyk die oorspronklike navorsing**](https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/)**.**
**Vir meer info** [**check the original research**](https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/)**.**
{{#include ../../../../banners/hacktricks-training.md}}