GCP - Run Privesc
Cloud Run
Cloud Runに関する詳細情報は、以下をチェックしてください:
run.services.create
、iam.serviceAccounts.actAs
、run.routes.invoke
run.services.create
、iam.serviceAccounts.actAs
、run.routes.invoke
これらの権限を持つ攻撃者は、任意のコードを実行するランサービスを作成(任意のDockerコンテナ)、それにサービスアカウントをアタッチし、コードを使用してメタデータからサービスアカウントトークンを外部に送信できます。
この方法の悪用スクリプトはこちらで見つけることができ、Dockerイメージはこちらで見つけることができます。
gcloud run deploy
を使用する場合、単にサービスを作成するだけでなく、update
権限が必要です。こちらの例をチェックしてください。
run.services.update
、iam.serviceAccounts.actAs
run.services.update
、iam.serviceAccounts.actAs
前述のものと同様ですが、サービスを更新します。
run.services.setIamPolicy
run.services.setIamPolicy
クラウドRunに対して以前の権限を付与します。
run.jobs.create
, run.jobs.run
, (run.jobs.get
)
run.jobs.create
, run.jobs.run
, (run.jobs.get
)リバースシェルを使用してジョブを起動し、コマンドで指定されたサービスアカウントを盗みます。こちらのエクスプロイトを見つけることができます。
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)前述のものと同様に、ジョブを更新し、SAを更新し、コマンドを実行することが可能です。
run.jobs.setIamPolicy
run.jobs.setIamPolicy
Cloud Jobsに対して前述の権限を付与します。
参考文献
最終更新