Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat

This commit is contained in:
Translator
2025-10-06 10:00:36 +00:00
parent 9290c80d0c
commit 982f5b8b3d
2 changed files with 70 additions and 23 deletions

View File

@@ -10,16 +10,16 @@ Za više informacija pogledajte:
../aws-services/aws-secrets-manager-enum.md
{{#endref}}
### Čitanje tajni
### Read Secrets
**Tajne su same po sebi osetljive informacije**, [pogledajte privesc stranicu](../aws-privilege-escalation/aws-secrets-manager-privesc.md) da biste naučili kako ih pročitati.
**secrets sami po sebi predstavljaju osetljive informacije**, [pogledajte privesc stranicu](../aws-privilege-escalation/aws-secrets-manager-privesc.md) da biste naučili kako da ih pročitate.
### DoS - Promena vrednosti tajne
### DoS Change Secret Value
Promenom vrednosti tajne možete **izazvati DoS svim sistemima koji zavise od te vrednosti.**
Promenom vrednosti secret-a možete izazvati **DoS svih sistema koji zavise od te vrednosti.**
> [!WARNING]
> Imajte na umu da se prethodne vrednosti takođe čuvaju, pa je lako jednostavno vratiti prethodnu vrednost.
> Imajte na umu da se prethodne vrednosti takođe čuvaju, pa je jednostavno vratiti se na prethodnu vrednost.
```bash
# Requires permission secretsmanager:PutSecretValue
aws secretsmanager put-secret-value \
@@ -28,19 +28,19 @@ aws secretsmanager put-secret-value \
```
### DoS Change KMS key
Ako napadač ima dozvolu secretsmanager:UpdateSecret, može da konfiguriše secret da koristi KMS key koji je u vlasništvu napadača. Taj key je inicijalno podešen tako da bilo ko može da mu pristupi i koristi ga, pa je moguće ažurirati secret sa novim key-jem. Ako key ne bi bio dostupan, secret ne bi mogao biti ažuriran.
Ako napadač ima dozvolu secretsmanager:UpdateSecret, može da konfiguriše secret da koristi KMS key u vlasništvu napadača. Taj key je inicijalno podešen tako da svako može da mu pristupi i koristi ga, pa je moguće ažurirati secret novim key-jem. Ako key nije bio dostupan, secret ne bi mogao biti ažuriran.
Nakon promene key-ja za secret, napadač menja konfiguraciju svog key-ja tako da samo on može da mu pristupi. Na taj način, u narednim verzijama secret-a, on će biti enkriptovan novim key-jem, i pošto neće postojati pristup, mogućnost preuzimanja secret-a biće izgubljena.
Nakon promene key-ja za secret, napadač menja konfiguraciju svog key-ja tako da samo on može da mu pristupi. Na taj način, u narednim verzijama secreta, one će biti enkriptovane novim key-jem, i pošto nema pristupa tom key-ju, mogućnost preuzimanja secreta će biti izgubljena.
Važno je napomenuti da će ova nedostupnost nastupiti samo u kasnijim verzijama, nakon što se sadržaj secret-a promeni, jer je trenutna verzija i dalje enkriptovana originalnim KMS key-jem.
Važno je napomenuti da će ta nedostupnost nastupiti samo u kasnijim verzijama, nakon što se sadržaj secreta promeni, jer je trenutna verzija i dalje enkriptovana originalnim KMS key-jem.
```bash
aws secretsmanager update-secret \
--secret-id MyTestSecret \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
```
### DoS Brisanje tajne
### DoS Deleting Secret
Najmanji broj dana za brisanje tajne je 7
Minimalan broj dana za brisanje secret-a je 7
```bash
aws secretsmanager delete-secret \
--secret-id MyTestSecret \
@@ -48,27 +48,27 @@ aws secretsmanager delete-secret \
```
## secretsmanager:RestoreSecret
Moguće je vratiti secret, što omogućava obnavljanje secretova koji su zakazani za brisanje, pošto je minimalni period brisanja 7 dana, a maksimalni 30 dana. Zajedno sa dozvolom secretsmanager:GetSecretValue, ovo omogućava pristup njihovom sadržaju.
Moguće je vratiti secret, što omogućava obnavljanje secrets koji su zakazani za brisanje, pošto je minimalni period brisanja secrets 7 dana, a maksimalni 30 dana. U kombinaciji sa permisijom secretsmanager:GetSecretValue, ovo omogućava preuzimanje njihovog sadržaja.
Da biste oporavili secret koji je u procesu brisanja, možete koristiti sledeću komandu:
Da biste povratili secret koji je u procesu brisanja, možete koristiti sledeću komandu:
```bash
aws secretsmanager restore-secret \
--secret-id <Secret_Name>
```
## secretsmanager:DeleteResourcePolicy
Ova akcija omogućava brisanje politike resursa koja kontroliše ko može pristupiti tajni. Ovo može dovesti do DoS-a ako je politika resursa konfigurisana da dozvoljava pristup određenom skupu korisnika.
Ova akcija omogućava brisanje politike resursa koja kontroliše ko može da pristupi tajni. Ovo može dovesti do DoS-a ako je politika resursa konfigurisana da dopušta pristup određenom skupu korisnika.
Za brisanje politike resursa:
Da biste obrisali politiku resursa:
```bash
aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>
```
## secretsmanager:UpdateSecretVersionStage
Stanja tajne se koriste za upravljanje njenim verzijama. AWSCURRENT označava aktivnu verziju koju aplikacije koriste, AWSPREVIOUS čuva prethodnu verziju kako biste se mogli vratiti unazad po potrebi, a AWSPENDING se koristi u procesu rotacije da pripremi i validira novu verziju pre nego što je učini trenutnom.
Stanja tajne se koriste za upravljanje verzijama tajne. AWSCURRENT označava aktivnu verziju koju koriste aplikacije, AWSPREVIOUS čuva prethodnu verziju kako biste se mogli vratiti unazad ako je potrebno, a AWSPENDING se koristi u procesu rotacije da pripremi i verifikuje novu verziju pre nego što je učini trenutnom.
Aplikacije uvek čitaju verziju označenu AWSCURRENT. Ako neko premesti tu oznaku na pogrešnu verziju, aplikacije će koristiti nevažeće kredencijale i mogu prestati da rade.
Aplikacije uvek čitaju verziju označenu sa AWSCURRENT. Ako neko premesti tu oznaku na pogrešnu verziju, aplikacije će koristiti nevažeće kredencijale i mogu zakazati.
AWSPREVIOUS se ne koristi automatski. Međutim, ako se AWSCURRENT ukloni ili nepravilno dodeli, može izgledati da sve i dalje radi sa prethodnom verzijom.
```bash
@@ -79,3 +79,52 @@ aws secretsmanager update-secret-version-stage \
--remove-from-version-id <previous-version-id>
```
{{#include ../../../banners/hacktricks-training.md}}
### Mass Secret Exfiltration preko BatchGetSecretValue (do 20 po pozivu)
Iskoristite Secrets Manager BatchGetSecretValue API da preuzmete do 20 secrets u jednom zahtevu. Ovo može dramatično smanjiti broj API poziva u poređenju sa ponavljanjem GetSecretValue za svaki secret. Ako se koriste filteri (tags/name), potrebna je i dozvola ListSecrets. CloudTrail i dalje beleži po jedan GetSecretValue događaj za svaki secret preuzet u batch-u.
Potrebne dozvole
- secretsmanager:BatchGetSecretValue
- secretsmanager:GetSecretValue for each target secret
- secretsmanager:ListSecrets if using --filters
- kms:Decrypt on the CMKs used by the secrets (if not using aws/secretsmanager)
> [!WARNING]
> Imajte na umu da sama dozvola `secretsmanager:BatchGetSecretValue` nije dovoljna za preuzimanje secrets — takođe vam je potrebna `secretsmanager:GetSecretValue` za svaki secret koji želite da preuzmete.
Exfiltrate pomoću eksplicitne liste
```bash
aws secretsmanager batch-get-secret-value \
--secret-id-list <secret1> <secret2> <secret3> \
--query 'SecretValues[].{Name:Name,Version:VersionId,Val:SecretString}'
```
Exfiltrate preko filtera (tag key/value ili prefiks imena)
```bash
# By tag key
aws secretsmanager batch-get-secret-value \
--filters Key=tag-key,Values=env \
--max-results 20 \
--query 'SecretValues[].{Name:Name,Val:SecretString}'
# By tag value
aws secretsmanager batch-get-secret-value \
--filters Key=tag-value,Values=prod \
--max-results 20
# By name prefix
aws secretsmanager batch-get-secret-value \
--filters Key=name,Values=MyApp
```
Rukovanje delimičnim neuspesima
```bash
# Inspect the Errors list for AccessDenied/NotFound and retry/adjust filters
aws secretsmanager batch-get-secret-value --secret-id-list <id1> <id2> <id3>
```
Uticaj
- Brzo “smash-and-grab” preuzimanje mnogih tajni uz manje API poziva, što potencijalno zaobilazi alerting podešen na skokove GetSecretValue.
- CloudTrail logovi i dalje uključuju po jedan GetSecretValue događaj za svaku tajnu dohvaćenu u seriji.

View File

@@ -1,10 +1,8 @@
# AWS - Secrets Manager Privesc
{{#include ../../../banners/hacktricks-training.md}}
## Secrets Manager
Za više informacija o secrets manager pogledajte:
Za više informacija o Secrets Manager pogledajte:
{{#ref}}
../aws-services/aws-secrets-manager-enum.md
@@ -12,18 +10,18 @@ Za više informacija o secrets manager pogledajte:
### `secretsmanager:GetSecretValue`
Napadač sa ovom dozvolom može dobiti **sačuvanu vrednost unutar tajne** u AWS **Secretsmanager**.
Napadač sa ovom dozvolom može dobiti **sačuvanu vrednost unutar secret-a** u AWS **Secretsmanager**.
```bash
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
```
**Potencijalni uticaj:** Pristup visoko osetljivim podacima u AWS Secrets Manager servisu.
**Potencijalni uticaj:** Pristup veoma osetljivim podacima u AWS Secrets Manager servisu.
> [!WARNING]
> Imajte na umu da čak i sa `secretsmanager:BatchGetSecretValue` dozvolom, napadač bi takođe trebao `secretsmanager:GetSecretValue` da bi preuzeo osetljive tajne.
> Imajte na umu da, čak i sa `secretsmanager:BatchGetSecretValue` dozvolom, napadač bi takođe trebao `secretsmanager:GetSecretValue` da preuzme osetljive tajne.
### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)
Sa prethodnim dozvolama moguće je **dati pristup drugim principalima/nalozima (čak i eksternim)** da pristupe **tajni**. Imajte na umu da da bi **pročitao tajne šifrovane** KMS ključem, korisnik takođe mora imati **pristup KMS ključu** (više informacija na [KMS Enum page](../aws-services/aws-kms-enum.md)).
Sa prethodnim dozvolama moguće je **dodeliti pristup drugim principals/accounts (čak i eksternim)** da pristupe **tajni**. Imajte na umu da, da bi **čitati tajne šifrovane** KMS ključem, korisnik takođe mora imati **pristup KMS ključu** (more info in the [KMS Enum page](../aws-services/aws-kms-enum.md)).
```bash
aws secretsmanager list-secrets
aws secretsmanager get-resource-policy --secret-id <secret_name>