AWS - KMS Privesc
KMS
Pour plus d'informations sur KMS, consultez :
AWS - KMS Enumkms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)
kms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)Avec ces permissions, il est possible de modifier les permissions d'accès à la clé afin qu'elle puisse être utilisée par d'autres comptes ou même par n'importe qui :
policy.json:
kms:CreateGrant
kms:CreateGrant
Il permet à un principal d'utiliser une clé KMS :
Un grant ne peut autoriser que certains types d'opérations : https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
Notez qu'il peut falloir quelques minutes pour que KMS autorise l'utilisateur à utiliser la clé après la génération du grant. Une fois ce délai écoulé, le principal peut utiliser la clé KMS sans avoir besoin de spécifier quoi que ce soit. Cependant, s'il est nécessaire d'utiliser le grant immédiatement utilisez un jeton de grant (voir le code suivant). Pour plus d'informations, lisez ceci.
Notez qu'il est possible de lister les autorisations des clés avec :
kms:CreateKey
, kms:ReplicateKey
kms:CreateKey
, kms:ReplicateKey
Avec ces permissions, il est possible de répliquer une clé KMS activée pour plusieurs régions dans une région différente avec une politique différente.
Ainsi, un attaquant pourrait en abuser pour obtenir une élévation de privilèges à son accès à la clé et l'utiliser
kms:Decrypt
kms:Decrypt
Cette permission permet d'utiliser une clé pour déchiffrer des informations. Pour plus d'informations, consultez :
AWS - KMS Post ExploitationLast updated