Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md

4.2 KiB

AWS - Secrets Manager Post Exploitation

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

Secrets Manager

Pour plus d'informations, consultez :

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

Lire Secrets

Les secrets eux-mêmes sont des informations sensibles, consultez la page privesc pour apprendre comment les lire.

DoS — Changer la valeur du Secret

En changeant la valeur du Secret, vous pourriez DoS tous les systèmes qui dépendent de cette valeur.

Warning

Notez que les valeurs précédentes sont également stockées, il est donc facile de revenir à la valeur précédente.

# Requires permission secretsmanager:PutSecretValue
aws secretsmanager put-secret-value \
--secret-id MyTestSecret \
--secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"

DoS Change KMS key

Si l'attaquant dispose de l'autorisation secretsmanager:UpdateSecret, il peut configurer le secret pour qu'il utilise une KMS key appartenant à l'attaquant. Cette clé est initialement configurée de manière à ce que n'importe qui puisse y accéder et l'utiliser, ce qui rend possible la mise à jour du secret avec la nouvelle clé. Si la clé n'était pas accessible, le secret n'aurait pas pu être mis à jour.

Après avoir changé la KMS key du secret, l'attaquant modifie la configuration de sa clé pour que lui seul puisse y accéder. Ainsi, dans les versions ultérieures du secret, celui-ci sera chiffré avec la nouvelle clé et, comme personne n'y aura accès, la possibilité de récupérer le secret sera perdue.

Il est important de noter que cette inaccessibilité ne se produira que sur les versions suivantes, après que le contenu du secret ait changé, car la version actuelle est toujours chiffrée avec la KMS key d'origine.

aws secretsmanager update-secret \
--secret-id MyTestSecret \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

DoS Suppression d'un secret

Le nombre minimum de jours pour supprimer un secret est de 7

aws secretsmanager delete-secret \
--secret-id MyTestSecret \
--recovery-window-in-days 7

secretsmanager:RestoreSecret

Il est possible de restaurer un secret, ce qui permet de récupérer des secrets programmés pour suppression, puisque la période minimale de suppression des secrets est de 7 jours et la maximale de 30 jours. Avec la permission secretsmanager:GetSecretValue, cela permet d'en extraire le contenu.

Pour récupérer un secret en cours de suppression, vous pouvez utiliser la commande suivante :

aws secretsmanager restore-secret \
--secret-id <Secret_Name>

secretsmanager:DeleteResourcePolicy

Cette action permet de supprimer la politique de la ressource qui contrôle qui peut accéder à un secret. Cela pourrait conduire à un DoS si la politique de la ressource était configurée pour autoriser l'accès à un ensemble spécifique d'utilisateurs.

Pour supprimer la politique de la ressource:

aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>

secretsmanager:UpdateSecretVersionStage

Les états d'un secret servent à gérer les versions d'un secret. AWSCURRENT marque la version active utilisée par les applications, AWSPREVIOUS conserve la version précédente pour pouvoir revenir en arrière si nécessaire, et AWSPENDING est utilisé dans le processus de rotation pour préparer et valider une nouvelle version avant de la rendre courante.

Les applications lisent toujours la version portant le label AWSCURRENT. Si quelqu'un déplace cette étiquette vers la mauvaise version, les applications utiliseront des identifiants invalides et risquent d'échouer.

AWSPREVIOUS n'est pas utilisé automatiquement. Cependant, si AWSCURRENT est supprimé ou réattribué de manière incorrecte, il peut sembler que tout fonctionne encore avec la version précédente.

aws secretsmanager update-secret-version-stage \
--secret-id <your-secret-name-or-arn> \
--version-stage AWSCURRENT \
--move-to-version-id <target-version-id> \
--remove-from-version-id <previous-version-id>

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