# AWS - ECR Enum

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

## ECR

### Basiese Inligting

Amazon **Elastic Container Registry** (Amazon ECR) is 'n **bestuurde houerbeeld registrasiediens**. Dit is ontwerp om 'n omgewing te bied waar kliënte met hul houerbeelde kan interaksie hê deur middel van bekende koppelvlakke. Spesifiek word die gebruik van die Docker CLI of enige verkiesde kliënt ondersteun, wat aktiwiteite soos die stoot, trek en bestuur van houerbeelde moontlik maak.

ECR bestaan uit 2 tipes voorwerpe: **Registries** en **Repositories**.

**Registries**

Elke AWS-rekening het 2 registries: **Privaat** & **Publiek**.

1. **Privaat Registries**:

- **Privaat per standaard**: Die houerbeelde wat in 'n Amazon ECR privaat registry gestoor word, is **slegs toeganklik vir gemagtigde gebruikers** binne jou AWS-rekening of vir diegene aan wie toestemming gegee is.
- Die URI van 'n **privaat repository** volg die formaat `<account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>`
- **Toegangsbeheer**: Jy kan **toegang** tot jou privaat houerbeelde beheer deur middel van **IAM-beleide**, en jy kan fyn-granige toestemmings op grond van gebruikers of rolle konfigureer.
- **Integrasie met AWS-dienste**: Amazon ECR privaat registries kan maklik **geïntegreer word met ander AWS-dienste**, soos EKS, ECS...
- **Ander privaat registry opsies**:
- Die Tag onveranderlikheid kolom lys sy status, as tag onveranderlikheid geaktiveer is, sal dit **voorkom** dat beeld **stoot** met **bestaande tags** die beelde oorskryf.
- Die **Enkripsietipe** kolom lys die enkripsie eienskappe van die repository, dit wys die standaard enkripsietipes soos AES-256, of het **KMS** geaktiveerde enkripsies.
- Die **Trek deur kas** kolom lys sy status, as die Trek deur kas status Aktief is, sal dit **repositories in 'n eksterne publieke repository in jou privaat repository kas**.
- Spesifieke **IAM-beleide** kan gekonfigureer word om verskillende **toestemmings** te verleen.
- Die **skandeer konfigurasie** laat toe om kwesbaarhede in die beelde wat binne die repo gestoor is, te skandeer.

2. **Publieke Registries**:

- **Publieke toeganklikheid**: Houerbeelde wat in 'n ECR Publieke registry gestoor word, is **toeganklik vir enigiemand op die internet sonder verifikasie.**
- Die URI van 'n **publieke repository** is soos `public.ecr.aws/<random>/<name>`. Alhoewel die `<random>` deel deur die admin na 'n ander string wat makliker om te onthou is, verander kan word.

**Repositories**

Dit is die **beelde** wat in die **privaat registry** of in die **publieke** een is.

> [!NOTE]
> Let daarop dat om 'n beeld na 'n repository op te laai, die **ECR repository dieselfde naam as die beeld moet hê**.

#### Registry & Repository Beleide

**Registries & repositories** het ook **beleide wat gebruik kan word om toestemmings aan ander principals/rekeninge te verleen**. Byvoorbeeld, in die volgende repository beleid beeld kan jy sien hoe enige gebruiker van die hele organisasie toegang tot die beeld sal hê:

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

### Enumerasie
```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>
```
### Ongeauthentiseerde Enum

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

### Privesc

In die volgende bladsy kan jy kyk hoe om **ECR-toestemmings te misbruik om voorregte te verhoog**:

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

### Post Exploitatie

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

### Volharding

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

## Verwysings

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