AWS - Cloudformation Privesc
cloudformation
Pour plus d'informations sur Cloudformation, consultez :
iam:PassRole
, cloudformation:CreateStack
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é :
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
)
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:
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
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
)
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.
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
)
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 :
Impact potentiel : Privesc vers le rôle de service cloudformation déjà attaché.
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)
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
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
Dernière mise à jour