# GCP - Secrets Manager Enum

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

## Secret Manager

Google [**Secret Manager**](https://cloud.google.com/solutions/secrets-management/) は、パスワード、API キー、証明書、ファイル (最大 64KB) およびその他の機密データを保存するための金庫のようなソリューションです。

シークレットは **異なるデータを保存する異なるバージョン**を持つことができます。

シークレットは **デフォルトで Google 管理のキーを使用して暗号化**されていますが、シークレットを暗号化するために **KMS からキーを選択することも可能**です。

**ローテーション**に関しては、**日数ごとに pub-sub に送信されるメッセージを構成することが可能**で、そのメッセージをリッスンするコードが **シークレットをローテート**できます。

**自動削除**のための日を設定することが可能で、指定された日が **到達すると、シークレットは自動的に削除**されます。

### 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>"
```
### 権限昇格

次のページでは、**secretmanagerの権限を悪用して権限を昇格させる方法**を確認できます。

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

### ポストエクスプロイト

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

### 永続性

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

### ローテーションの悪用

攻撃者は、**ローテーションを停止する**ためにシークレットを更新したり（変更されないように）、**ローテーションをはるかに少なくする**（シークレットが変更されないように）ことができます。または、**ローテーションメッセージを別のpub/subに公開する**、または実行されるローテーションコードを変更することができます（これは別のサービスで発生し、恐らくCloud Function内で、攻撃者はCloud Functionまたは他のサービスに対して特権アクセスを必要とします）。

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