GCP - Sourcerepos 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)
ソースリポジトリに関する詳細情報は以下を確認してください:
source.repos.get
この権限があれば、リポジトリをローカルにダウンロードすることが可能です:
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 RepositoryプロジェクトにSSHキーを追加することが可能です。これは**/v1/sshKeys:add
**にポストリクエストを行い、https://source.cloud.google.com/user/ssh_keysで設定できます。
SSHキーが設定されると、次のようにリポジトリにアクセスできます:
そして、通常通り**git
**コマンドを使用します。
Source Repositoriesにアクセスするための手動認証情報を作成することが可能です:
最初のリンクをクリックすると、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
この権限を持つことで、Private Keysを含むコードをアップロードしないようにSource Repositoriesのデフォルト保護を無効にすることが可能です:
別の pub/sub トピックを設定するか、完全に無効にすることもできます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)