AWS - ECS Post Exploitation

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

ECS

Daha fazla bilgi için kontrol edin:

AWS - ECS Enum

Ana Bilgisayar IAM Roller

ECS'de bir IAM rolü, konteyner içinde çalışan göreve atanabilir. Eğer görev bir EC2 örneğinde çalıştırılıyorsa, EC2 örneğine bağlı başka bir IAM rolü olacaktır. Bu da demek oluyor ki, bir ECS örneğini ele geçirmeyi başarırsanız, ECR ve EC2 örneğiyle ilişkili IAM rolünü potansiyel olarak elde edebilirsiniz. Bu kimlik bilgilerini nasıl elde edeceğiniz hakkında daha fazla bilgi için kontrol edin:

EC2 örneği IMDSv2'yi zorluyorsa, belgelere göre, PUT isteğinin yanıtının 1 atlamalı bir sınırlama olacaktır, bu da EC2 örneği içindeki bir konteynerden EC2 meta verilerine erişimi imkansız hale getirecektir.

Diğer konteyner kimlik bilgilerini ve sırlarını çalmak için düğüme yükseltme

Ancak daha da önemlisi, EC2, ECs görevlerini çalıştırmak için docker kullanır, bu yüzden düğüme kaçabilir veya docker soketine erişebilirseniz, çalışan diğer konteynerleri kontrol edebilir ve hatta içlerine girip bağlı oldukları IAM rollerini çalabilirsiniz.

Konteynerleri mevcut ana bilgisayarda çalıştırma

Ayrıca, EC2 örneği rolü genellikle küme içindeki düğüs olarak kullanılan EC2 örneklerinin konteyner örneği durumunu güncelleme yetkisine sahip olacaktır. Bir saldırgan, bir örneğin durumunu DRAINING olarak değiştirebilir, ardından ECS, tüm görevleri ondan kaldıracak ve REPLICA olarak çalışan görevler, potansiyel olarak saldırganın örneğinde çalışacak şekilde farklı bir örnekte çalıştırılacaktır, böylece konteyner içinden IAM rollerini ve potansiyel hassas bilgileri çalabilir.

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

Aynı teknik, EC2 örneğini kümeden kaydını silerek yapılabilir. Bu potansiyel olarak daha az gizli olabilir, ancak görevlerin başka örneklerde çalışmasını zorlayacaktır:

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

ECS'yi görevin veya konteynerin durdurulduğunu belirterek görevlerin yeniden yürütülmesini zorlamak için son bir teknik, ECS'ye bildirimde bulunmaktır. Bunun için 3 potansiyel API bulunmaktadır:

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

ECR konteynerlerinden hassas bilgileri çalma

EC2 örneği muhtemelen ecr:GetAuthorizationToken iznine de sahip olacak, bu da ona görüntüleri indirme yeteneği sağlar (onlarda hassas bilgiler arayabilirsiniz).

htARTE (HackTricks AWS Red Team Expert)

HackTricks'i desteklemenin diğer yolları:

Last updated