AWS - ECR Enum

AWS - ECR Enum

Support HackTricks

ECR

Basic Information

Amazon Elastic Container Registry (Amazon ECR) è un servizio di registrazione di immagini di container gestito. È progettato per fornire un ambiente in cui i clienti possono interagire con le loro immagini di container utilizzando interfacce ben note. In particolare, è supportato l'uso del Docker CLI o di qualsiasi client preferito, consentendo attività come il caricamento, il download e la gestione delle immagini di container.

ECR è composto da 2 tipi di oggetti: Registries e Repositories.

Registries

Ogni account AWS ha 2 registri: Privato e Pubblico.

  1. Registri Privati:

  • Privato per impostazione predefinita: Le immagini di container memorizzate in un registro privato Amazon ECR sono accessibili solo agli utenti autorizzati all'interno del tuo account AWS o a coloro a cui è stata concessa l'autorizzazione.

  • L'URI di un repository privato segue il formato <account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>

  • Controllo accessi: Puoi controllare l'accesso alle tue immagini di container private utilizzando politiche IAM, e puoi configurare permessi dettagliati basati su utenti o ruoli.

  • Integrazione con i servizi AWS: I registri privati Amazon ECR possono essere facilmente integrati con altri servizi AWS, come EKS, ECS...

  • Altre opzioni per i registri privati:

  • La colonna dell'immutabilità dei tag elenca il suo stato, se l'immutabilità dei tag è abilitata, prevenirà i push di immagini con tag preesistenti di sovrascrivere le immagini.

  • La colonna del tipo di crittografia elenca le proprietà di crittografia del repository, mostra i tipi di crittografia predefiniti come AES-256, o ha crittografie abilitate KMS.

  • La colonna del Pull through cache elenca il suo stato, se lo stato del Pull through cache è Attivo, memorizzerà nella cache repository in un repository pubblico esterno nel tuo repository privato.

  • Politiche IAM specifiche possono essere configurate per concedere diversi permessi.

  • La configurazione della scansione consente di scansionare le vulnerabilità nelle immagini memorizzate all'interno del repository.

  1. Registri Pubblici:

  • Accessibilità pubblica: Le immagini di container memorizzate in un registro pubblico ECR sono accessibili a chiunque su Internet senza autenticazione.

  • L'URI di un repository pubblico è simile a public.ecr.aws/<random>/<name>. Anche se la parte <random> può essere cambiata dall'amministratore in un'altra stringa più facile da ricordare.

Repositories

Queste sono le immagini che si trovano nel registro privato o in quello pubblico.

Nota che per caricare un'immagine in un repository, il repository ECR deve avere lo stesso nome dell'immagine.

Registry & Repository Policies

Registries & repositories hanno anche politiche che possono essere utilizzate per concedere permessi ad altri principi/account. Ad esempio, nella seguente immagine della politica del repository puoi vedere come qualsiasi utente dell'intera organizzazione sarà in grado di accedere all'immagine:

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 autenticato

Privesc

Nella pagina seguente puoi controllare come abusare dei permessi ECR per escalare i privilegi:

Post Exploitation

Persistenza

Riferimenti

Supporta HackTricks

Last updated