AWS - KMS Privesc
KMS
Para más información sobre KMS revisa:
AWS - KMS Enumkms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)
kms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)Con estos permisos es posible modificar los permisos de acceso a la clave para que pueda ser utilizada por otras cuentas o incluso por cualquiera:
policy.json:
kms:CreateGrant
kms:CreateGrant
Permite a un principal usar una clave KMS:
Un grant solo puede permitir ciertos tipos de operaciones: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
Tenga en cuenta que puede tomar un par de minutos para que KMS permita al usuario usar la clave después de que se haya generado el grant. Una vez pasado ese tiempo, el principal puede usar la clave KMS sin necesidad de especificar nada. Sin embargo, si es necesario usar el grant de inmediato use un grant token (verifique el siguiente código). Para más información lea esto.
Nota que es posible listar la concesión de claves con:
kms:CreateKey
, kms:ReplicateKey
kms:CreateKey
, kms:ReplicateKey
Con estos permisos es posible replicar una clave KMS habilitada para múltiples regiones en una región diferente con una política diferente.
Entonces, un atacante podría abusar de esto para obtener privesc a su acceso a la clave y usarla
kms:Decrypt
kms:Decrypt
Este permiso permite usar una clave para descifrar alguna información. Para más información, consulta:
AWS - KMS Post ExploitationLast updated