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 se mogu zatražiti 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 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 dozvoljava 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 je preuzme će trebati specifičnu dozvolu sts:AssumeRole nad tom ulogom kako bi je preuzela.

Ako pokušate da preuzmete ulogu iz drugog naloga, ta preuzeta uloga mora to dozvoliti (navođenjem ARN uloge ili spoljnog naloga), a uloga koja pokušava da je preuzme drugu MORA imati dozvole da je preuzme (u ovom slučaju ovo nije opcija čak i ako preuzeta 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:

pageAWS - STS Privesc

Post Exploitation

pageAWS - STS Post Exploitation

Persistence

pageAWS - IAM Persistence

References

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