From a18d3f6cd2690170c55c4c3c9bc4e9d2ac415c9a Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 14 Feb 2026 19:50:42 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation --- .../aws-s3-post-exploitation/README.md | 61 +++++++++++++++---- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation/README.md index ce4c3ce8a..814f45305 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation/README.md @@ -10,32 +10,71 @@ Za više informacija pogledajte: ../../aws-services/aws-s3-athena-and-glacier-enum.md {{#endref}} -### Osetljive informacije +### Sensitive Information -Ponekad ćete moći da pronađete osetljive informacije koje su čitljive u bucket-ovima. Na primer, terraform state secrets. +Ponekad ćete uspeti da pronađete osetljive informacije koje su čitljive direktno u buckets. Na primer, terraform state secrets. ### Pivoting Različite platforme mogu koristiti S3 za čuvanje osetljivih resursa.\ -Na primer, **airflow** može tamo čuvati **DAGs** kod, ili se **web pages** mogu direktno služiti iz S3. Napadač sa write permissions može **modify the code** from the bucket to **pivot** to other platforms, or **takeover accounts** modifying JS files. +Na primer, **airflow** može skladištiti **DAGs** **code** tamo, ili se **web pages** mogu direktno servirati iz S3. Napadač sa write permissions može **modify the code** iz bucket-a kako bi **pivot**-ovao na druge platforme, ili **takeover accounts** menjajući JS fajlove. ### S3 Ransomware -In this scenario, the **attacker creates a KMS (Key Management Service) key in their own AWS account** or another compromised account. They then make this **key accessible to anyone in the world**, allowing any AWS user, role, or account to encrypt objects using this key. However, the objects cannot be decrypted. +U ovom scenariju, napadač kreira **KMS (Key Management Service) key u svom AWS account** ili u drugom kompromitovanom nalogu. Zatim učini ovaj **key accessible to anyone in the world**, dozvoljavajući bilo kojem AWS useru, roli ili account-u da enkriptuje objekte koristeći taj ključ. Međutim, objekti ne mogu biti dekriptovani. -Napadač identifikuje ciljani **S3 bucket and gains write-level access** to it using various methods. Ovo može biti posledica loše konfiguracije bucket-a koja ga izlaže javnosti ili zato što napadač dobije pristup samom AWS okruženju. Napadač obično cilja bucket-e koji sadrže osetljive informacije kao što su personally identifiable information (PII), protected health information (PHI), logovi, backup-i i slično. +Napadač identifikuje ciljnu **S3 bucket i gains write-level access** do nje koristeći razne metode. To može biti zbog loše konfiguracije bucket-a koja ga izlaže javnosti ili zato što je napadač stekao pristup samom AWS okruženju. Napadač obično cilja bucket-e koji sadrže osetljive informacije kao što su personally identifiable information (PII), protected health information (PHI), logovi, backup-ovi i slično. -Da bi utvrdio da li bucket može biti meta ransomware napada, napadač proverava njegovu konfiguraciju. To uključuje proveru da li je **S3 Object Versioning** enabled i da li je **multi-factor authentication delete (MFA delete) enabled**. Ako Object Versioning nije enabled, napadač može nastaviti. Ako je Object Versioning enabled ali je MFA delete disabled, napadač može **disable Object Versioning**. Ako su i Object Versioning i MFA delete enabled, postaje teže za napadača da izvrši ransomware na tom bucket-u. +Da bi utvrdio da li bucket može biti meta ransomware-a, napadač proverava njegovu konfiguraciju. To uključuje verifikaciju da li je **S3 Object Versioning** omogućen i da li je **multi-factor authentication delete (MFA delete) enabled**. Ako Object Versioning nije omogućen, napadač može nastaviti. Ako je Object Versioning omogućen ali je MFA delete onemogućen, napadač može **disable Object Versioning**. Ako su i Object Versioning i MFA delete omogućeni, postaje teže za napadača da izvrši ransomware nad tim bucket-om. -Korišćenjem AWS API-ja, napadač **replaces each object in the bucket with an encrypted copy using their KMS key**. Ovo efikasno enkriptuje podatke u bucket-u, čineći ih nedostupnim bez tog key-a. +Korišćenjem AWS API-ja, napadač **replaces each object in the bucket with an encrypted copy using their KMS key**. Ovo efektivno enkriptuje podatke u bucket-u, čineći ih nedostupnim bez ključa. -Da bi dodatno izvršio pritisak, napadač zakaže brisanje KMS key-a koji je korišćen u napadu. To daje meti 7-dnevni rok da povrati podatke pre nego što se key obriše i podaci postanu trajno izgubljeni. +Da bi dodatno izvršio pritisak, napadač zakaže brisanje KMS ključa koji je korišćen u napadu. To daje žrtvi 7-dnevni rok da oporavi svoje podatke pre nego što ključ bude obrisan i podaci postanu trajno izgubljeni. -Na kraju, napadač može otpremiti konačni fajl, obično nazvan "ransom-note.txt", koji sadrži instrukcije za metu kako da povrati svoje fajlove. Ovaj fajl se otprema bez enkripcije, verovatno da bi privukao pažnju mete i obavestio ih o ransomware napadu. +Na kraju, napadač može postaviti završni fajl, obično nazvan "ransom-note.txt", koji sadrži instrukcije za metu kako da povrati svoje fajlove. Ovaj fajl se upload-uje bez enkripcije, verovatno da bi privukao pažnju mete i obavestio je o ransomware napadu. + +#### SSE-C (Customer-Provided Key) Ransomware (Codefinger-like) + +Druga varijanta zloupotrebljava **SSE-C** (S3 server-side encryption with **customer-provided keys**). Sa SSE-C, **client provides the encryption key on every request** i **AWS does not store the key**. To znači da ako napadač prepiše objekte koristeći **their own SSE-C key**, podaci žrtve postaju nečitljivi osim ako žrtva ne može da obezbedi taj napadačem kontrolisani ključ. + +- **Preconditions:** Kompromitovani AWS credentials (ili bilo koji principal sa odgovarajućim permisijama) i mogućnost da **rewrite objects** (npr. `s3:PutObject` na ciljanim keys/prefixes). Ovo se često kombinuje sa mogućnošću postavljanja destruktivnih lifecycle politika (vidi dole), npr. `s3:PutLifecycleConfiguration`. +- **Attack chain:** +1. Napadač generiše nasumičan 256-bit ključ (AES-256) i zadržava ga. +2. Napadač **rewrites** postojeće objekte (isti object keys) koristeći SSE-C headers tako da je čuvani objekat sada enkriptovan sa napadačevim ključem. +3. Žrtva ne može da download-uje/dekriptujete bez pružanja SSE-C ključa (čak i ako su IAM permisije ispravne). +4. Napadač može obrisati ključ (ili jednostavno nikada ne obezbediti isti) kako bi podaci postali neoporavljivi. + +Example (conceptual) CLI usage: +```bash +# Upload/overwrite an object encrypted with attacker-provided SSE-C key +aws s3 cp ./file s3:/// \ +--sse-c AES256 \ +--sse-c-key + +# Download requires providing the same key again +aws s3 cp s3:/// ./file \ +--sse-c AES256 \ +--sse-c-key +``` +##### Adding Pressure: Lifecycle "Timer" Abuse + +Da bi uklonili opcije za oporavak (poput starih verzija), napadači mogu kombinovati SSE-C prepisivanja sa **pravila životnog ciklusa** koja ističu objekte i/ili brišu neaktuelne verzije nakon kratkog perioda: + +- `s3:PutLifecycleConfiguration` na bucket-u omogućava napadaču da zakaže brisanja bez izvršavanja eksplicitnih operacija brisanja za svaki objekat/verziju. +- Ovo je naročito ozbiljno kada je **verzionisanje omogućeno**, jer može ukloniti "prethodnu dobru verziju" koja bi inače omogućila oporavak. + +##### Detection & Mitigations + +- Preferirajte **SSE-KMS** (ili SSE-S3) umesto SSE-C osim ako nemate snažan operativni razlog da dozvolite SSE-C. +- Pratite/pokrećite alarm za `PutObject` zahteve koji koriste SSE-C zaglavlja (CloudTrail data events za S3). +- Pratite/pokrećite alarm za neočekivane `PutBucketLifecycleConfiguration` (promene pravila životnog ciklusa). +- Pratite/pokrećite alarm za nagle skokove aktivnosti prepisivanja (isti ključevi brzo ažurirani) i brisanja delete-markera/brisanja verzija. +- Ograničite rizične permisije: Ograničite `s3:PutObject` na neophodne prefikse; strogo ograničite `s3:PutLifecycleConfiguration` i `s3:PutBucketVersioning`; razmotrite zahtevanje MFA za osetljive administratorske akcije (gde je primenljivo) i koristite odvojene admin role sa odobrenjima. +- Postura oporavka: Koristite **verzionisanje**, **rezervne kopije**, i nepromenljive/izvanmrežne kopije (S3 replication to protected account, backup vaults, itd.); zaštitite neaktuelne verzije od agresivnog brisanja i osigurajte promene lifecycle-a pomoću SCPs / guardrails. ### `s3:RestoreObject` -Napadač sa dozvolom s3:RestoreObject može reaktivirati objekte arhivirane u Glacier ili Deep Archive, čineći ih privremeno dostupnim. Ovo omogućava oporavak i exfiltraciju istorijski arhiviranih podataka (backup-i, snapshots, logovi, sertifikati, stari tajni podaci) koji bi inače bili nedostupni. Ako napadač kombinuje ovu dozvolu sa dozvolama za čitanje (npr. s3:GetObject), može dobiti potpune kopije osetljivih podataka. +Napadač sa permisijom `s3:RestoreObject` može reaktivirati objekte arhivirane u Glacier ili Deep Archive, čineći ih privremeno dostupnim. Ovo omogućava oporavak i eksfiltraciju istorijski arhiviranih podataka (rezervne kopije, snapshot-i, logovi, sertifikati, stari tajni podaci) koji bi inače bili nedostupni. Ako napadač kombinuje ovu dozvolu sa dozvolama za čitanje (npr. `s3:GetObject`), može dobiti pune kopije osetljivih podataka. ```bash aws s3api restore-object \ --bucket \ @@ -47,7 +86,7 @@ aws s3api restore-object \ ``` ### `s3:Delete*` -Napadač sa dozvolom s3:Delete* može izbrisati objects, versions i čitave buckets, poremetiti backups i prouzrokovati trenutni i nepovratni data loss, uništavanje dokaza i kompromitovanje backup ili recovery artifacts. +Napadač koji ima s3:Delete* dozvolu može izbrisati objekte, verzije i cele buckets, ometati rezervne kopije i prouzrokovati neposredni i nepovratan gubitak podataka, uništenje dokaza i kompromitovanje artefakata rezervne kopije ili oporavka. ```bash # Delete an object from a bucket aws s3api delete-object \