GCP - Source Repositories Enum

支持 HackTricks

基本信息

Google Cloud Source Repositories 是一个功能齐全、可扩展的 私有 Git 仓库服务。它旨在 在完全托管的环境中托管您的源代码,与其他 GCP 工具和服务无缝集成。它为团队提供了一个协作和安全的地方来存储、管理和跟踪他们的代码。

Cloud Source Repositories 的主要特点包括:

  1. 完全托管的 Git 托管:提供熟悉的 Git 功能,意味着您可以使用常规的 Git 命令和工作流程。

  2. 与 GCP 服务的集成:与 Cloud Build、Pub/Sub 和 App Engine 等其他 GCP 服务集成,实现从代码到部署的端到端可追溯性。

  3. 私有仓库:确保您的代码安全和私密地存储。您可以使用 Cloud Identity 和访问管理 (IAM) 角色控制访问。

  4. 源代码分析:与其他 GCP 工具协作,提供对您的源代码的自动分析,识别潜在问题,如错误、漏洞或不良编码实践。

  5. 协作工具:支持使用合并请求、评论和审查等工具进行协作编码。

  6. 镜像支持:允许您将 Cloud Source Repositories 连接到托管在 GitHub 或 Bitbucket 上的仓库,实现自动同步并提供所有仓库的统一视图。

OffSec 信息

  • 项目内的源代码库配置将有一个 服务账户 用于发布 Cloud Pub/Sub 消息。默认使用的是 计算服务账户。然而,我认为无法从源代码库中窃取其令牌,因为它在后台执行。

  • 要查看 GCP Cloud Source Repositories 网络控制台中的代码 (https://source.cloud.google.com/),您需要代码 默认在主分支内

  • 您还可以 创建一个指向 GithubBitbucket 的镜像 Cloud Repository(给予对这些平台的访问)。

  • 可以 在 GCP 内部编码和调试

  • 默认情况下,源代码库 防止私钥被推送到提交中,但这可以被禁用。

在 Cloud Shell 中打开

可以在 Cloud Shell 中打开仓库,类似这样的提示将出现:

这将允许您在 Cloud Shell 中编码和调试(这可能会导致 cloudshell 被攻破)。

枚举

# Repos enumeration
gcloud source repos list #Get names and URLs
gcloud source repos describe <repo_name>
gcloud source repos get-iam-policy <repo_name>

# gcloud repo clone
gcloud source repos clone <REPO NAME>
gcloud source repos get-iam-policy <REPO NAME>
... git add & git commit -m ...
git push --set-upstream origin master
git push -u origin master

# Access via git
## To add a SSH key go to https://source.cloud.google.com/user/ssh_keys (no gcloud command)
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>
git add, commit, push...

权限提升与后期利用

GCP - Sourcerepos Privesc

未认证枚举

GCP - Source Repositories Unauthenticated Enum
支持 HackTricks

Last updated