AWS - ECS Privesc
ECS
Maelezo zaidi kuhusu ECS katika:
AWS - ECS Enumiam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
Mshambuliaji akitumia vibaya ruhusa za iam:PassRole
, ecs:RegisterTaskDefinition
na ecs:RunTask
katika ECS anaweza kuunda ufafanuzi mpya wa kazi na kontena hasidi ambalo linaiba sifa za metadata na kuendesha.
Potential Impact: Privesc ya moja kwa moja kwa ECS role tofauti.
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
Kama ilivyo katika mfano uliopita, mshambuliaji akitumia vibaya ruhusa za iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
katika ECS anaweza kuunda task definition mpya na container mbaya inayovujisha metadata credentials na kuendesha.
Hata hivyo, katika kesi hii, container instance ya kuendesha task definition mbaya inahitajika.
Athari Inayowezekana: Privesc ya 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 uliopita, mshambulizi anayenyanyasa ruhusa za iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
au ecs:CreateService
katika ECS anaweza kuzalisha ufafanuzi mpya wa kazi na kontena hasidi ambalo linaiba sifa za metadata na kuendesha kwa kuunda huduma mpya yenye angalau kazi 1 inayoendesha.
Potential Impact: Privesc ya moja kwa moja kwa jukumu lolote la ECS.
iam:PassRole
, (ecs:UpdateService|ecs:CreateService)
iam:PassRole
, (ecs:UpdateService|ecs:CreateService)
Kwa kweli, kwa kutumia ruhusa hizo tu inawezekana kutumia overrides kutekeleza amri za kiholela kwenye kontena na jukumu la kiholela kwa kitu kama:
Potential Impact: Privesc ya moja kwa moja kwa ECS role yoyote.
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 kama unaweza kuendesha kontena lolote, hata kama ni bila role, unaweza kuendesha kontena yenye ruhusa nyingi ili kutoroka kwenye node na kuiba EC2 IAM role na roles za kontena zingine za ECS zinazoendesha kwenye node.
Unaweza hata kulazimisha kazi zingine kuendesha ndani ya EC2 instance unayodhibiti ili kuiba sifa zao (kama ilivyojadiliwa katika Sehemu ya Privesc kwa node).
Shambulio hili linawezekana tu kama ECS cluster inatumia EC2 instances na siyo 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 kuendesha amri ndani ya kontena linaloendelea na kuiba jukumu la IAM lililounganishwa nalo (unahitaji ruhusa za kuelezea kwa sababu ni muhimu kuendesha aws ecs execute-command
).
Hata hivyo, ili kufanya hivyo, kontena inahitaji kuwa inaendesha ExecuteCommand agent (ambayo kwa default haipo).
Kwa hivyo, mshambuliaji anaweza kujaribu:
Jaribu kuendesha amri katika kila kontena linaloendelea
Ikiwa ana
ecs:RunTask
, endesha kazi naaws ecs run-task --enable-execute-command [...]
Ikiwa ana
ecs:StartTask
, endesha 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 mifano ya chaguzi hizo katika sehemu za awali za ECS privesc.
Athari Zinawezekana: Privesc kwa jukumu tofauti lililounganishwa na kontena.
ssm:StartSession
ssm:StartSession
Angalia katika ukurasa wa ssm privesc jinsi unavyoweza kutumia ruhusa hii kwa privesc kwa ECS:
AWS - SSM Privesciam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
Angalia katika ukurasa wa ec2 privesc jinsi unavyoweza kutumia ruhusa hizi kwa privesc kwa ECS:
AWS - EC2 Privesc?ecs:RegisterContainerInstance
?ecs:RegisterContainerInstance
TODO: Je, inawezekana kusajili mfano kutoka akaunti tofauti ya AWS ili kazi ziendeshwe chini ya mashine zinazosimamiwa na mshambuliaji??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: Jaribu hii
Mshambuliaji mwenye ruhusa za 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.
Athari Zinazowezekana: Tekeleza msimbo wa kiholela katika huduma iliyoathiriwa, ambayo inaweza kuathiri utendaji wake au kutoa data nyeti.
Marejeleo
Last updated