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)
ソースリポジトリに関する詳細情報は以下を確認してください:
GCP - Source Repositories Enumsource.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
この権限を持つ攻撃者は、前述の権限を自分に付与することができます。
攻撃者がトークンが保存されているシークレットにアクセスできる場合、彼はそれらを盗むことができます。シークレットへのアクセス方法についての詳細は、次を確認してください:
GCP - Secretmanager PrivescウェブコンソールでSource RepositoryプロジェクトにSSHキーを追加することが可能です。これは**/v1/sshKeys:add
**へのPOSTリクエストを行い、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
この権限を持つことで、プライベートキーを含むコードをアップロードしないようにソースリポジトリのデフォルト保護を無効にすることが可能です:
別の pub/sub トピックを設定するか、完全に無効にすることもできます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)