GCP - Cloudbuild Privesc

htARTE (HackTricks AWS Red Team Expert)を通じてゼロからヒーローまでAWSハッキングを学びましょう!

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

cloudbuild

Cloud Buildに関する詳細情報は次を参照してください:

pageGCP - Cloud Build Enum

cloudbuild.builds.create

この権限を持つと、クラウドビルドを送信できます。クラウドビルドマシンには、デフォルトでクラウドビルドサービスアカウントのトークンがファイルシステムにあります: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com。ただし、クラウドビルド構成でプロジェクト内の任意のサービスアカウントを指定できます。 したがって、マシンにトークンをサーバーに外部移行させるか、マシン内でリバースシェルを取得してトークンを取得することができます(トークンを含むファイルは変更される可能性があります)。

元のエクスプロイトスクリプトはこちらのGitHubにあります(ただし、トークンを取得する場所が私には機能しませんでした)。したがって、脆弱性環境の作成、エクスプロイト、クリーニングを自動化するスクリプトと、クラウドビルドマシン内でリバースシェルを取得してここから盗むためのPythonスクリプト(コード内で他のサービスアカウントを指定する方法が記載されています)を確認してください。

詳細な説明については、https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/を訪問してください。

cloudbuild.builds.update

おそらくこの権限を持つと、クラウドビルドを更新し、以前の権限で行われたようにサービスアカウントトークンを盗むことができるかもしれません(ただし、残念ながら、この執筆時点ではそのAPIを呼び出す方法が見つかりませんでした)。

TODO

cloudbuild.repositories.accessReadToken

この権限を持つユーザーは、リポジトリにアクセスするために使用される読み取りアクセストークンを取得できます:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>/repositories/<repo-id>:accessReadToken"
htARTE(HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!

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

最終更新