mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-30 06:30:35 -08:00
99 lines
4.8 KiB
Markdown
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}}
|