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 hilo (na kwa uwezekano wa privesc).

Kwa mfano, sera ya uaminifu ya jukumu ifuatayo inaonyesha kuwa yeyote anaweza kulidai, 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 linaloendeshwa:

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

Matokeo Yanayowezekana: Privesc kwa jukumu.

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

sts:AssumeRoleWithSAML

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

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 kwa 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

pageAWS - Federation Abuse
Jifunze kuhusu udukuzi wa AWS kutoka mwanzo hadi mtaalamu na htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated