GCP - Cloudbuild Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cloud Buildに関する詳細情報は次を確認してください:
cloudbuild.builds.create
この権限を持つことで、クラウドビルドを提出することができます。cloudbuildマシンのファイルシステムには、デフォルトでcloudbuildサービスアカウントのトークンが含まれています:<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com
。ただし、cloudbuild構成内でプロジェクト内の任意のサービスアカウントを指定することができます。
したがって、マシンがトークンをあなたのサーバーに外部送信するか、その中でリバースシェルを取得してトークンを取得することができます(トークンを含むファイルは変更される可能性があります)。
元のエクスプロイトスクリプトはこちらのGitHubで見つけることができます(ただし、トークンを取得する場所は私には機能しませんでした)。したがって、脆弱な環境の作成、エクスプロイト、クリーンアップを自動化するスクリプトはこちらと、cloudbuildマシン内でリバースシェルを取得してそれを盗むためのPythonスクリプトはこちらを確認してください(コード内で他のサービスアカウントを指定する方法が見つかります)。
より詳細な説明については、https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/を訪問してください。
cloudbuild.builds.update
潜在的にこの権限を持つことで、クラウドビルドを更新し、サービスアカウントトークンを盗むことができるでしょう。これは前の権限で行われたように(ただし、残念ながらこの執筆時点ではそのAPIを呼び出す方法が見つかりませんでした)。
TODO
cloudbuild.repositories.accessReadToken
この権限を持つユーザーは、リポジトリにアクセスするために使用される読み取りアクセス トークンを取得できます:
cloudbuild.repositories.accessReadWriteToken
この権限を持つユーザーは、リポジトリにアクセスするために使用される読み取りおよび書き込みアクセストークンを取得できます:
cloudbuild.connections.fetchLinkableRepositories
この権限を使用すると、接続がアクセスできるリポジトリを取得できます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)