AWS - ECR Enum

AWS - ECR Enum

Support HackTricks

ECR

Información Básica

Amazon Elastic Container Registry (Amazon ECR) es un servicio de registro de imágenes de contenedor gestionado. Está diseñado para proporcionar un entorno donde los clientes pueden interactuar con sus imágenes de contenedor utilizando interfaces bien conocidas. Específicamente, se admite el uso de la CLI de Docker o cualquier cliente preferido, lo que permite actividades como subir, bajar y gestionar imágenes de contenedor.

ECR se compone de 2 tipos de objetos: Registros y Repositorios.

Registros

Cada cuenta de AWS tiene 2 registros: Privado y Público.

  1. Registros Privados:

  • Privado por defecto: Las imágenes de contenedor almacenadas en un registro privado de Amazon ECR son accesibles solo para usuarios autorizados dentro de su cuenta de AWS o para aquellos a quienes se les ha otorgado permiso.

  • La URI de un repositorio privado sigue el formato <account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>

  • Control de acceso: Puede controlar el acceso a sus imágenes de contenedor privadas utilizando políticas de IAM, y puede configurar permisos granulares basados en usuarios o roles.

  • Integración con servicios de AWS: Los registros privados de Amazon ECR se pueden integrar fácilmente con otros servicios de AWS, como EKS, ECS...

  • Otras opciones de registro privado:

  • La columna de inmutabilidad de etiquetas lista su estado, si la inmutabilidad de etiquetas está habilitada, prevendrá que las subidas de imágenes con etiquetas preexistentes sobrescriban las imágenes.

  • La columna de tipo de cifrado lista las propiedades de cifrado del repositorio, muestra los tipos de cifrado predeterminados como AES-256, o tiene cifrados habilitados de KMS.

  • La columna de caché de tirones lista su estado, si el estado de caché de tirones es Activo, almacenará en caché repositorios en un repositorio público externo en su repositorio privado.

  • Se pueden configurar políticas de IAM específicas para otorgar diferentes permisos.

  • La configuración de escaneo permite escanear en busca de vulnerabilidades en las imágenes almacenadas dentro del repositorio.

  1. Registros Públicos:

  • Accesibilidad pública: Las imágenes de contenedor almacenadas en un registro público de ECR son accesibles para cualquier persona en Internet sin autenticación.

  • La URI de un repositorio público es como public.ecr.aws/<random>/<name>. Aunque la parte <random> puede ser cambiada por el administrador a otra cadena más fácil de recordar.

Repositorios

Estas son las imágenes que están en el registro privado o en el público.

Tenga en cuenta que para subir una imagen a un repositorio, el repositorio ECR debe tener el mismo nombre que la imagen.

Políticas de Registro y Repositorio

Registros y repositorios también tienen políticas que se pueden usar para otorgar permisos a otros principios/cuentas. Por ejemplo, en la siguiente imagen de política de repositorio, puede ver cómo cualquier usuario de toda la organización podrá acceder a la imagen:

Enumeración

# Get repos
aws ecr describe-repositories
aws ecr describe-registry

# Get image metadata
aws ecr list-images --repository-name <repo_name>
aws ecr describe-images --repository-name <repo_name>
aws ecr describe-image-replication-status --repository-name <repo_name> --image-id <image_id>
aws ecr describe-image-scan-findings --repository-name <repo_name> --image-id <image_id>
aws ecr describe-pull-through-cache-rules --repository-name <repo_name> --image-id <image_id>

# Get public repositories
aws ecr-public describe-repositories

# Get policies
aws ecr get-registry-policy
aws ecr get-repository-policy --repository-name <repo_name>

Enumeración No Autenticada

Escalación de Privilegios

En la siguiente página puedes verificar cómo abusar de los permisos de ECR para escalar privilegios:

Post Explotación

Persistencia

Referencias

Apoya a HackTricks

Last updated