# AWS - ECS Enum {{#include ../../../banners/hacktricks-training.md}} ## ECS ### Grundinformationen 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 **verwalten**, 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**. Innerhalb 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 benötigten Anforderungen hat. Es ist nicht erforderlich, eine gewünschte Anzahl von Aufgaben, eine Aufgabenplatzierungsstrategie oder Service-Auto-Skalierungsrichtlinien 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 # 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 aws ecs describe-container-instances --cluster --container-instances # Services info aws ecs list-services --cluster aws ecs describe-services --cluster --services aws ecs describe-task-sets --cluster --service # Task definitions aws ecs list-task-definition-families aws ecs list-task-definitions aws ecs list-tasks --cluster aws ecs describe-tasks --cluster --tasks ## Look for env vars and secrets used from the task definition aws ecs describe-task-definition --task-definition : ``` ### Unauthenticated Access {{#ref}} ../aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md {{#endref}} ### Privesc 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}} ### Persistence {{#ref}} ../aws-persistence/aws-ecs-persistence.md {{#endref}} {{#include ../../../banners/hacktricks-training.md}}