AWS - STS Enum

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

STS

AWS Security Token Service (STS) is primêr ontwerp om tydelike, beperkte-voorreggelde geloofsbriewe uit te reik. Hierdie geloofsbriewe kan aangevra word vir AWS Identity and Access Management (IAM)-gebruikers of vir geauthentiseerde gebruikers (gefedereerde gebruikers).

Gegewe dat STS se doel is om geloofsbriewe vir identiteitsverpersoonliking uit te reik, is die diens van onskatbare waarde vir voorregopgradering en volharding, selfs al mag dit nie 'n wye reeks opsies hê nie.

Veronderstel Rol Verpersoonliking

Die aksie AssumeRole wat deur AWS STS voorsien word, is van kritieke belang omdat dit 'n hoof toelaat om geloofsbriewe vir 'n ander hoof te bekom, wat hulle in wese verpersoonlik. Met die aanroeping reageer dit met 'n toegangssleutel-ID, 'n geheime sleutel, en 'n sessietoken wat ooreenstem met die gespesifiseerde ARN.

Vir Penetratietoetsers of Rooi Spanlede is hierdie tegniek instrumenteel vir voorregopgradering (soos uitgewys hier). Dit is egter die moeite werd om te let dat hierdie tegniek nogal opvallend is en 'n aanvaller dalk nie onverwags vang nie.

Veronderstel Rol Logika

Om 'n rol in dieselfde rekening te veronderstel as die rol wat veronderstel word spesifiek 'n rol ARN toelaat soos in:

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

Die rol priv-role in hierdie geval, hoef nie spesifiek toegelaat te word om daardie rol aan te neem (met daardie toestemming is genoeg).

Maar, as 'n rol 'n rekening toelaat om dit aan te neem, soos in:

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

Die rol wat probeer aanneem sal 'n spesifieke sts:AssumeRole toestemming oor daardie rol nodig hê om dit aan te neem.

As jy probeer om 'n rol van 'n ander rekening aan te neem, moet die aangenome rol dit toelaat (wat die rol ARN of die eksterne rekening aandui), en die rol wat probeer aanneem die ander een MOET toestemming hê om dit aan te neem** (in hierdie geval is dit nie opsioneel nie, selfs al dui die aangenome rol 'n ARN aan).

Opsomming

# 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

Op die volgende bladsy kan jy sien hoe om STS-toestemmings te misbruik om voorregte te eskaleer:

pageAWS - STS Privesc

Post Exploitation

pageAWS - STS Post Exploitation

Volharding

pageAWS - IAM Persistence

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated