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 hoofsaaklik ontwerp om tydelike, beperkte-voorreggelde kredensiale uit te reik. Hierdie kredensiale kan aangevra word vir AWS Identity and Access Management (IAM)-gebruikers of vir geïdentifiseerde gebruikers (gefedereerde gebruikers).

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

Veronderstel Rol Verpersoonliking

Die aksie AssumeRole wat deur AWS STS voorsien word, is van kritieke belang omdat dit 'n hoofsaak toelaat om kredensiale vir 'n ander hoofsaak 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 uiteengesit hier). Dit is egter die moeite werd om te let dat hierdie tegniek nogal opvallend is en 'n aanvaller dalk nie onverhoeds 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 (die toestemming is genoeg).

Nietemin, 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 toestemmings hê om dit aan te neem (in hierdie geval is dit nie opsioneel selfs al stel die aangenome rol 'n ARN spesifiek voor).

Enumerasie

# 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:

AWS - STS Privesc

Post Exploitation

AWS - STS Post Exploitation

Volharding

AWS - STS Persistence

Verwysings

Leer AWS-hacking van niks tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated