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

81 lines
4.8 KiB
Markdown

# AWS - ECS Enum
{{#include ../../../banners/hacktricks-training.md}}
## ECS
### Grundlegende Informationen
Amazon **Elastic Container Services** oder ECS bietet eine Plattform, um **containerisierte Anwendungen in der Cloud zu hosten**. ECS hat zwei **Bereitstellungsmethoden**, **EC2** Instanztyp und eine **serverlose** Option, **Fargate**. Der Dienst **macht das Ausführen von Containern in der Cloud sehr einfach und schmerzfrei**.
ECS funktioniert mit den folgenden drei Bausteinen: **Cluster**, **Dienste** und **Aufgabendefinitionen**.
- **Cluster** sind **Gruppen von Containern**, die in der Cloud ausgeführt werden. Wie bereits erwähnt, gibt es zwei Starttypen für Container, EC2 und Fargate. AWS definiert den **EC2** Starttyp als die Möglichkeit für Kunden, „\[ihre\] containerisierten Anwendungen auf einem Cluster von Amazon EC2-Instanzen, die \[sie\] **verwaltet**“ auszuführen. **Fargate** ist ähnlich und wird definiert als „\[ermöglicht\] Ihnen, Ihre containerisierten Anwendungen **ohne die Notwendigkeit, die Backend-Infrastruktur bereitzustellen und zu verwalten** auszuführen“.
- **Dienste** werden innerhalb eines Clusters erstellt und sind verantwortlich für **das Ausführen der Aufgaben**. In einer Dienstdefinition **definieren Sie die Anzahl der auszuführenden Aufgaben, die automatische Skalierung, den Kapazitätsanbieter (Fargate/EC2/Extern),** **Netzwerkinformationen** wie VPCs, Subnetze und Sicherheitsgruppen.
- Es gibt **2 Arten von Anwendungen**:
- **Dienst**: Eine Gruppe von Aufgaben, die eine lang laufende Rechenarbeit verwaltet, die gestoppt und neu gestartet werden kann. Zum Beispiel eine Webanwendung.
- **Aufgabe**: Eine eigenständige Aufgabe, die ausgeführt und beendet wird. Zum Beispiel ein Batch-Job.
- Unter den Dienstanwendungen gibt es **2 Arten von Dienstplanern**:
- [**REPLICA**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Die Replikationsplanungsstrategie platziert und **pflegt die gewünschte Anzahl** von Aufgaben in Ihrem Cluster. Wenn aus irgendeinem Grund eine Aufgabe heruntergefahren wird, wird eine neue auf demselben oder einem anderen Knoten gestartet.
- [**DAEMON**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Setzt genau eine Aufgabe auf jeder aktiven Containerinstanz ein, die die erforderlichen Anforderungen hat. Es ist nicht erforderlich, eine gewünschte Anzahl von Aufgaben, eine Aufgabenplatzierungsstrategie oder Service-Auto-Scaling-Richtlinien anzugeben.
- **Aufgabendefinitionen** sind verantwortlich für **die Definition, welche Container ausgeführt werden** und die verschiedenen Parameter, die mit den Containern konfiguriert werden, wie **Portzuordnungen** mit dem Host, **Umgebungsvariablen**, Docker **Einstiegspunkt**...
- Überprüfen Sie **Umgebungsvariablen auf sensible Informationen**!
### Sensible Daten in Aufgabendefinitionen
Aufgabendefinitionen sind verantwortlich für **die Konfiguration der tatsächlichen Container, die in ECS ausgeführt werden**. Da Aufgabendefinitionen definieren, wie Container ausgeführt werden, kann eine Fülle von Informationen darin gefunden werden.
Pacu kann ECS auflisten (list-clusters, list-container-instances, list-services, list-task-definitions), es kann auch Aufgabendefinitionen dumpen.
### Aufzählung
```bash
# Clusters info
aws ecs list-clusters
aws ecs describe-clusters --clusters <cluster>
# Container instances
## An Amazon ECS container instance is an Amazon EC2 instance that is running the Amazon ECS container agent and has been registered into an Amazon ECS cluster.
aws ecs list-container-instances --cluster <cluster>
aws ecs describe-container-instances --cluster <cluster> --container-instances <container_instance_arn>
# Services info
aws ecs list-services --cluster <cluster>
aws ecs describe-services --cluster <cluster> --services <services>
aws ecs describe-task-sets --cluster <cluster> --service <service>
# Task definitions
aws ecs list-task-definition-families
aws ecs list-task-definitions
aws ecs list-tasks --cluster <cluster>
aws ecs describe-tasks --cluster <cluster> --tasks <tasks>
## Look for env vars and secrets used from the task definition
aws ecs describe-task-definition --task-definition <TASK_NAME>:<VERSION>
```
### Unauthentifizierter Zugriff
{{#ref}}
../aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md
{{#endref}}
### Privilegieneskalation
Auf der folgenden Seite können Sie überprüfen, wie man **ECS-Berechtigungen missbraucht, um Privilegien zu eskalieren**:
{{#ref}}
../aws-privilege-escalation/aws-ecs-privesc.md
{{#endref}}
### Post-Exploitation
{{#ref}}
../aws-post-exploitation/aws-ecs-post-exploitation.md
{{#endref}}
### Persistenz
{{#ref}}
../aws-persistence/aws-ecs-persistence.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}