AWS - KMS Privesc
Last updated
Last updated
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Pour plus d'infos sur KMS, consultez :
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
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 permette à l'utilisateur d'utiliser la clé après que le grant a été généré. 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 grant token (voir le code suivant). Pour plus d'infos, lisez ceci.
Notez qu'il est possible de lister les attributions de clés avec :
kms:CreateKey
, kms:ReplicateKey
Avec ces autorisations, il est possible de répliquer une clé KMS activée pour plusieurs régions dans une autre région avec une politique différente.
Ainsi, un attaquant pourrait en abuser pour obtenir un privesc de son accès à la clé et l'utiliser.
kms:Decrypt
Cette permission permet d'utiliser une clé pour déchiffrer certaines informations. Pour plus d'informations, consultez :
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)