AWS - ECS Privesc
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
ECS hakkında daha fazla bilgi için:
AWS - ECS Enumiam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
ve ecs:RunTask
izinlerini kötüye kullanan bir saldırgan, metadata kimlik bilgilerini çalan kötü niyetli bir konteyner ile yeni bir görev tanımı oluşturabilir ve çalıştırabilir.
Potansiyel Etki: Farklı bir ECS rolüne doğrudan yetki yükseltme.
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
Önceki örnekte olduğu gibi, ECS'de iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
izinlerini kötüye kullanan bir saldırgan, kötü niyetli bir konteyner ile yeni bir görev tanımı oluşturabilir ve çalıştırabilir.
Ancak, bu durumda, kötü niyetli görev tanımını çalıştırmak için bir konteyner örneği olması gerekmektedir.
Olası Etki: Herhangi bir ECS rolüne doğrudan yetki yükseltme.
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
Önceki örnekte olduğu gibi, iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
veya ecs:CreateService
izinlerini kötüye kullanan bir saldırgan, metadata kimlik bilgilerini çalan kötü niyetli bir konteyner ile yeni bir görev tanımı oluşturabilir ve en az 1 görev çalıştırarak yeni bir hizmet oluşturarak bunu çalıştırabilir.
Olası Etki: Herhangi bir ECS rolüne doğrudan yetki yükseltme.
iam:PassRole
, (ecs:UpdateService|ecs:CreateService)
Aslında, bu izinlerle, bir konteynerde rastgele bir rol ile rastgele komutlar çalıştırmak için geçersiz kılmalar kullanmak mümkündür:
Olası Etki: Herhangi bir ECS rolüne doğrudan privesc.
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
Bu senaryo, önceki senaryolar gibidir ancak iam:PassRole
izni olmaksızın.
Bu hala ilginçtir çünkü eğer rastgele bir konteyner çalıştırabiliyorsanız, rol olmadan bile, düğümden kaçmak için ayrıcalıklı bir konteyner çalıştırabilir ve EC2 IAM rolünü ve düğümde çalışan diğer ECS konteyner rollerini ç steal edebilirsiniz.
Hatta ele geçirdiğiniz EC2 örneği içinde diğer görevlerin çalışmasını zorlayabilir ve kimlik bilgilerini ç steal edebilirsiniz (bu, Düğüm bölümüne privesc kısmında tartışılmıştır).
Bu saldırı yalnızca ECS kümesinin EC2 örneklerini kullanması durumunda mümkündür, Fargate değil.
ecs:ExecuteCommand
, ecs:DescribeTasks,
(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:ExecuteCommand
, ecs:DescribeTasks
olan bir saldırgan, çalışan bir konteynerin içinde komutlar çalıştırabilir ve ona bağlı IAM rolünü dışarı sızdırabilir (bunu yapmak için aws ecs execute-command
çalıştırmak gerekli olduğu için tanımlama izinlerine ihtiyacınız var).
Ancak, bunu yapmak için konteyner örneğinin ExecuteCommand ajanını çalıştırıyor olması gerekir (varsayılan olarak değildir).
Bu nedenle, saldırgan şunları denemek isteyebilir:
Her çalışan konteynerde bir komut çalıştırmayı deneyin
Eğer ecs:RunTask
iznine sahipse, bir görevi aws ecs run-task --enable-execute-command [...]
ile çalıştırın.
Eğer ecs:StartTask
iznine sahipse, bir görevi aws ecs start-task --enable-execute-command [...]
ile çalıştırın.
Eğer ecs:CreateService
iznine sahipse, bir hizmet oluşturun aws ecs create-service --enable-execute-command [...]
ile.
Eğer ecs:UpdateService
iznine sahipse, bir hizmeti aws ecs update-service --enable-execute-command [...]
ile güncelleyin.
Bu seçeneklerin örneklerini önceki ECS privesc bölümlerinde bulabilirsiniz.
Potansiyel Etki: Konteynerlere bağlı farklı bir role privesc.
ssm:StartSession
Bu izni nasıl kötüye kullanabileceğinizi ssm privesc sayfasında kontrol edin ECS'ye privesc yapmak için:
AWS - SSM Privesciam:PassRole
, ec2:RunInstances
Bu izinleri nasıl kötüye kullanabileceğinizi ec2 privesc sayfasında kontrol edin ECS'ye privesc yapmak için:
AWS - EC2 Privesc?ecs:RegisterContainerInstance
TODO: Farklı bir AWS hesabından bir örneği kaydetmek mümkün mü, böylece görevler saldırgan tarafından kontrol edilen makinelerde çalıştırılabilir mi??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: Bunu test et
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
ve ecs:DescribeTaskSets
izinlerine sahip bir saldırgan, mevcut bir ECS hizmeti için kötü niyetli bir görev seti oluşturabilir ve birincil görev setini güncelleyebilir. Bu, saldırgana hizmet içinde rastgele kod çalıştırma imkanı tanır.
Potansiyel Etki: Etkilenen hizmette rastgele kod çalıştırmak, bu hizmetin işlevselliğini etkileyebilir veya hassas verilerin sızdırılmasına neden olabilir.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)