AWS - ECR Enum

AWS - ECR Enum

Support HackTricks

ECR

Basic Information

Amazon Elastic Container Registry (Amazon ECR) est un service de registre d'images de conteneurs géré. Il est conçu pour fournir un environnement où les clients peuvent interagir avec leurs images de conteneurs en utilisant des interfaces bien connues. Plus précisément, l'utilisation de l'interface en ligne de commande Docker ou de tout client préféré est prise en charge, permettant des activités telles que le push, le pull et la gestion des images de conteneurs.

ECR est composé de 2 types d'objets : Registres et Dépôts.

Registres

Chaque compte AWS a 2 registres : Privé & Public.

  1. Registres Privés :

  • Privé par défaut : Les images de conteneurs stockées dans un registre privé Amazon ECR sont uniquement accessibles aux utilisateurs autorisés au sein de votre compte AWS ou à ceux à qui des autorisations ont été accordées.

  • L'URI d'un dépôt privé suit le format <account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>

  • Contrôle d'accès : Vous pouvez contrôler l'accès à vos images de conteneurs privées en utilisant des politiques IAM, et vous pouvez configurer des autorisations granulaires basées sur des utilisateurs ou des rôles.

  • Intégration avec les services AWS : Les registres privés Amazon ECR peuvent être facilement intégrés avec d'autres services AWS, tels que EKS, ECS...

  • Autres options de registre privé :

  • La colonne d'immuabilité des balises indique son statut, si l'immuabilité des balises est activée, elle empêchera les pushs d'images avec des balises préexistantes de remplacer les images.

  • La colonne Type de chiffrement indique les propriétés de chiffrement du dépôt, elle montre les types de chiffrement par défaut tels que AES-256, ou a des chiffrages KMS activés.

  • La colonne Pull through cache indique son statut, si le statut Pull through cache est Actif, il mettra en cache les dépôts dans un dépôt public externe dans votre dépôt privé.

  • Des politiques IAM spécifiques peuvent être configurées pour accorder différentes permissions.

  • La configuration de scan permet de rechercher des vulnérabilités dans les images stockées dans le dépôt.

  1. Registres Publics :

  • Accessibilité publique : Les images de conteneurs stockées dans un registre public ECR sont accessibles à quiconque sur Internet sans authentification.

  • L'URI d'un dépôt public est comme public.ecr.aws/<random>/<name>. Bien que la partie <random> puisse être changée par l'administrateur en une autre chaîne plus facile à retenir.

Dépôts

Ce sont les images qui se trouvent dans le registre privé ou dans le public.

Notez que pour télécharger une image dans un dépôt, le dépôt ECR doit avoir le même nom que l'image.

Registry & Repository Policies

Registres & dépôts ont également des politiques qui peuvent être utilisées pour accorder des permissions à d'autres principaux/comptes. Par exemple, dans l'image de politique de dépôt suivante, vous pouvez voir comment tout utilisateur de l'ensemble de l'organisation pourra accéder à l'image :

Enumeration

# 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 non authentifié

Privesc

Dans la page suivante, vous pouvez vérifier comment abuser des permissions ECR pour escalader les privilèges :

Post Exploitation

Persistance

Références

Soutenir HackTricks

Last updated