AWS - ECS Enum
Reading time: 5 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
ECS
Informazioni di base
Amazon Elastic Container Services o ECS fornisce una piattaforma per ospitare applicazioni containerizzate nel cloud. ECS ha due metodi di distribuzione, tipo di istanza EC2 e un'opzione serverless, Fargate. Il servizio rende molto facile e senza problemi eseguire container nel cloud.
ECS opera utilizzando i seguenti tre elementi fondamentali: Cluster, Servizi e Definizioni di Task.
- Cluster sono gruppi di container che stanno girando nel cloud. Come già accennato, ci sono due tipi di avvio per i container, EC2 e Fargate. AWS definisce il tipo di avvio EC2 come che consente ai clienti “di eseguire [le loro] applicazioni containerizzate su un cluster di istanze Amazon EC2 che [essi] gestiscono”. Fargate è simile e viene definito come “[consentendo] di eseguire le proprie applicazioni containerizzate senza la necessità di fornire e gestire l'infrastruttura di backend”.
- Servizi vengono creati all'interno di un cluster e sono responsabili per eseguire i task. All'interno di una definizione di servizio si definisce il numero di task da eseguire, l'auto scaling, il fornitore di capacità (Fargate/EC2/Esterno), informazioni di networking come VPC, subnet e gruppi di sicurezza.
- Ci sono 2 tipi di applicazioni:
- Servizio: Un gruppo di task che gestisce un lavoro di calcolo a lungo termine che può essere interrotto e riavviato. Ad esempio, un'applicazione web.
- Task: Un task autonomo che viene eseguito e termina. Ad esempio, un lavoro batch.
- Tra le applicazioni di servizio, ci sono 2 tipi di pianificatori di servizio:
- REPLICA: La strategia di pianificazione replica posiziona e mantiene il numero desiderato di task nel tuo cluster. Se per qualche motivo un task si spegne, ne viene avviato uno nuovo nello stesso o in un nodo diverso.
- DAEMON: Distribuisce esattamente un task su ciascuna istanza di container attiva che ha i requisiti necessari. Non è necessario specificare un numero desiderato di task, una strategia di posizionamento dei task o utilizzare le politiche di Auto Scaling del Servizio.
- Definizioni di Task sono responsabili per definire quali container verranno eseguiti e i vari parametri che verranno configurati con i container come mappature delle porte con l'host, variabili d'ambiente, entrypoint di Docker...
- Controlla le variabili d'ambiente per informazioni sensibili!
Dati sensibili nelle Definizioni di Task
Le definizioni di task sono responsabili per configurare i container effettivi che verranno eseguiti in ECS. Poiché le definizioni di task definiscono come verranno eseguiti i container, una miriade di informazioni può essere trovata al loro interno.
Pacu può enumerare ECS (list-clusters, list-container-instances, list-services, list-task-definitions), può anche estrarre le definizioni di task.
Enumerazione
# 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>
Accesso non autenticato
AWS - ECS Unauthenticated Enum
Privesc
Nella pagina seguente puoi controllare come abusare delle autorizzazioni ECS per escalare i privilegi:
Post Exploitation
Persistenza
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.