AWS - STS Enum

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

STS

AWS Security Token Service (STS) je primarno dizajniran da izdaje privremene, ograničene privilegovane akreditive. Ovi akreditivi mogu biti zatraženi za AWS Identity and Access Management (IAM) korisnike ili za autentifikovane korisnike (federisani korisnici).

S obzirom da je svrha STS-a da izdaje akreditive za impersonaciju identiteta, usluga je izuzetno vredna za escaliranje privilegija i održavanje postojanosti, iako možda nema širok spektar opcija.

Pretpostavka uloge impersonacije

Akcija AssumeRole koju pruža AWS STS je ključna jer omogućava principalu da stekne akreditive za drugog principala, essencijalno ih impersonirajući. Po pozivu, odgovara sa ID-om pristupnog ključa, tajnim ključem i sesijskim tokenom koji odgovara određenom ARN-u.

Za testere penetracije ili članove Crvenog tima, ova tehnika je od suštinskog značaja za escaliranje privilegija (kako je detaljno objašnjeno ovde). Međutim, vredi napomenuti da je ova tehnika prilično uočljiva i možda neće iznenaditi napadača.

Logika pretpostavljanja uloge

Da biste pretpostavili ulogu u istom nalogu ako uloga koju treba pretpostaviti eksplicitno dozvoljava ARN uloge kao u:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:role/priv-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

U ovom slučaju, ulozi priv-role nije potrebno posebno dozvoliti da preuzme tu ulogu (dovoljno je to odobrenje).

Međutim, ako uloga omogućava nalogu da je preuzme, kao u:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

Uloga koja pokušava da preuzme mora imati specifičnu dozvolu sts:AssumeRole nad tom ulogom kako bi je preuzela.

Ako pokušate da preuzmete ulogu iz drugog naloga, ta pretpostavljena uloga mora to dozvoliti (navođenjem ARN uloge ili spoljnog naloga), a uloga koja pokušava da preuzme drugu MORA imati dozvole da je preuzme (u ovom slučaju to nije opcionalno čak i ako pretpostavljena uloga navodi ARN).

Enumeracija

# Get basic info of the creds
aws sts get-caller-identity
aws sts get-access-key-info --access-key-id <AccessKeyID>

# Get CLI a session token with current creds
## Using CLI creds
## You cannot get session creds using session creds
aws sts get-session-token
## MFA
aws sts get-session-token --serial-number <arn_device> --token-code <otp_code>

Privesc

Na sledećoj stranici možete proveriti kako zloupotrebiti STS dozvole za eskalaciju privilegija:

AWS - STS Privesc

Post Exploitation

AWS - STS Post Exploitation

Persistencija

AWS - STS Persistence

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated