AWS - STS Privesc

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

Ander maniere om HackTricks te ondersteun:

STS

sts:AssumeRole

Elke rol word geskep met 'n rolvertrouensbeleid, hierdie beleid dui aan wie die geskepte rol kan aanneem. As 'n rol van dieselfde rekening sê dat 'n rekening dit kan aanneem, beteken dit dat die rekening toegang sal hê tot die rol (en moontlik privesc).

Byvoorbeeld, die volgende rolvertrouensbeleid dui aan dat enigeen dit kan aanneem, dus sal enige gebruiker in staat wees om te privesc na die toestemmings wat met daardie rol geassosieer word.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "sts:AssumeRole"
}
]
}

Jy kan 'n rol naboots deur die volgende uit te voer:

aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname

Potensiële Impak: Privesc na die rol.

Let daarop dat in hierdie geval die toestemming sts:AssumeRole in die rol aangedui moet word om misbruik te maak en nie in 'n beleid wat aan die aanvaller behoort nie. Met een uitsondering, om 'n rol van 'n ander rekening aan te neem, moet die aanvallerrekening ook die sts:AssumeRole oor die rol hê.

sts:AssumeRoleWithSAML

'n Vertrouensbeleid met hierdie rol gee gebruikers wat geïdentifiseer is via SAML toegang om die rol te impersoneer.

'n Voorbeeld van 'n vertrouensbeleid met hierdie toestemming is:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "OneLogin",
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::290594632123:saml-provider/OneLogin"
},
"Action": "sts:AssumeRoleWithSAML",
"Condition": {
"StringEquals": {
"SAML:aud": "https://signin.aws.amazon.com/saml"
}
}
}
]
}

Om legitimasie te genereer om die rol in die algemeen te verpersoonlik, kan jy iets soos die volgende gebruik:

aws sts  assume-role-with-saml --role-arn <value> --principal-arn <value>

Maar verskaffers kan hul eie gereedskap hê om dit makliker te maak, soos onelogin-aws-assume-role:

onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600

Potensiële Impak: Privesc na die rol.

sts:AssumeRoleWithWebIdentity

Hierdie toestemming gee toestemming om 'n stel tydelike sekuriteitslegitimasie te verkry vir gebruikers wat geïdentifiseer is in 'n mobiele, webtoepassing, EKS... met 'n web-identiteitsverskaffer. Leer meer hier.

Byvoorbeeld, as 'n EKS-diensrekening in staat moet wees om 'n IAM-rol te impersoneer, sal dit 'n token hê in /var/run/secrets/eks.amazonaws.com/serviceaccount/token en kan die rol aanneem en legitimasie verkry deur iets soos die volgende te doen:

aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/<role_name> --role-session-name something --web-identity-token file:///var/run/secrets/eks.amazonaws.com/serviceaccount/token
# The role name can be found in the metadata of the configuration of the pod

Federasie-misbruik

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

Ander maniere om HackTricks te ondersteun:

Last updated