Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md

3.2 KiB

AWS - ECS Post Exploitation

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

ECS

Vir meer inligting, kyk:

{{#ref}} ../aws-services/aws-ecs-enum.md {{#endref}}

Host IAM Roles

In ECS kan 'n IAM rol aan die taak toegeken word wat binne die houer loop. As die taak binne 'n EC2 instansie loop, sal die EC2 instansie 'n ander IAM rol aan dit hê.
Dit beteken dat as jy daarin slaag om 'n ECS instansie te kompromitteer, jy potensieel die IAM rol geassosieer met die ECR en die EC2 instansie kan verkry. Vir meer inligting oor hoe om daardie akrediteer te kry, kyk:

{{#ref}} https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html {{#endref}}

Caution

Let daarop dat as die EC2 instansie IMDSv2 afdwing, volgens die dokumentasie, die antwoord van die PUT versoek 'n hop limiet van 1 sal hê, wat dit onmoontlik maak om toegang tot die EC2 metadata vanaf 'n houer binne die EC2 instansie te verkry.

Privesc to node to steal other containers creds & secrets

Maar verder, gebruik EC2 docker om ECs take te loop, so as jy kan ontsnap na die node of toegang tot die docker socket kan kry, kan jy kyk watter ander houers aan die gang is, en selfs binne hulle gaan en hulle IAM rolle steel.

Making containers run in current host

Boonop sal die EC2 instansie rol gewoonlik genoeg toestemmings hê om die toestand van die houer instansie van die EC2 instansies wat as nodes binne die kluster gebruik word, te opdateer. 'n Aanvaller kan die toestand van 'n instansie na DRAINING verander, dan sal ECS alle take daarvan verwyder en diegene wat as REPLICA loop, sal in 'n ander instansie loop, potensieel binne die aanvaller se instansie sodat hy hulle IAM rolle en potensieel sensitiewe inligting van binne die houer kan steel.

aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>

Die dieselfde tegniek kan gedoen word deur die EC2-instantie van die kluster af te deregistreer. Dit is potensieel minder stil, maar dit sal die take dwing om in ander instanties uitgevoer te word:

aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force

'n Finale tegniek om die heruitvoering van take te dwing, is deur aan ECS aan te dui dat die taak of houer gestop is. Daar is 3 potensiële API's om dit te doen:

# Needs: ecs:SubmitTaskStateChange
aws ecs submit-task-state-change --cluster <value> \
--status STOPPED --reason "anything" --containers [...]

# Needs: ecs:SubmitContainerStateChange
aws ecs submit-container-state-change ...

# Needs: ecs:SubmitAttachmentStateChanges
aws ecs submit-attachment-state-changes ...

Steel sensitiewe inligting van ECR houers

Die EC2-instantie sal waarskynlik ook die toestemming ecr:GetAuthorizationToken hê wat dit toelaat om beelde af te laai (jy kan sensitiewe inligting daarin soek).

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