Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md

4.7 KiB

AWS - ECR Enum

AWS - ECR Enum

{{#include ../../../banners/hacktricks-training.md}}

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: Privados y Públicos.

  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.
  • El 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 detallados 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, evitará 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 extracción lista su estado, si el estado de caché de extracción 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.
  • El 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.

Note

Tenga en cuenta que para subir una imagen a un repositorio, el repositorio de 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 principales/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>

Enum no autenticado

{{#ref}} ../aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md {{#endref}}

Escalación de privilegios

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

{{#ref}} ../aws-privilege-escalation/aws-ecr-privesc.md {{#endref}}

Post explotación

{{#ref}} ../aws-post-exploitation/aws-ecr-post-exploitation.md {{#endref}}

Persistencia

{{#ref}} ../aws-persistence/aws-ecr-persistence.md {{#endref}}

Referencias

{{#include ../../../banners/hacktricks-training.md}}