GCP - Artifact Registry Persistence

Apoya a HackTricks

Registro de Artefactos

Para más información sobre el Registro de Artefactos consulta:

GCP - Artifact Registry Enum

Confusión de Dependencias

  • ¿Qué sucede si se mezclan un repositorio remoto y uno estándar en uno virtual y un paquete existe en ambos?

  • Se utiliza el que tiene la prioridad más alta establecida en el repositorio virtual

  • Si la prioridad es la misma:

  • Si la versión es la misma, se utiliza el nombre de la política alfabéticamente primero en el repositorio virtual

  • Si no, se utiliza la versión más alta

Por lo tanto, es posible abusar de una versión más alta (confusión de dependencias) en un registro de paquetes público si el repositorio remoto tiene una prioridad más alta o igual

Esta técnica puede ser útil para persistencia y acceso no autenticado, ya que para abusar de ella solo se requiere conocer el nombre de una biblioteca almacenada en el Registro de Artefactos y crear esa misma biblioteca en el repositorio público (PyPi para python, por ejemplo) con una versión más alta.

Para la persistencia, estos son los pasos que debes seguir:

  • Requisitos: Debe existir un repositorio virtual y ser utilizado, se debe usar un paquete interno con un nombre que no exista en el repositorio público.

  • Crea un repositorio remoto si no existe

  • Agrega el repositorio remoto al repositorio virtual

  • Edita las políticas del registro virtual para dar una prioridad más alta (o igual) al repositorio remoto. Ejecuta algo como:

  • Descarga el paquete legítimo, agrega tu código malicioso y regístralo en el repositorio público con la misma versión. ¡Cada vez que un desarrollador lo instale, instalará el tuyo!

Para más información sobre la confusión de dependencias consulta:

Apoya a HackTricks

Last updated