AWS - ECS Post Exploitation
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
ECS
Za više informacija proverite:
Host IAM Roles
U ECS, IAM uloga može biti dodeljena zadatku koji se izvršava unutar kontejnera. Ako se zadatak izvršava unutar EC2 instance, EC2 instanca će imati drugu IAM ulogu pridruženu.
Što znači da ako uspete da kompromitujete ECS instancu, potencijalno možete dobiti IAM ulogu povezanu sa ECR-om i sa EC2 instancom. Za više informacija o tome kako dobiti te kredencijale, proverite:
caution
Imajte na umu da ako EC2 instanca primenjuje IMDSv2, prema dokumentaciji, odgovor PUT zahteva će imati hop limit od 1, što onemogućava pristup EC2 metapodacima iz kontejnera unutar EC2 instance.
Privesc to node to steal other containers creds & secrets
Ali pored toga, EC2 koristi docker za pokretanje ECs zadataka, tako da ako možete da pobegnete na čvor ili pristupite docker socket-u, možete proveriti koji se drugi kontejneri pokreću, i čak ući u njih i ukrasti njihove IAM uloge.
Making containers run in current host
Pored toga, EC2 instanca uloga obično će imati dovoljno dozvola da ažurira stanje kontejnerske instance 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 izvršavaju kao REPLICA će biti pokrenuti na drugoj instanci, potencijalno unutar napadačeve instance tako da može ukrasti njihove IAM uloge i potencijalno osetljive informacije iz kontejnera.
aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>
Ista tehnika se može primeniti 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
Zadnja tehnika za prisiljavanje ponovnog izvršavanja zadataka je da se ECS-u naznači da je zadatak ili kontejner zaustavljen. Postoje 3 potencijalne 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 ...
Ukrao osetljive informacije iz ECR kontejnera
EC2 instanca će verovatno imati dozvolu ecr:GetAuthorizationToken
koja joj omogućava da preuzme slike (možete tražiti osetljive informacije u njima).
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.