# AWS - S3 Persistence

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

## S3

Pour plus d'informations, consultez :

{{#ref}}
../aws-services/aws-s3-athena-and-glacier-enum.md
{{#endref}}

### KMS Client-Side Encryption

Lorsque le processus de chiffrement est terminé, l'utilisateur utilisera l'API KMS pour générer une nouvelle clé (`aws kms generate-data-key`) et il **stockera la clé chiffrée générée à l'intérieur des métadonnées** du fichier ([exemple de code python](https://aioboto3.readthedocs.io/en/latest/cse.html#how-it-works-kms-managed-keys)) afin que lors du déchiffrement, il puisse la déchiffrer à nouveau avec KMS :

<figure><img src="../../../images/image (226).png" alt=""><figcaption></figcaption></figure>

Par conséquent, un attaquant pourrait obtenir cette clé à partir des métadonnées et déchiffrer avec KMS (`aws kms decrypt`) pour obtenir la clé utilisée pour chiffrer les informations. De cette manière, l'attaquant aura la clé de chiffrement et si cette clé est réutilisée pour chiffrer d'autres fichiers, il pourra l'utiliser.

### Using S3 ACLs

Bien que les ACL des buckets soient généralement désactivées, un attaquant ayant suffisamment de privilèges pourrait en abuser (si elles sont activées ou si l'attaquant peut les activer) pour conserver l'accès au bucket S3.

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