AWS - ECR Enum

AWS - ECR Enum

Wsparcie dla HackTricks

ECR

Podstawowe informacje

Amazon Elastic Container Registry (Amazon ECR) to zarządzana usługa rejestru obrazów kontenerów. Została zaprojektowana, aby zapewnić środowisko, w którym klienci mogą interagować ze swoimi obrazami kontenerów za pomocą znanych interfejsów. W szczególności wspierane jest użycie interfejsu wiersza poleceń Docker lub dowolnego preferowanego klienta, co umożliwia takie działania jak przesyłanie, pobieranie i zarządzanie obrazami kontenerów.

ECR składa się z 2 typów obiektów: Rejestrów i Repozytoriów.

Rejestry

Każde konto AWS ma 2 rejestry: Prywatny i Publiczny.

  1. Prywatne rejestry:

  • Prywatne domyślnie: Obrazy kontenerów przechowywane w prywatnym rejestrze Amazon ECR są dostępne tylko dla autoryzowanych użytkowników w Twoim koncie AWS lub dla tych, którym przyznano uprawnienia.

  • URI prywatnego repozytorium ma format <account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>

  • Kontrola dostępu: Możesz kontrolować dostęp do swoich prywatnych obrazów kontenerów za pomocą polityk IAM, a także możesz skonfigurować szczegółowe uprawnienia w oparciu o użytkowników lub role.

  • Integracja z usługami AWS: Prywatne rejestry Amazon ECR mogą być łatwo integrowane z innymi usługami AWS, takimi jak EKS, ECS...

  • Inne opcje prywatnych rejestrów:

  • Kolumna immutability tagu wskazuje jego status, jeśli immutability tagu jest włączone, zapobiegnie to przesyłaniu obrazów z istniejącymi tagami, które mogłyby nadpisać obrazy.

  • Kolumna Typ szyfrowania wymienia właściwości szyfrowania repozytorium, pokazuje domyślne typy szyfrowania, takie jak AES-256, lub ma włączone szyfrowania KMS.

  • Kolumna Pull through cache wskazuje jej status, jeśli status Pull through cache jest aktywny, będzie buforować repozytoria w zewnętrznym publicznym repozytorium do Twojego prywatnego repozytorium.

  • Specyficzne polityki IAM mogą być skonfigurowane w celu przyznania różnych uprawnień.

  • Konfiguracja skanowania pozwala na skanowanie pod kątem luk w zabezpieczeniach w obrazach przechowywanych w repozytorium.

  1. Publiczne rejestry:

  • Publiczny dostęp: Obrazy kontenerów przechowywane w publicznym rejestrze ECR są dostępne dla każdego w internecie bez uwierzytelnienia.

  • URI publicznego repozytorium jest jak public.ecr.aws/<random>/<name>. Chociaż część <random> może być zmieniona przez administratora na inny łatwiejszy do zapamiętania ciąg.

Repozytoria

To są obrazy, które znajdują się w prywatnym rejestrze lub w publicznym.

Zauważ, że aby przesłać obraz do repozytorium, repozytorium ECR musi mieć tę samą nazwę co obraz.

Polityki rejestru i repozytorium

Rejestry i repozytoria mają również polityki, które mogą być używane do przyznawania uprawnień innym podmiotom/kontom. Na przykład, w poniższej polityce repozytorium możesz zobaczyć, jak każdy użytkownik z całej organizacji będzie mógł uzyskać dostęp do obrazu:

Enumeracja

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

Nieautoryzowane Enum

Privesc

Na następnej stronie możesz sprawdzić, jak nadużyć uprawnień ECR, aby eskalować uprawnienia:

Po Eksploatacji

Utrzymywanie

Odniesienia

Wsparcie HackTricks

Last updated