Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md

1.6 KiB

AWS - KMS Persistence

{{#include ../../../banners/hacktricks-training.md}}

KMS

Para más información, consulta:

{{#ref}} ../aws-services/aws-kms-enum.md {{#endref}}

Conceder acceso a través de políticas de KMS

Un atacante podría usar el permiso kms:PutKeyPolicy para dar acceso a una clave a un usuario bajo su control o incluso a una cuenta externa. Consulta la página de KMS Privesc para más información.

Grant eterno

Los grants son otra forma de otorgar a un principal algunos permisos sobre una clave específica. Es posible dar un grant que permita a un usuario crear grants. Además, un usuario puede tener varios grants (incluso idénticos) sobre la misma clave.

Por lo tanto, es posible que un usuario tenga 10 grants con todos los permisos. El atacante debería monitorear esto constantemente. Y si en algún momento se elimina 1 grant, se deberían generar otros 10.

(Estamos usando 10 y no 2 para poder detectar que se eliminó un grant mientras el usuario aún tiene algún grant)

# To generate grants, generate 10 like this one
aws kms create-grant \
--key-id <key-id> \
--grantee-principal <user_arn> \
--operations "CreateGrant" "Decrypt"

# To monitor grants
aws kms list-grants --key-id <key-id>

Note

Un grant puede otorgar permisos solo desde esto: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations

{{#include ../../../banners/hacktricks-training.md}}