GCP - Artifact Registry Persistence

Support HackTricks

Artifact Registry

Para mais informações sobre o Artifact Registry, confira:

Confusão de Dependência

  • O que acontece se um repositório remoto e um padrão forem misturados em um virtual e um pacote existir em ambos?

  • O que tem a prioridade mais alta definida no repositório virtual é usado

  • Se a prioridade for a mesma:

  • Se a versão for a mesma, o nome da política em ordem alfabética primeiro no repositório virtual é usado

  • Se não, a versão mais alta é usada

Portanto, é possível abusar de uma versão mais alta (confusão de dependência) em um registro de pacotes público se o repositório remoto tiver uma prioridade maior ou igual

Essa técnica pode ser útil para persistência e acesso não autenticado, pois para abusar dela, basta saber o nome de uma biblioteca armazenada no Artifact Registry e criar essa mesma biblioteca no repositório público (PyPi para python, por exemplo) com uma versão mais alta.

Para persistência, esses são os passos que você precisa seguir:

  • Requisitos: Um repositório virtual deve existir e ser usado, um pacote interno com um nome que não exista no repositório público deve ser usado.

  • Crie um repositório remoto se ele não existir

  • Adicione o repositório remoto ao repositório virtual

  • Edite as políticas do registro virtual para dar uma prioridade maior (ou igual) ao repositório remoto. Execute algo como:

  • Baixe o pacote legítimo, adicione seu código malicioso e registre-o no repositório público com a mesma versão. Sempre que um desenvolvedor o instalar, ele instalará o seu!

Para mais informações sobre confusão de dependência, confira:

Support HackTricks

Last updated