AWS - ECS Privesc
ECS
Više informacija o ECS-u možete pronaći u:
AWS - ECS Enumiam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
Napadač koji zloupotrebljava dozvole iam:PassRole
, ecs:RegisterTaskDefinition
i ecs:RunTask
u ECS-u može generisati novu definiciju zadatka sa zlonamernim kontejnerom koji krade metapodatke o akreditacijama i pokrenuti ga.
Potencijalni uticaj: Direktno povećanje privilegija na drugu ECS ulogu.
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
Kao i u prethodnom primeru, napadač koji zloupotrebljava dozvole iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
u ECS-u može generisati novu definiciju zadatka sa zlonamernim kontejnerom koji krade metapodatke o akreditacijama i pokrenuti je.
Međutim, u ovom slučaju, potrebno je da postoji instanca kontejnera za pokretanje zlonamernog zadatka.
Potencijalni uticaj: Direktno povećanje privilegija za bilo koju ECS ulogu.
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
Kao i u prethodnom primeru, napadač koji zloupotrebljava dozvole iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
ili ecs:CreateService
u ECS-u može generisati novu definiciju zadatka sa zlonamernim kontejnerom koji krade metapodatke o akreditacijama i pokrenuti ga kreiranjem nove usluge sa najmanje 1 pokrenutim zadatkom.
Potencijalni uticaj: Direktno povećanje privilegija za bilo koju ECS ulogu.
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
Ovaj scenario je sličan prethodnim, ali bez dozvole iam:PassRole
. Ovo je i dalje interesantno jer ako možete pokrenuti proizvoljan kontejner, čak i bez uloge, možete pokrenuti privilegovan kontejner da pobegnete na čvor i ukrasti EC2 IAM ulogu i uloge drugih ECS kontejnera koji se izvršavaju na čvoru. Čak možete prisiliti druge zadatke da se izvršavaju unutar EC2 instance koju ste kompromitovali kako biste ukrali njihove akreditive (kao što je opisano u odeljku Povećanje privilegija na čvoru).
Ovaj napad je moguć samo ako ECS klaster koristi EC2 instance, a ne Fargate.
ecs:ExecuteCommand
, ecs:DescribeTasks,
(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:ExecuteCommand
, ecs:DescribeTasks,
(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
Napadač sa dozvolama ecs:ExecuteCommand
, ecs:DescribeTasks
može izvršavati komande unutar pokrenutog kontejnera i izvlačiti IAM ulogu koja je pridružena kontejneru (potrebne su dozvole za opisivanje jer je potrebno pokrenuti aws ecs execute-command
).
Međutim, da bi to uradio, instanca kontejnera mora imati pokrenut ExecuteCommand agent (što nije podrazumevano).
Stoga, napadač može pokušati:
Pokušati izvršiti komandu u svakom pokrenutom kontejneru
Ako ima
ecs:RunTask
, pokreni zadatak saaws ecs run-task --enable-execute-command [...]
Ako ima
ecs:StartTask
, pokreni zadatak saaws ecs start-task --enable-execute-command [...]
Ako ima
ecs:CreateService
, kreiraj uslugu saaws ecs create-service --enable-execute-command [...]
Ako ima
ecs:UpdateService
, ažuriraj uslugu saaws ecs update-service --enable-execute-command [...]
Primjeri ovih opcija se mogu pronaći u prethodnim sekcijama ECS privesc.
Potencijalni uticaj: Privesc na drugu ulogu koja je povezana sa kontejnerima.
ssm:StartSession
ssm:StartSession
Provjerite na stranici o ssm privesc kako možete iskoristiti ovu dozvolu za privesc na ECS:
AWS - SSM Privesciam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
Provjerite na stranici o ec2 privesc kako možete iskoristiti ove dozvole za privesc na ECS:
AWS - EC2 Privesc?ecs:RegisterContainerInstance
?ecs:RegisterContainerInstance
TODO: Da li je moguće registrovati instancu iz drugog AWS naloga tako da zadaci budu pokrenuti na mašinama koje kontroliše napadač??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: Testiraj ovo
Napadač sa dozvolama ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
i ecs:DescribeTaskSets
može kreirati zlonamjerni skup zadataka za postojeću ECS uslugu i ažurirati primarni skup zadataka. To omogućava napadaču da izvršava proizvoljni kod unutar usluge.
Potencijalni uticaj: Izvršavanje proizvoljnog koda u pogođenoj usluzi, potencijalno utičući na njenu funkcionalnost ili izvlačenje osetljivih podataka.
Reference
Last updated