SSM Parameter Store conserve la configuration et les secrets sous forme de paramètres nommés, les valeurs SecureString chiffrées par KMS et le reste en clair. ssm:GetParameter avec --with-decryption (plus kms:Decrypt sur la clé) renvoie le texte en clair, de sorte qu'applications et attaquants le lisent de la même façon.
Lister et lire#
aws ssm describe-parameters --query 'Parameters[].Name' --output text
aws ssm get-parameter --name <name> --with-decryption \
--query Parameter.Value --output text
# recurse a path prefix, decrypting as you go
aws ssm get-parameters-by-path --path / --recursive --with-decryption \
--query 'Parameters[].[Name,Value]' --output text
Notes d'exploitation#
--with-decryptionnécessitekms:Decryptsur la clé sous-jacente en plus de la lecture SSM ; un refus à ce niveau signifie que vous détenez SSM mais pas l'autorisation KMS, voir KMS.- Les paramètres en clair (
String) ne requièrent aucune permission KMS et contiennent souvent tout de même des identifiants déposés là par négligence. get-parameters-by-path --recursivesur/est le balayage complet le plus rapide quand la nomenclature est hiérarchique.
Outils#
- AWS CLI (
ssm get-parameters-by-path --with-decryption). - Pacu (
secrets__enum) : extraction en masse.