GCP - Containers & GKE Enum
コンテナー
GCPのコンテナーでは、GCPが提供するほとんどのコンテナーベースのサービスを見つけることができます。ここでは、最も一般的なものを列挙する方法を見ることができます。
特権昇格
次のページでは、権限を乱用して特権を昇格する方法を確認できます:
GCP - Container Privescノードプール
これらは、kubernetesクラスタを形成するマシン(ノード)のプールです。
Kubernetes
Kubernetesについての情報は、このページを参照してください:
Kubernetes Pentestingまず、プロジェクトにKubernetesクラスターが存在するかどうかを確認できます。
もしクラスターを持っている場合、gcloud
を使用して自動的に~/.kube/config
ファイルを構成することができます。このファイルは、K8sクラスターとやり取りするためのネイティブCLIであるkubectlを使用する際に認証されるために使用されます。次のコマンドを試してみてください。
次に、生成された資格情報を確認するために ~/.kube/config
ファイルを見てください。このファイルは、アクティブな gcloud
セッションで使用されている同じアイデンティティに基づいてアクセス トークンを自動的に更新するために使用されます。もちろん、これには適切な権限が必要です。
これが設定されたら、次のコマンドを試してクラスター構成を取得できます。
TLSブートストラップ特権昇格
最初にこの特権昇格テクニックは、GKEクラスタ内での特権昇格を可能にし、攻撃者が完全に侵害することができました。
これは、GKEがメタデータでTLSブートストラップ資格情報を提供しているためで、これはポッドを侵害するだけで誰でもアクセスできます。
使用されたテクニックは、次の投稿で説明されています:
そして、このツールがプロセスを自動化するために作成されました:https://github.com/4ARMED/kubeletmein
ただし、このテクニックはメタデータ資格情報を使用して、新しいノードのためにCSR(証明書署名要求)を生成し、これが自動的に承認される可能性があるという事実を悪用していました。 私のテストでは、これらのリクエストがもはや自動的に承認されないことを確認したため、このテクニックがまだ有効かどうかはわかりません。
Kubelet API内のシークレット
この投稿で、GKE内のポッドからアクセス可能なKubelet APIアドレスが発見され、実行中のポッドの詳細が提供されました。
たとえAPIがリソースの変更を許可しなくても、レスポンス内に機密情報を見つけることが可能です。エンドポイント/podsはKiterunnerを使用して見つかりました。
Last updated