AWS - ECS Post Exploitation

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

ECS

Kwa maelezo zaidi angalia:

AWS - ECS Enum

Host IAM Roles

Katika ECS, IAM role inaweza kupewa kazi inayokimbia ndani ya kontena. Ikiwa kazi inakimbia ndani ya EC2 instance, EC2 instance itakuwa na IAM role nyingine iliyounganishwa nayo.
Hii inamaanisha kwamba ikiwa utaweza kudukua instance ya ECS unaweza kupata IAM role inayohusiana na ECR na EC2 instance. Kwa maelezo zaidi kuhusu jinsi ya kupata akreditivu hizo angalia:

Cloud SSRF - HackTricks

caution

Kumbuka kwamba ikiwa EC2 instance inatekeleza IMDSv2, kulingana na nyaraka, jibu la ombi la PUT litakuwa na hop limit ya 1, na kufanya iwe vigumu kufikia metadata ya EC2 kutoka kwa kontena ndani ya EC2 instance.

Privesc to node to steal other containers creds & secrets

Lakini zaidi, EC2 inatumia docker kuendesha kazi za EC, hivyo ikiwa unaweza kutoroka hadi node au kupata ufikiaji wa docker socket, unaweza kuangalia ni kontena gani nyingine zinazoendesha, na hata kuingia ndani yao na kuchukua IAM roles zao zilizounganishwa.

Making containers run in current host

Zaidi ya hayo, EC2 instance role kwa kawaida itakuwa na idhini ya kutosha kuboresha hali ya instance ya kontena za EC2 zinazotumika kama nodes ndani ya klasta. Mshambuliaji anaweza kubadilisha hali ya instance kuwa DRAINING, kisha ECS it ondoe kazi zote kutoka kwake na zile zinazokimbia kama REPLICA zita kimbia katika instance tofauti, labda ndani ya instance ya mshambuliaji ili aweze kuchukua IAM roles zao na taarifa nyeti zinazoweza kuwa ndani ya kontena.

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

Teknolojia hiyo hiyo inaweza kufanywa kwa kuondoa EC2 instance kutoka kwa kundi. Hii inaweza kuwa na ufanisi mdogo lakini it lazimisha kazi kufanywa katika instances nyingine:

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

Teknolojia ya mwisho kulazimisha upya utekelezaji wa kazi ni kwa kuashiria ECS kwamba kazi au kontena ilisimamishwa. Kuna APIs 3 zinazoweza kutumika kufanya hivi:

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

Kuiba taarifa nyeti kutoka kwa kontena za ECR

Ili hali ya EC2 inaweza pia kuwa na ruhusa ecr:GetAuthorizationToken ikiruhusu kupakua picha (unaweza kutafuta taarifa nyeti ndani yao).

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks