GCP - Artifact Registry Persistence

支持 HackTricks

Artifact Registry

有关 Artifact Registry 的更多信息,请查看:

GCP - Artifact Registry Enum

依赖混淆

  • 如果虚拟仓库中混合了远程和标准仓库,并且一个包同时存在于两者中,会发生什么?

  • 虚拟仓库中设置的优先级最高的那个会被使用

  • 如果优先级相同

  • 如果版本相同,则使用虚拟仓库中按字母顺序排列的策略名称

  • 如果不同,则使用最高版本

因此,如果远程仓库具有更高或相同的优先级,就有可能**滥用最高版本(依赖混淆)**在公共包注册表中

这种技术可以用于持久性无需身份验证的访问,要滥用它只需知道存储在 Artifact Registry 中的库名称,并在公共仓库(例如 Python 的 PyPi)中创建具有更高版本的相同库

对于持久性,您需要遵循以下步骤:

  • 要求:必须存在虚拟仓库并被使用,必须使用一个在公共仓库中不存在的名称的内部包

  • 如果不存在,创建远程仓库

  • 将远程仓库添加到虚拟仓库

  • 编辑虚拟注册表的策略,为远程仓库提供更高优先级(或相同)。 运行类似以下命令:

  • 下载合法包,添加恶意代码并在公共仓库中注册具有相同版本的包。每当开发人员安装它时,他们将安装您的包!

有关依赖混淆的更多信息,请查看:

支持 HackTricks

Last updated