AWS - KMS Privesc
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Para más información sobre KMS consulta:
AWS - KMS Enumkms: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 cualquier persona:
policy.json:
kms:CreateGrant
Permite a un principal usar una clave KMS:
Una concesión 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 tardar un par de minutos para que KMS permita al usuario usar la clave después de que se haya generado la concesión. Una vez que haya pasado ese tiempo, el principal puede usar la clave KMS sin necesidad de especificar nada. Sin embargo, si es necesario usar la concesión de inmediato use un token de concesión (ver el siguiente código). Para más información lea esto.
Nota que es posible listar los permisos de las claves con:
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.
Así que, un atacante podría abusar de esto para obtener privilegios de escalación de su acceso a la clave y usarla.
kms:Decrypt
Este permiso permite usar una clave para descifrar información. Para más información, consulta:
AWS - KMS Post ExploitationAprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)