AWS - Cloudformation Privesc
cloudformation
Pour plus d'informations sur cloudformation, consultez :
iam:PassRole
, cloudformation:CreateStack
iam:PassRole
, cloudformation:CreateStack
Un attaquant avec ces permissions peut escalader les 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 permissions d'un rôle spécifié :
Dans la page suivante, vous avez un exemple d'exploitation avec la permission supplémentaire cloudformation:DescribeStacks
:
Impact potentiel : Privesc au 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 stack 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 : Privesc au 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 déjà attachés. Consultez la section précédente pour un exemple d'exploitation (il suffit de ne pas indiquer de 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 : Privesc au 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 permissions pour passer un rôle et créer & exécuter un ChangeSet peut créer/mettre à jour une nouvelle pile cloudformation et abuser des rôles de service cloudformation tout comme avec CreateStack ou UpdateStack.
L'exploitation suivante est une variation de la CreateStack one utilisant les permissions ChangeSet pour créer une pile.
La permission cloudformation:SetStackPolicy
peut être utilisée pour vous donner des permissions ChangeSet
sur une pile et effectuer l'attaque.
Impact potentiel : Privesc aux rôles de service cloudformation.
(cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)C'est comme la méthode précédente sans passer les rôles IAM, donc vous pouvez simplement abuser de ceux déjà attachés, il suffit de modifier le paramètre :
Impact potentiel : Privesc au 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 permissions pour créer/mette à jour des StackSets afin d'abuser des rôles cloudformation arbitraires.
Impact potentiel : Privesc aux rôles de service cloudformation.
cloudformation:UpdateStackSet
cloudformation:UpdateStackSet
Un attaquant pourrait abuser de cette permission sans la permission passRole pour mettre à jour des StackSets afin d'abuser des rôles cloudformation attachés.
Impact potentiel : Privesc aux rôles cloudformation attachés.
Références
Last updated