GCP - Sourcerepos Privesc
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Source Repositories
For more information about Source Repositories check:
GCP - Source Repositories Enum
source.repos.get
この権限があれば、リポジトリをローカルにダウンロードできます:
Clone source repository
```bash gcloud source repos clonesource.repos.update
この権限を持つプリンシパルは、gcloud source repos clone <repo> でクローンした repository 内にコードを書き込むことができます。 ただし、この権限はカスタムロールに付与できないため、次のような既定のロールを通じて付与される必要があります:
- Owner
- Editor
- Source Repository Administrator (
roles/source.admin) - Source Repository Writer (
roles/source.writer)
実際に書き込むには、通常どおり git push を実行します。
source.repos.setIamPolicy
この権限があれば、攻撃者は自身に前述の権限を付与することができます。
シークレットへのアクセス
攻撃者がトークンが保存されている シークレットにアクセスできる 場合、それらを盗むことができます。シークレットへのアクセス方法の詳細は次を参照してください:
SSH keys を追加
ウェブコンソールから Source Repository プロジェクトに ssh keys を追加する ことが可能です。これは /v1/sshKeys:add への POST リクエストを行い、https://source.cloud.google.com/user/ssh_keys で設定できます。
ssh キーを設定すると、次の方法で repo にアクセスできます:
SSH を使って repository をクローン
```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p/その後は通常どおり**git**コマンドを使用します。
手動クレデンシャル
Source Repositories にアクセスするための手動クレデンシャルを作成できます:
.png)
最初のリンクをクリックすると、https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3 に移動します。
これによりOauth authorization promptが表示され、Google Cloud Developmentへのアクセス許可が求められます。したがって、これを行うにはcredentials of the userまたはopen session in the browserのいずれかが必要です。
これにより、実行するためのbash script to executeが記載されたページに移動し、git cookie が**$HOME/.gitcookies** に設定されます。
.png)
スクリプトを実行すると、その後 git clone、push… が使用できるようになります。
source.repos.updateProjectConfig
この権限があれば、Source Repositories のデフォルト保護(Private Keys を含むコードのアップロードを制限する機能)を無効化することが可能です:
pushblock を無効化し、pub/sub の構成を変更する
```bash gcloud source project-configs update --disable-pushblock ``` 別の pub/sub topic を設定することも、完全に無効化することもできます: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
HackTricks Cloud

