GCP - Artifact Registry Enum
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
基本信息
Google Cloud Artifact Registry 是一个完全托管的服务,允许您管理、存储和保护您的软件工件。它本质上是一个存储构建依赖项的仓库,例如Docker镜像、Maven、npm包和其他类型的工件。它通常用于 CI/CD 管道中,用于存储和版本控制在软件开发过程中产生的工件。
Artifact Registry 的主要功能包括:
- 统一仓库:它支持多种类型的工件,允许您拥有一个用于 Docker 镜像、语言包(如 Java 的 Maven、Node.js 的 npm)和其他类型工件的单一仓库,从而实现一致的访问控制和对所有工件的统一视图。
- 完全托管:作为一个托管服务,它处理底层基础设施、扩展和安全性,减少用户的维护开销。
- 细粒度访问控制:它与 Google Cloud 的身份和访问管理(IAM)集成,允许您定义谁可以访问、上传或下载您仓库中的工件。
- 地理复制:它支持在多个区域之间复制工件,提高下载速度并确保可用性。
- 与 Google Cloud 服务的集成:它与其他 GCP 服务如 Cloud Build、Kubernetes Engine 和 Compute Engine无缝协作,使其成为已经在 Google Cloud 生态系统中工作的团队的便捷选择。
- 安全性:提供漏洞扫描和容器分析等功能,以帮助确保存储的工件是安全的,并且没有已知的安全问题。
格式和模式
创建新仓库时,可以在多个格式/类型中选择仓库的格式/类型,如 Docker、Maven、npm、Python…,以及通常可以是以下三种模式之一:
- 标准仓库:用于直接在 GCP 中存储您自己的工件(如 Docker 镜像、Maven 包)的默认模式。它安全、可扩展,并且与 Google Cloud 生态系统良好集成。
- 远程仓库(如果可用):作为从外部公共仓库缓存工件的代理。它有助于防止上游依赖项变化带来的问题,并通过缓存频繁访问的工件来减少延迟。
- 虚拟仓库(如果可用):提供一个统一接口,通过单一端点访问多个(标准或远程)仓库,简化了客户端配置和跨多个仓库的工件访问管理。
- 对于虚拟仓库,您需要选择仓库并给予优先级(优先级最高的仓库将被使用)。
- 您可以在虚拟仓库中混合远程和标准仓库,如果远程的优先级大于标准,将使用远程的包(例如 PyPi)。这可能导致依赖混淆。
请注意,在Docker 的远程版本中,可以提供用户名和令牌以访问 Docker Hub。令牌随后存储在 Secret Manager 中。
加密
如预期的那样,默认使用 Google 管理的密钥,但可以指示使用客户管理的密钥(CMEK)。
清理策略
- 删除工件:工件将根据清理策略标准被删除。
- 干运行:(默认)工件将不会被删除。清理策略将被评估,并将测试删除事件发送到 Cloud Audit Logging。
漏洞扫描
可以启用漏洞扫描器,它将检查容器镜像中的漏洞。
枚举
# Get repositories
gcloud artifacts repositories list
gcloud artifacts repositories describe --location <location> <repo-name>
gcloud artifacts versions list --repository=<repo-name> -location <location> --package <package-name>
# Get settings of a repository (example using python but could be other)
gcloud artifacts print-settings python --repository <repo-name> --location <location>
# Get docker images
gcloud artifacts docker images list us-central1-docker.pkg.dev/<proj-name>/<repo-name>
# Get packages (like python and others...)
gcloud artifacts packages list --repository <repo-name> --location <location>
# Get SBOMB artifacts
gcloud artifacts sbom list
# Get vulnerabilities (docker images)
gcloud artifacts vulnerabilities list us-east1-docker.pkg.dev/project123/repository123/someimage@sha256:49765698074d6d7baa82f
gcloud artifacts docker images list-vulnerabilities projects/<proj-name>/locations/<location>/scans/<scan-uuid>
权限提升
GCP - Artifact Registry Privesc
未经身份验证的访问
GCP - Artifact Registry Unauthenticated Enum
后期利用
GCP - Artifact Registry Post Exploitation
持久性
GCP - Artifact Registry Persistence
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

