GCP - Sourcerepos Privesc
ソースリポジトリ
ソースリポジトリに関する詳細は次を参照してください:
pageGCP - Source Repositories Enumsource.repos.get
source.repos.get
この権限を持つと、リポジトリをローカルにダウンロードできます:
source.repos.update
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
source.repos.setIamPolicy
この権限を持つ攻撃者は、前述の権限を自分自身に付与することができます。
シークレットアクセス
攻撃者がトークンが格納されているシークレットにアクセス権を持っている場合、それらを盗むことができます。シークレットにアクセスする方法の詳細については、次を確認してください:
pageGCP - Secretmanager PrivescSSHキーの追加
Webコンソールで SSHキーをソースリポジトリプロジェクトに追加 することが可能です。これは /v1/sshKeys:add
にポストリクエストを行い、https://source.cloud.google.com/user/ssh_keys で構成できます。
SSHキーが設定されると、次のようにリポジトリにアクセスできます:
そして、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
source.repos.updateProjectConfig
この権限を持つと、ソースリポジトリのデフォルト保護を無効にして、プライベートキーを含むコードをアップロードしないようにすることが可能です。
あなたは異なるパブ/サブトピックを設定したり、それを完全に無効にすることもできます:
最終更新