# AWS - KMS Persistence {{#include ../../../banners/hacktricks-training.md}} ## KMS Per ulteriori informazioni controlla: {{#ref}} ../aws-services/aws-kms-enum.md {{#endref}} ### Concedere accesso tramite le politiche KMS Un attaccante potrebbe utilizzare il permesso **`kms:PutKeyPolicy`** per **dare accesso** a una chiave a un utente sotto il suo controllo o anche a un account esterno. Controlla la [**pagina KMS Privesc**](../aws-privilege-escalation/aws-kms-privesc.md) per ulteriori informazioni. ### Grant eterno I grant sono un altro modo per dare a un principale alcuni permessi su una chiave specifica. È possibile concedere un grant che consente a un utente di creare grant. Inoltre, un utente può avere diversi grant (anche identici) sulla stessa chiave. Pertanto, è possibile per un utente avere 10 grant con tutti i permessi. L'attaccante dovrebbe monitorare questo costantemente. E se a un certo punto 1 grant viene rimosso, dovrebbero essere generati altri 10. (Stiamo usando 10 e non 2 per poter rilevare che un grant è stato rimosso mentre l'utente ha ancora alcuni grant) ```bash # To generate grants, generate 10 like this one aws kms create-grant \ --key-id \ --grantee-principal \ --operations "CreateGrant" "Decrypt" # To monitor grants aws kms list-grants --key-id ``` > [!NOTE] > Un grant può concedere permessi solo da questo: [https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations) {{#include ../../../banners/hacktricks-training.md}}