AWS - ECR Enum

AWS - ECR Enum

HackTricks 지원하기

ECR

기본 정보

Amazon Elastic Container Registry (Amazon ECR)는 관리형 컨테이너 이미지 레지스트리 서비스입니다. 고객이 잘 알려진 인터페이스를 사용하여 컨테이너 이미지와 상호작용할 수 있는 환경을 제공하도록 설계되었습니다. 특히, Docker CLI 또는 선호하는 클라이언트를 사용하여 컨테이너 이미지를 푸시, 풀 및 관리하는 활동을 지원합니다.

ECR은 레지스트리저장소의 2가지 유형의 객체로 구성됩니다.

레지스트리

모든 AWS 계정에는 2개의 레지스트리가 있습니다: 프라이빗퍼블릭.

  1. 프라이빗 레지스트리:

  • 기본적으로 프라이빗: Amazon ECR 프라이빗 레지스트리에 저장된 컨테이너 이미지는 AWS 계정 내의 권한이 있는 사용자 또는 권한이 부여된 사용자만 접근할 수 있습니다.

  • 프라이빗 저장소의 URI는 <account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name> 형식을 따릅니다.

  • 접근 제어: IAM 정책을 사용하여 프라이빗 컨테이너 이미지에 대한 접근을 제어할 수 있으며, 사용자 또는 역할에 따라 세분화된 권한을 구성할 수 있습니다.

  • AWS 서비스와의 통합: Amazon ECR 프라이빗 레지스트리는 EKS, ECS 등과 같은 다른 AWS 서비스와 쉽게 통합될 수 있습니다.

  • 기타 프라이빗 레지스트리 옵션:

  • 태그 불변성 열은 상태를 나열하며, 태그 불변성이 활성화되면 기존 태그로 이미지 푸시가 이미지를 덮어쓰는 것을 방지합니다.

  • 암호화 유형 열은 저장소의 암호화 속성을 나열하며, AES-256과 같은 기본 암호화 유형을 보여주거나 KMS가 활성화된 암호화를 포함합니다.

  • 풀 스루 캐시 열은 상태를 나열하며, 풀 스루 캐시 상태가 활성화되면 외부 퍼블릭 저장소의 저장소를 프라이빗 저장소에 캐시합니다.

  • 특정 IAM 정책을 구성하여 다양한 권한을 부여할 수 있습니다.

  • 스캔 구성은 저장소 내에 저장된 이미지의 취약점을 스캔할 수 있도록 합니다.

  1. 퍼블릭 레지스트리:

  • 퍼블릭 접근성: ECR 퍼블릭 레지스트리에 저장된 컨테이너 이미지는 인터넷의 누구나 인증 없이 접근할 수 있습니다.

  • 퍼블릭 저장소의 URI는 public.ecr.aws/<random>/<name>과 같습니다. <random> 부분은 관리자가 기억하기 쉬운 다른 문자열로 변경할 수 있습니다.

저장소

이들은 프라이빗 레지스트리 또는 퍼블릭에 있는 이미지입니다.

저장소에 이미지를 업로드하려면 ECR 저장소가 이미지와 동일한 이름을 가져야 합니다.

레지스트리 및 저장소 정책

레지스트리 및 저장소다른 주체/계정에 권한을 부여하는 데 사용할 수 있는 정책도 가지고 있습니다. 예를 들어, 다음 저장소 정책 이미지에서 전체 조직의 모든 사용자가 이미지를 접근할 수 있는 방법을 볼 수 있습니다:

열거

# 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>

인증되지 않은 열거

AWS - ECR Unauthenticated Enum

권한 상승

다음 페이지에서 ECR 권한을 악용하여 권한을 상승시키는 방법을 확인할 수 있습니다:

AWS - ECR Privesc

포스트 익스플로잇

AWS - ECR Post Exploitation

지속성

AWS - ECR Persistence

참고 문헌

HackTricks 지원하기

Last updated