AWS - STS Privesc

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

STS

sts:AssumeRole

Kila jukumu linaundwa na sera ya uaminifu wa jukumu, sera hii inaonyesha nani anaweza kudai jukumu lililoundwa. Ikiwa jukumu kutoka akaunti ile ile inasema kuwa akaunti inaweza kulidai, inamaanisha kuwa akaunti hiyo itaweza kupata jukumu (na kwa uwezekano wa privesc).

Kwa mfano, sera ya uaminifu ya jukumu ifuatayo inaonyesha kuwa yeyote anaweza kulidai, kwa hivyo mtumiaji yeyote ataweza kufanya privesc kwa ruhusa zinazohusiana na jukumu hilo.

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

Unaweza kujifanya kuwa jukumu unapokimbia:

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

Athari Inayowezekana: Privesc kwa jukumu.

Tafadhali elewa kwamba katika kesi hii idhini sts:AssumeRole inahitaji kuwa imeonyeshwa katika jukumu la kutumia na sio katika sera inayomilikiwa na mshambuliaji. Isipokuwa, ili kudai jukumu kutoka kwa akaunti tofauti akaunti ya mshambuliaji pia inahitaji kuwa na sts:AssumeRole juu ya jukumu hilo.

sts:GetFederationToken

Kwa idhini hii, ni rahisi kuzalisha vibali vya kujifanya kuwa mtumiaji yeyote:

aws sts get-federation-token --name <username>

Hivi ndivyo idhini hii inaweza kutolewa kwa usalama bila kumpa mtu mwingine uwezo wa kujifanya kuwa mtumiaji mwingine:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "sts:GetFederationToken",
"Resource": "arn:aws:sts::947247140022:federated-user/${aws:username}"
}
]
}

sts:AssumeRoleWithSAML

Sera ya uaminifu na jukumu hili inaruhusu watumiaji waliothibitishwa kupitia SAML kupata upatikanaji wa kujifanya kuwa jukumu.

Mfano wa sera ya uaminifu na idhini hii ni:

{
"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"
}
}
}
]
}

Kuzalisha sifa za kujifanya kuwa jukumu kwa ujumla unaweza kutumia kitu kama:

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

Lakini watoa huduma wanaweza kuwa na zana zao wenyewe za kufanya hili kuwa rahisi, kama onelogin-aws-assume-role:

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

Athari Inayowezekana: Privesc kwa jukumu.

sts:AssumeRoleWithWebIdentity

Ruhusa hii inatoa idhini ya kupata seti ya siri za muda kwa watumiaji ambao wamehakikiwa katika programu ya simu, wavuti, EKS... na mtoa huduma ya kitambulisho cha wavuti. Jifunze zaidi hapa.

Kwa mfano, ikiwa akaunti ya huduma ya EKS inapaswa kuweza kujifanya kuwa jukumu la IAM, itakuwa na ishara katika /var/run/secrets/eks.amazonaws.com/serviceaccount/token na inaweza kudai jukumu na kupata siri kufanya kitu kama:

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

Matumizi ya Ufikiaji wa Shirikisho

AWS - Federation Abuse
Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated