# AWS - ECS Enum

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

## ECS

### Basiese Inligting

Amazon **Elastic Container Services** of ECS bied 'n platform om **gecontaineriseerde toepassings in die wolk te huisves**. ECS het twee **ontplooiing** metodes, **EC2** instansie tipe en 'n **serverless** opsie, **Fargate**. Die diens **maak dit baie maklik en probleemloos om houers in die wolk te laat loop**.

ECS werk met die volgende drie boublokke: **Clusters**, **Dienste**, en **Taak Definisies**.

- **Clusters** is **groepe van houers** wat in die wolk loop. Soos voorheen genoem, is daar twee lanseringstipes vir houers, EC2 en Fargate. AWS definieer die **EC2** lanseringstype as wat kliënte “toelaat om \[hul] gecontaineriseerde toepassings op 'n kluster van Amazon EC2 instansies wat \[hul] **bestuur**” te laat loop. **Fargate** is soortgelyk en word gedefinieer as “\[wat] jou toelaat om jou gecontaineriseerde toepassings **sonder die behoefte om** die agtergrondinfrastruktuur te voorsien en te bestuur”.
- **Dienste** word binne 'n kluster geskep en is verantwoordelik vir **die uitvoering van die take**. Binne 'n diensdefinisie **definieer jy die aantal take om te loop, outo-skaal, kapasiteitsverskaffer (Fargate/EC2/Buitenshuise),** **netwerk** inligting soos VPC’s, subnetwerke, en sekuriteitsgroepe.
- Daar is **2 tipes toepassings**:
- **Diens**: 'n Groep take wat 'n langlopende rekenaarwerk hanteer wat gestop en herbegin kan word. Byvoorbeeld, 'n webtoepassing.
- **Taak**: 'n Standalone taak wat loop en beëindig. Byvoorbeeld, 'n batch werk.
- Onder die diens toepassings, is daar **2 tipes diens skeduleerders**:
- [**REPLICA**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Die replika skeduleringstrategie plaas en **onderhou die gewenste aantal** take oor jou kluster. As om een of ander rede 'n taak afsluit, word 'n nuwe een in dieselfde of 'n ander node gelanseer.
- [**DAEMON**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Ontplooi presies een taak op elke aktiewe houerinstansie wat die nodige vereistes het. Daar is geen behoefte om 'n gewenste aantal take, 'n taak plasingstrategie, of diens outo-skaalbeleide te spesifiseer nie.
- **Taak Definisies** is verantwoordelik vir **die definisie van watter houers sal loop** en die verskillende parameters wat saam met die houers geconfigureer sal word soos **poorttoewysings** met die gasheer, **omgewing veranderlikes**, Docker **entrypoint**...
- Kyk na **omgewing veranderlikes vir sensitiewe inligting**!

### Sensitiewe Gegewens In Taak Definisies

Taak definisies is verantwoordelik vir **die konfigurasie van die werklike houers wat in ECS sal loop**. Aangesien taak definisies definieer hoe houers sal loop, kan 'n oorvloed van inligting daarin gevind word.

Pacu kan ECS opnoem (lys-klusters, lys-houer-instansies, lys-dienste, lys-taak-definisies), dit kan ook taak definisies dump. 

### Opname
```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>
```
### Ongeauthentiseerde Toegang

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

### Privilege Escalation

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

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

### Post Exploitatie

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

### Volharding

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

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