AWS - ECS Post Exploitation

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

ECS

Za više informacija proverite:

AWS - ECS Enum

IAM uloge domaćina

U ECS-u se IAM uloga može dodeliti zadatku koji se izvršava unutar kontejnera. Ako je zadatak pokrenut unutar EC2 instance, EC2 instanca će imati još jednu IAM ulogu pridruženu sebi. To znači da ako uspete da kompromitujete ECS instancu, potencijalno možete dobiti IAM ulogu koja je povezana sa ECR-om i EC2 instancom. Za više informacija o tome kako dobiti te akreditive proverite:

Imajte na umu da ako EC2 instanca primenjuje IMDSv2, prema dokumentaciji, odgovor na PUT zahtev će imati ograničenje na jedan skok, što onemogućava pristup EC2 metapodacima iz kontejnera unutar EC2 instance.

Povećanje privilegija na čvoru da bi se ukrale akreditive i tajne drugih kontejnera

Međutim, EC2 koristi docker za pokretanje ECS zadataka, pa ako možete da pobegnete na čvor ili pristupite docker socket-u, možete proveriti koje druge kontejnere se pokreću, pa čak i ući u njih i ukrasti njihove IAM uloge koje su pridružene.

Pokretanje kontejnera na trenutnom domaćinu

Osim toga, uloga EC2 instance obično će imati dovoljno dozvola da ažurira stanje instance kontejnera EC2 instanci koje se koriste kao čvorovi unutar klastera. Napadač bi mogao da izmeni stanje instance na DRAINING, tada će ECS ukloniti sve zadatke sa nje i oni koji se pokreću kao REPLICA će se pokrenuti na drugoj instanci, potencijalno unutar napadačeve instance, tako da može ukrasti njihove IAM uloge i potencijalno osetljive informacije iznutra kontejnera.

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

Ista tehnika može se izvesti odjavljivanjem EC2 instance iz klastera. Ovo je potencijalno manje prikriveno, ali će prisiliti zadatke da se izvršavaju na drugim instancama:

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

Završna tehnika za prinudno ponovno izvršavanje zadataka je da se ECS-u kaže da je zadatak ili kontejner zaustavljen. Postoje 3 potencijalna API-ja za to:

# 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 ...

Ukradi osetljive informacije iz ECR kontejnera

Verovatno će EC2 instanca takođe imati dozvolu ecr:GetAuthorizationToken koja joj omogućava preuzimanje slika (možete pretraživati osetljive informacije u njima).

Nauči hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini da podržite HackTricks:

Last updated