AWS - STS Privesc
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
STS
sts:AssumeRole
Kila jukumu linaumbwa na sera ya kuamini jukumu, sera hii inaonyesha nani anaweza kuchukua jukumu lililoundwa. Ikiwa jukumu kutoka akaunti ile ile linasema kwamba akaunti inaweza kulichukua, inamaanisha kwamba akaunti hiyo itakuwa na uwezo wa kufikia jukumu hilo (na kwa uwezekano privesc).
Kwa mfano, sera ifuatayo ya kuamini jukumu inaonyesha kwamba mtu yeyote anaweza kulichukua, hivyo basi mtumiaji yeyote ataweza privesc kwa ruhusa zinazohusiana na jukumu hilo.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "sts:AssumeRole"
}
]
}
Unaweza kujifanya kuwa jukumu linalotembea:
aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
Madhara Yanayoweza Kutokea: Privesc kwa jukumu.
caution
Kumbuka kwamba katika kesi hii ruhusa sts:AssumeRole
inahitaji kuwa imeonyeshwa katika jukumu la kutumia vibaya na sio katika sera inayomilikiwa na mshambuliaji.
Kwa ubaguzi mmoja, ili kuchukua jukumu kutoka akaunti tofauti akaunti ya mshambuliaji pia inahitaji kuwa na sts:AssumeRole
juu ya jukumu.
sts:GetFederationToken
Kwa ruhusa hii inawezekana kuzalisha akidi za kujifanya kuwa mtumiaji yeyote:
aws sts get-federation-token --name <username>
Hii ndiyo njia ambayo ruhusa hii inaweza kutolewa kwa usalama bila kutoa ufikiaji wa kujifanya kuwa watumiaji wengine:
{
"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 kuaminiana na jukumu hili inatoa watumiaji walioidhinishwa kupitia SAML ufikiaji wa kujifanya kuwa jukumu hilo.
Mfano wa sera ya kuaminiana yenye ruhusa 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"
}
}
}
]
}
Ili kuunda akreditif za kujifanya kuwa na 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 za kufanya hii iwe rahisi, kama onelogin-aws-assume-role:
onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600
Madhara Yanayoweza Kutokea: Privesc kwa jukumu.
sts:AssumeRoleWithWebIdentity
Ruhusa hii inatoa ruhusa ya kupata seti ya akreditivu za usalama za muda kwa watumiaji ambao wamethibitishwa katika programu za simu, wavuti, EKS... na mtoa huduma wa utambulisho wa wavuti. Jifunze zaidi hapa.
Kwa mfano, ikiwa akaunti ya huduma ya EKS inapaswa kuwa na uwezo wa kujifanya kama jukumu la IAM, itakuwa na tokeni katika /var/run/secrets/eks.amazonaws.com/serviceaccount/token
na inaweza kuchukua jukumu na kupata akreditivu ikifanya 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
Unyanyasaji wa Shirikisho
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.