AWS - ECS Privesc
ECS
More info about ECS in:
AWS - ECS Enumiam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
Mshambuliaji anayekandamiza ruhusa ya iam:PassRole
, ecs:RegisterTaskDefinition
na ecs:RunTask
katika ECS anaweza kuunda tafsiri mpya ya kazi yenye konteina mbaya inayopora akidi za metadata na kuikimbia.
Madhara Yanayoweza Kutokea: Privesc moja kwa moja kwa jukumu tofauti la ECS.
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
Kama ilivyo katika mfano wa awali, mshambuliaji anayekandamiza ruhusa za iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
katika ECS anaweza kuunda tafsiri mpya ya kazi yenye konteina mbaya inayopora akidi za metadata na kuikimbia.
Hata hivyo, katika kesi hii, inahitajika kuwa na mfano wa konteina ili kuendesha tafsiri mbaya ya kazi.
Madhara Yanayoweza Kutokea: Privesc moja kwa moja kwa jukumu lolote la ECS.
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
Kama ilivyo katika mfano wa awali, mshambuliaji anayekandamiza ruhusa za iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
au ecs:CreateService
katika ECS anaweza kuunda tafsiri mpya ya kazi yenye konteina mbaya inayopora akidi za metadata na kuikimbia kwa kuunda huduma mpya yenye angalau kazi 1 inayoendelea.
Madhara Yanayoweza Kutokea: Privesc moja kwa moja kwa jukumu lolote la ECS.
iam:PassRole
, (ecs:UpdateService|ecs:CreateService)
iam:PassRole
, (ecs:UpdateService|ecs:CreateService)
Kwa kweli, kwa ruhusa hizo tu inawezekana kutumia overrides kutekeleza amri zisizo na mipaka katika kontena lenye jukumu lolote kwa kutumia kitu kama:
Madhara Yanayoweza Kutokea: Privesc moja kwa moja kwa jukumu lolote la ECS.
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
Hali hii ni kama zile za awali lakini bila ruhusa ya iam:PassRole
.
Hii bado ni ya kuvutia kwa sababu ikiwa unaweza kuendesha kontena yoyote, hata kama huna jukumu, unaweza kuendesha kontena lenye mamlaka ili kutoroka kwenye node na kuchukua jukumu la EC2 IAM na majukumu mengine ya kontena za ECS yanayoendesha kwenye node.
Unaweza hata kulazimisha kazi nyingine kuendesha ndani ya mfano wa EC2 ulioathiriwa ili kuchukua hati zao (kama ilivyojadiliwa katika sehemu ya Privesc kwa node).
Shambulio hili linawezekana tu ikiwa klasta ya ECS inatumia mifano ya EC2 na sio 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)
Mshambuliaji mwenye ecs:ExecuteCommand
, ecs:DescribeTasks
anaweza kutekeleza amri ndani ya kontena linaloendesha na kuhamasisha jukumu la IAM lililounganishwa nalo (unahitaji ruhusa za kuelezea kwa sababu ni muhimu kutekeleza aws ecs execute-command
).
Hata hivyo, ili kufanya hivyo, kifaa cha kontena kinahitaji kuwa kinaendesha ExecuteCommand agent (ambayo kwa kawaida hakiko).
Kwa hivyo, mshambuliaji anaweza kujaribu:
Jaribu kutekeleza amri katika kila kontena linaloendesha
Ikiwa ana
ecs:RunTask
, anza kazi naaws ecs run-task --enable-execute-command [...]
Ikiwa ana
ecs:StartTask
, anza kazi naaws ecs start-task --enable-execute-command [...]
Ikiwa ana
ecs:CreateService
, unda huduma naaws ecs create-service --enable-execute-command [...]
Ikiwa ana
ecs:UpdateService
, sasisha huduma naaws ecs update-service --enable-execute-command [...]
Unaweza kupata mfano wa chaguzi hizo katika sehemu za awali za ECS privesc.
Madhara Yanayoweza Kutokea: Privesc kwa jukumu tofauti lililounganishwa na kontena.
ssm:StartSession
ssm:StartSession
Angalia katika ukurasa wa ssm privesc jinsi unavyoweza kutumia ruhusa hii ili privesc kwa ECS:
AWS - SSM Privesciam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
Angalia katika ukurasa wa ec2 privesc jinsi unavyoweza kutumia ruhusa hizi ili privesc kwa ECS:
AWS - EC2 Privesc?ecs:RegisterContainerInstance
?ecs:RegisterContainerInstance
TODO: Je, inawezekana kujiandikisha kwa mfano kutoka akaunti tofauti ya AWS ili kazi zifanywe chini ya mashine zinazodhibitiwa na mshambuliaji??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: Jaribu hii
Mshambuliaji mwenye ruhusa ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, na ecs:DescribeTaskSets
anaweza kuunda seti ya kazi mbaya kwa huduma iliyopo ya ECS na kusasisha seti ya kazi ya msingi. Hii inamruhusu mshambuliaji kutekeleza msimbo wowote ndani ya huduma.
Madhara Yanayoweza Kutokea: Teua msimbo wa kawaida katika huduma iliyoathiriwa, ambayo inaweza kuathiri utendaji wake au kuhamasisha data nyeti.
Marejeleo
Last updated