Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md

99 lines
4.8 KiB
Markdown

# AWS - ECR Enum
{{#include ../../../banners/hacktricks-training.md}}
## ECR
### Grundlegende Informationen
Amazon **Elastic Container Registry** (Amazon ECR) ist ein **verwalteter Container-Image-Registry-Dienst**. Er wurde entwickelt, um eine Umgebung bereitzustellen, in der Kunden mit ihren Container-Images über bekannte Schnittstellen interagieren können. Insbesondere wird die Verwendung der Docker CLI oder eines bevorzugten Clients unterstützt, was Aktivitäten wie das Pushen, Pullen und Verwalten von Container-Images ermöglicht.
ECR besteht aus 2 Arten von Objekten: **Registries** und **Repositories**.
**Registries**
Jedes AWS-Konto hat 2 Registries: **Privat** & **Öffentlich**.
1. **Private Registries**:
- **Standardmäßig privat**: Die in einer Amazon ECR privaten Registry gespeicherten Container-Images sind **nur für autorisierte Benutzer** innerhalb Ihres AWS-Kontos oder für diejenigen zugänglich, denen Berechtigungen erteilt wurden.
- Die URI eines **privaten Repositories** folgt dem Format `<account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>`
- **Zugriffskontrolle**: Sie können den **Zugriff** auf Ihre privaten Container-Images mithilfe von **IAM-Richtlinien** steuern, und Sie können feingranulare Berechtigungen basierend auf Benutzern oder Rollen konfigurieren.
- **Integration mit AWS-Diensten**: Amazon ECR private Registries können leicht **in andere AWS-Dienste** integriert werden, wie EKS, ECS...
- **Weitere Optionen für private Registries**:
- Die Spalte zur Tag-Unveränderlichkeit listet ihren Status auf; wenn die Tag-Unveränderlichkeit aktiviert ist, wird sie **verhindern**, dass Images mit **bereits vorhandenen Tags** überschrieben werden.
- Die Spalte **Verschlüsselungstyp** listet die Verschlüsselungseigenschaften des Repositories auf, sie zeigt die Standardverschlüsselungstypen wie AES-256 oder hat **KMS** aktivierte Verschlüsselungen.
- Die Spalte **Pull through cache** listet ihren Status auf; wenn der Pull through cache-Status aktiv ist, werden **Repositories in einem externen öffentlichen Repository in Ihr privates Repository** zwischengespeichert.
- Spezifische **IAM-Richtlinien** können konfiguriert werden, um unterschiedliche **Berechtigungen** zu gewähren.
- Die **Scan-Konfiguration** ermöglicht das Scannen nach Schwachstellen in den im Repository gespeicherten Images.
2. **Öffentliche Registries**:
- **Öffentliche Zugänglichkeit**: Container-Images, die in einer ECR Public Registry gespeichert sind, sind **für jeden im Internet ohne Authentifizierung zugänglich.**
- Die URI eines **öffentlichen Repositories** ist wie `public.ecr.aws/<random>/<name>`. Obwohl der `<random>`-Teil vom Administrator in eine andere, leichter zu merkende Zeichenfolge geändert werden kann.
**Repositories**
Dies sind die **Images**, die in der **privaten Registry** oder in der **öffentlichen** gespeichert sind.
> [!NOTE]
> Beachten Sie, dass der **ECR-Repository denselben Namen wie das Image haben muss**, um ein Image in ein Repository hochzuladen.
#### Registry- & Repository-Richtlinien
**Registries & Repositories** haben auch **Richtlinien, die verwendet werden können, um Berechtigungen an andere Prinzipale/Konten zu gewähren**. Zum Beispiel können Sie im folgenden Repository-Richtlinienbild sehen, wie jeder Benutzer aus der gesamten Organisation auf das Image zugreifen kann:
<figure><img src="../../../images/image (280).png" alt=""><figcaption></figcaption></figure>
### Enumeration
```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>
```
### Unauthenticated Enum
{{#ref}}
../aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md
{{#endref}}
### Privesc
Auf der folgenden Seite können Sie überprüfen, wie man **ECR-Berechtigungen missbraucht, um Privilegien zu eskalieren**:
{{#ref}}
../aws-privilege-escalation/aws-ecr-privesc.md
{{#endref}}
### Post Exploitation
{{#ref}}
../aws-post-exploitation/aws-ecr-post-exploitation.md
{{#endref}}
### Persistence
{{#ref}}
../aws-persistence/aws-ecr-persistence.md
{{#endref}}
## References
- [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}}