AWS - ECR Enum

AWS - ECR Enum

Support HackTricks

ECR

Informações Básicas

Amazon Elastic Container Registry (Amazon ECR) é um serviço gerenciado de registro de imagens de contêiner. Ele é projetado para fornecer um ambiente onde os clientes podem interagir com suas imagens de contêiner usando interfaces bem conhecidas. Especificamente, o uso do Docker CLI ou qualquer cliente preferido é suportado, permitindo atividades como enviar, puxar e gerenciar imagens de contêiner.

ECR é composto por 2 tipos de objetos: Registros e Repositórios.

Registros

Cada conta AWS tem 2 registros: Privado e Público.

  1. Registros Privados:

  • Privado por padrão: As imagens de contêiner armazenadas em um registro privado do Amazon ECR são acessíveis apenas a usuários autorizados dentro da sua conta AWS ou àqueles que receberam permissão.

  • O URI de um repositório privado segue o formato <account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>

  • Controle de acesso: Você pode controlar o acesso às suas imagens de contêiner privadas usando políticas IAM, e pode configurar permissões detalhadas com base em usuários ou funções.

  • Integração com serviços AWS: Registros privados do Amazon ECR podem ser facilmente integrados com outros serviços AWS, como EKS, ECS...

  • Outras opções de registro privado:

  • A coluna de imutabilidade de tags lista seu status, se a imutabilidade de tags estiver habilitada, isso impedirá que envios de imagens com tags pré-existentes sobrescrevam as imagens.

  • A coluna de Tipo de Criptografia lista as propriedades de criptografia do repositório, mostrando os tipos de criptografia padrão, como AES-256, ou criptografias com KMS habilitadas.

  • A coluna de Cache de Pull lista seu status, se o status de Cache de Pull estiver Ativo, ele irá armazenar em cache repositórios em um repositório público externo em seu repositório privado.

  • Políticas IAM específicas podem ser configuradas para conceder diferentes permissões.

  • A configuração de varredura permite escanear em busca de vulnerabilidades nas imagens armazenadas dentro do repositório.

  1. Registros Públicos:

  • Acessibilidade pública: Imagens de contêiner armazenadas em um registro Público do ECR são acessíveis a qualquer pessoa na internet sem autenticação.

  • O URI de um repositório público é como public.ecr.aws/<random>/<name>. Embora a parte <random> possa ser alterada pelo administrador para outra string mais fácil de lembrar.

Repositórios

Estas são as imagens que estão no registro privado ou no público.

Observe que, para enviar uma imagem para um repositório, o repositório ECR precisa ter o mesmo nome que a imagem.

Políticas de Registro e Repositório

Registros e repositórios também têm políticas que podem ser usadas para conceder permissões a outros principais/contas. Por exemplo, na imagem da política de repositório a seguir, você pode ver como qualquer usuário de toda a organização poderá acessar a imagem:

Enumeração

# 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 Não Autenticado

Escalação de Privilégios

Na página a seguir, você pode verificar como abusar das permissões do ECR para escalar privilégios:

Pós Exploração

Persistência

Referências

Suporte ao HackTricks

Last updated