GCP - Artifact Registry Privesc
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 EnumCon este permiso, un atacante podría subir nuevas versiones de los artefactos con código malicioso como imágenes de Docker:
Se verificó que es posible subir una nueva imagen docker maliciosa con el mismo nombre y etiqueta que la ya presente, por lo que la antigua perderá la etiqueta y la próxima vez que se descargue la imagen con esa etiqueta, se descargará la maliciosa.
No es posible subir una biblioteca de python con la misma versión que la ya presente, pero es posible subir versiones mayores (o agregar un extra .0
al final de la versión si eso funciona -no en python, sin embargo-), o eliminar la última versión y subir una nueva con (necesario artifactregistry.versions.delete)
:
artifactregistry.repositories.downloadArtifacts
Con este permiso puedes descargar artefactos y buscar información sensible y vulnerabilidades.
Descargar una imagen de Docker:
Descargar una python biblioteca:
¿Qué sucede si se mezclan un registro remoto y un registro estándar en uno virtual y un paquete existe en ambos? Consulta esta página:
artifactregistry.tags.delete
, artifactregistry.versions.delete
, artifactregistry.packages.delete
, (artifactregistry.repositories.get
, artifactregistry.tags.get
, artifactregistry.tags.list
)Elimina artefactos del registro, como imágenes de docker:
artifactregistry.repositories.delete
Elimina un repositorio completo (incluso si tiene contenido):
artifactregistry.repositories.setIamPolicy
Un atacante con este permiso podría otorgarse permisos para realizar algunos de los ataques de repositorio mencionados anteriormente.
Cloud Functions
Cuando se crea una Cloud Function, se envía una nueva imagen de docker al Artifact Registry del proyecto. Intenté modificar la imagen con una nueva, e incluso eliminar la imagen actual (y la imagen cache
) y nada cambió, la función en la nube continuó funcionando. Por lo tanto, podría ser posible abusar de un ataque de Condición de Carrera como con el bucket para cambiar el contenedor de docker que se ejecutará, pero simplemente modificando la imagen almacenada no es posible comprometer la Cloud Function.
App Engine
A pesar de que App Engine crea imágenes de docker dentro de Artifact Registry. Se probó que incluso si modificas la imagen dentro de este servicio y eliminas la instancia de App Engine (para que se despliegue una nueva), el código ejecutado no cambia. Podría ser posible que al realizar un ataque de Condición de Carrera como con los buckets, podría ser posible sobrescribir el código ejecutado, pero esto no fue probado.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)