# AWS - ECR Enum

## AWS - ECR Enum

{{#include ../../../banners/hacktricks-training.md}}

### ECR

#### Osnovne informacije

Amazon **Elastic Container Registry** (Amazon ECR) je **usluga registrovanja slika kontejnera** koja se upravlja. Dizajnirana je da pruži okruženje u kojem kupci mogu da interaguju sa svojim slikama kontejnera koristeći poznate interfejse. Konkretno, podržava se korišćenje Docker CLI-a ili bilo kog preferiranog klijenta, omogućavajući aktivnosti kao što su slanje, preuzimanje i upravljanje slikama kontejnera.

ECR se sastoji od 2 tipa objekata: **Registri** i **Repozitorijumi**.

**Registri**

Svaki AWS nalog ima 2 registra: **Privatni** i **Javni**.

1. **Privatni registri**:

- **Privatno po defaultu**: Slike kontejnera smeštene u Amazon ECR privatnom registru su **samo dostupne ovlašćenim korisnicima** unutar vašeg AWS naloga ili onima kojima je data dozvola.
- URI **privatnog repozitorijuma** prati format `<account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>`
- **Kontrola pristupa**: Možete **kontrolisati pristup** svojim privatnim slikama kontejnera koristeći **IAM politike**, i možete konfigurisati precizne dozvole na osnovu korisnika ili uloga.
- **Integracija sa AWS uslugama**: Amazon ECR privatni registri se lako mogu **integrisati sa drugim AWS uslugama**, kao što su EKS, ECS...
- **Druge opcije privatnog registra**:
- Kolona imutabilnosti oznaka prikazuje njen status, ako je imutabilnost oznaka omogućena, ona će **sprečiti** slanje slika sa **već postojećim oznakama** da prepisuju slike.
- Kolona **Tip enkripcije** prikazuje svojstva enkripcije repozitorijuma, prikazuje podrazumevane tipove enkripcije kao što su AES-256, ili ima **KMS** omogućene enkripcije.
- Kolona **Pull through cache** prikazuje njen status, ako je status Pull through cache Aktivan, on će keširati **repozitorijume u spoljnjem javnom repozitorijumu u vaš privatni repozitorijum**.
- Specifične **IAM politike** mogu biti konfigurisane da dodele različite **dozvole**.
- **Konfiguracija skeniranja** omogućava skeniranje na ranjivosti u slikama smeštenim unutar repozitorijuma.

2. **Javni registri**:

- **Javna dostupnost**: Slike kontejnera smeštene u ECR javnom registru su **dostupne svima na internetu bez autentifikacije.**
- URI **javnog repozitorijuma** je poput `public.ecr.aws/<random>/<name>`. Iako deo `<random>` može biti promenjen od strane administratora u drugu lakšu za pamćenje.

**Repozitorijumi**

Ovo su **slike** koje se nalaze u **privatnom registru** ili u **javnom**.

> [!NOTE]
> Imajte na umu da da biste otpremili sliku u repozitorijum, **ECR repozitorijum mora imati isto ime kao slika**.

#### Politike registra i repozitorijuma

**Registri i repozitorijumi** takođe imaju **politike koje se mogu koristiti za dodeljivanje dozvola drugim principima/nalozima**. Na primer, u sledećoj politici repozitorijuma možete videti kako bilo koji korisnik iz cele organizacije može pristupiti slici:

<figure><img src="../../../images/image (280).png" alt=""><figcaption></figcaption></figure>

#### Enumeracija
```bash
# 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>
```
#### Neautentifikovana Enum

{{#ref}}
../aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md
{{#endref}}

#### Privesc

Na sledećoj stranici možete proveriti kako da **zloupotrebite ECR dozvole za eskalaciju privilegija**:

{{#ref}}
../aws-privilege-escalation/aws-ecr-privesc.md
{{#endref}}

#### Post Eksploatacija

{{#ref}}
../aws-post-exploitation/aws-ecr-post-exploitation.md
{{#endref}}

#### Persistencija

{{#ref}}
../aws-persistence/aws-ecr-persistence.md
{{#endref}}

## Reference

- [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}}
