GCP - Sourcerepos Privesc

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

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

ソースリポジトリ

ソースリポジトリに関する詳細は次を参照してください:

pageGCP - Source Repositories Enum

source.repos.get

この権限を持つと、リポジトリをローカルにダウンロードできます:

gcloud source repos clone <repo-name> --project=<project-uniq-name>

source.repos.update

この権限を持つ主体は、gcloud source repos clone <repo>でクローンされたリポジトリ内にコードを書くことができます。ただし、この権限はカスタムロールには付与できないため、次のような事前定義されたロールを介して与える必要があります:

  • Owner

  • Editor

  • Source Repository Administrator (roles/source.admin)

  • Source Repository Writer (roles/source.writer)

書き込むには通常の git push を実行します。

source.repos.setIamPolicy

この権限を持つ攻撃者は、前述の権限を自分自身に付与することができます。

シークレットアクセス

攻撃者がトークンが格納されているシークレットにアクセス権を持っている場合、それらを盗むことができます。シークレットにアクセスする方法の詳細については、次を確認してください:

pageGCP - Secretmanager Privesc

SSHキーの追加

Webコンソールで SSHキーをソースリポジトリプロジェクトに追加 することが可能です。これは /v1/sshKeys:add にポストリクエストを行い、https://source.cloud.google.com/user/ssh_keys で構成できます。

SSHキーが設定されると、次のようにリポジトリにアクセスできます:

git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>

そして、git コマンドを通常通りに使用します。

手動での資格情報

ソースリポジトリにアクセスするための手動資格情報を作成することが可能です:

最初のリンクをクリックすると、https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3 にリダイレクトされます。

これにより、Google Cloud Development へのアクセスを許可する Oauth 認証プロンプト が表示されます。したがって、これには ユーザーの資格情報 または ブラウザーでのオープンセッション が必要です。

これにより、$HOME/.gitcookies に git クッキーを設定する bash スクリプトが含まれたページ に移動します。

スクリプトを実行すると、git clone、push... などを使用できるようになります。

source.repos.updateProjectConfig

この権限を持つと、ソースリポジトリのデフォルト保護を無効にして、プライベートキーを含むコードをアップロードしないようにすることが可能です。

gcloud source project-configs update --disable-pushblock

あなたは異なるパブ/サブトピックを設定したり、それを完全に無効にすることもできます:

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

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

最終更新