# GCP - Secrets Manager Enum

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

## Secret Manager

Google [**Secret Manager**](https://cloud.google.com/solutions/secrets-management/) est une solution de type coffre-fort pour stocker des mots de passe, des clés API, des certificats, des fichiers (max 64 Ko) et d'autres données sensibles.

Un secret peut avoir **différentes versions stockant différentes données**.

Les secrets sont par **défaut** **chiffrés à l'aide d'une clé gérée par Google**, mais il est **possible de sélectionner une clé de KMS** à utiliser pour chiffrer le secret.

Concernant la **rotation**, il est possible de configurer **des messages à envoyer à pub-sub tous les nombres de jours**, le code écoutant ces messages peut **faire tourner le secret**.

Il est possible de configurer un jour pour **la suppression automatique**, lorsque le jour indiqué est **atteint**, le **secret sera automatiquement supprimé**.

### Enumeration
```bash
# First, list the entries
gcloud secrets list
gcloud secrets get-iam-policy <secret_name>

# Then, pull the clear-text of any version of any secret
gcloud secrets versions list <secret_name>
gcloud secrets versions access 1 --secret="<secret_name>"
```
### Escalade de privilèges

Dans la page suivante, vous pouvez vérifier comment **abuser des permissions de secretmanager pour escalader les privilèges.**

{{#ref}}
../gcp-privilege-escalation/gcp-secretmanager-privesc.md
{{#endref}}

### Post-exploitation

{{#ref}}
../gcp-post-exploitation/gcp-secretmanager-post-exploitation.md
{{#endref}}

### Persistance

{{#ref}}
../gcp-persistence/gcp-secret-manager-persistence.md
{{#endref}}

### Mauvaise utilisation de la rotation

Un attaquant pourrait mettre à jour le secret pour **arrêter les rotations** (afin qu'il ne soit pas modifié), ou **rendre les rotations beaucoup moins fréquentes** (afin que le secret ne soit pas modifié) ou **publier le message de rotation sur un autre pub/sub**, ou modifier le code de rotation exécuté (cela se produit dans un service différent, probablement dans une Cloud Function, donc l'attaquant aura besoin d'un accès privilégié sur la Cloud Function ou tout autre service)

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