GCP - Artifact Registry Persistence
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Para más información sobre el Registro de Artefactos consulta:
GCP - Artifact Registry Enum¿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:
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)