# AWS - ECR Enum {{#include ../../../banners/hacktricks-training.md}} ## ECR ### Informazioni di base 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: **Privati** e **Pubblici**. 1. **Registri Privati**: - **Privati per impostazione predefinita**: Le immagini di container memorizzate in un registro privato di 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 `.dkr.ecr..amazonaws.com/` - **Controllo degli 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 di 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 diverse **autorizzazioni**. - La **configurazione della scansione** consente di scansionare le vulnerabilità nelle immagini memorizzate all'interno del repository. 2. **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//`. Anche se la parte `` 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**. > [!NOTE] > Nota che per caricare un'immagine in un repository, il **repository ECR deve avere lo stesso nome dell'immagine**. #### Politiche di Registro e Repository **Registries e repositories** hanno anche **politiche che possono essere utilizzate per concedere autorizzazioni 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:
### Enumerazione ```bash # Get repos aws ecr describe-repositories aws ecr describe-registry # Get image metadata aws ecr list-images --repository-name aws ecr describe-images --repository-name aws ecr describe-image-replication-status --repository-name --image-id aws ecr describe-image-scan-findings --repository-name --image-id aws ecr describe-pull-through-cache-rules --repository-name --image-id # Get public repositories aws ecr-public describe-repositories # Get policies aws ecr get-registry-policy aws ecr get-repository-policy --repository-name ``` ### Enum non autenticato {{#ref}} ../aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum/README.md {{#endref}} ### Privesc Nella pagina seguente puoi controllare come **abuse ECR permissions to escalate privileges**: {{#ref}} ../aws-privilege-escalation/aws-ecr-privesc/README.md {{#endref}} ### Post Exploitation {{#ref}} ../aws-post-exploitation/aws-ecr-post-exploitation/README.md {{#endref}} ### Persistenza {{#ref}} ../aws-persistence/aws-ecr-persistence/README.md {{#endref}} ## Riferimenti - [https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html) {{#include ../../../banners/hacktricks-training.md}}