GCP - Sourcerepos Privesc
源代码库
有关源代码库的更多信息,请查看:
GCP - Source Repositories Enumsource.repos.get
source.repos.get
拥有此权限可以将代码库下载到本地:
source.repos.update
source.repos.update
具有此权限的主体 将能够在使用 gcloud source repos clone <repo>
克隆的存储库中编写代码。但请注意,此权限不能附加到自定义角色,因此必须通过预定义角色授予,例如:
拥有者
编辑者
源存储库管理员 (
roles/source.admin
)源存储库写入者 (
roles/source.writer
)
要进行写入,只需执行常规的 git push
。
source.repos.setIamPolicy
source.repos.setIamPolicy
拥有此权限的攻击者可以授予自己之前的权限。
Secret access
如果攻击者 访问存储令牌的秘密,他将能够窃取它们。有关如何访问秘密的更多信息,请查看:
GCP - Secretmanager PrivescAdd SSH keys
可以在网页控制台中 向源存储库项目添加 SSH 密钥。它向 /v1/sshKeys:add
发出 POST 请求,并可以在 https://source.cloud.google.com/user/ssh_keys 中进行配置。
一旦设置了 SSH 密钥,您可以使用以下命令访问存储库:
然后使用 git
命令,如常规操作。
手动凭证
可以创建手动凭证以访问源代码库:
这将提示一个 Oauth 授权提示 以授予对 Google Cloud Development 的访问权限。因此,您需要 用户的凭证 或 浏览器中的开放会话。
这将引导您到一个页面,提供一个 bash 脚本以执行 并在 $HOME/.gitcookies
中配置 git cookie。
执行脚本后,您可以使用 git clone、push... 并且它将正常工作。
source.repos.updateProjectConfig
source.repos.updateProjectConfig
拥有此权限后,可以禁用源代码库的默认保护,以防上传包含私钥的代码:
您还可以配置一个不同的 pub/sub 主题,甚至完全禁用它:
Last updated