# AWS - KMS Persistensie

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

## KMS

Vir meer inligting, sien:

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

### Grant toegang via KMS-beleide

'n Aanvaller kan die toestemming **`kms:PutKeyPolicy`** gebruik om **toegang te gee** tot 'n sleutel aan 'n gebruiker onder sy beheer, of selfs aan 'n eksterne rekening. Check the [**KMS Privesc page**](../../aws-privilege-escalation/aws-kms-privesc/README.md) vir meer inligting.

### Eternal Grant

Grants is nog 'n manier om 'n principal sekere permissies oor 'n spesifieke sleutel te gee. Dit is moontlik om 'n grant te gee wat 'n gebruiker toelaat om grants te skep. Verder kan 'n gebruiker verskeie grants hê (selfs identiese) oor dieselfde sleutel.

Daarom is dit moontlik dat 'n gebruiker 10 grants met al die permissies het. Die aanvaller moet dit voortdurend monitor. En as op enige tydstip 1 grant verwyder word, behoort nog 10 gegenereer te word.

(Ons gebruik 10 en nie 2 nie sodat ons kan opspoor dat 'n grant verwyder is terwyl die gebruiker nog steeds 'n grant het)
```bash
# 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]
> 'n grant kan slegs toestemmings gee vanaf hierdie: [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}}
