AWS - ECS Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
ECS์ ๋ํ ๋ ๋ง์ ์ ๋ณด๋ ๋ค์์์ ํ์ธํ์ธ์:
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
๋ฐ ecs:RunTask
๊ถํ์ ์
์ฉํ๋ ๊ณต๊ฒฉ์๋ ์
์ฑ ์ปจํ
์ด๋๊ฐ ๋ฉํ๋ฐ์ดํฐ ์๊ฒฉ ์ฆ๋ช
์ ํ์น๋ ์๋ก์ด ์์
์ ์๋ฅผ ์์ฑํ๊ณ ์คํํ ์ ์์ต๋๋ค.
์ ์ฌ์ ์ํฅ: ๋ค๋ฅธ ECS ์ญํ ๋ก์ ์ง์ ์ ์ธ ๊ถํ ์์น.
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
์ด์ ์์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก, ๊ณต๊ฒฉ์๊ฐ ECS์์ iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
๊ถํ์ ์
์ฉํ๋ฉด ์
์ฑ ์ปจํ
์ด๋๊ฐ ํฌํจ๋ ์๋ก์ด ์์
์ ์๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ, ์
์ฑ ์์
์ ์๋ฅผ ์คํํ ์ปจํ
์ด๋ ์ธ์คํด์ค๊ฐ ํ์ํฉ๋๋ค.
์ ์ฌ์ ์ํฅ: ๋ชจ๋ ECS ์ญํ ์ ๋ํ ์ง์ ์ ์ธ ๊ถํ ์์น.
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
์ด์ ์์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณต๊ฒฉ์๊ฐ ECS์์ iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
๋๋ ecs:CreateService
๊ถํ์ ์
์ฉํ๋ฉด ์
์ฑ ์ปจํ
์ด๋๊ฐ ํฌํจ๋ ์๋ก์ด ์์
์ ์๋ฅผ ์์ฑํ๊ณ , ์ต์ 1๊ฐ์ ์์
์ด ์คํ๋๋ ์๋ก์ด ์๋น์ค๋ฅผ ์์ฑํ์ฌ ์คํํ ์ ์์ต๋๋ค.
์ ์ฌ์ ์ํฅ: ๋ชจ๋ ECS ์ญํ ์ ๋ํ ์ง์ ์ ์ธ ๊ถํ ์์น.
iam:PassRole
, (ecs:UpdateService|ecs:CreateService)
์ฌ์ค, ์ด๋ฌํ ๊ถํ๋ง์ผ๋ก๋ ์์์ ์ญํ ์ ๊ฐ์ง ์ปจํ ์ด๋์์ ์์์ ๋ช ๋ น์ ์คํํ๊ธฐ ์ํด ์ค๋ฒ๋ผ์ด๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์ฌ์ ์ํฅ: ๋ชจ๋ ECS ์ญํ ๋ก์ ์ง์ ์ ์ธ ๊ถํ ์์น.
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
์ด ์๋๋ฆฌ์ค๋ ์ด์ ๊ณผ ์ ์ฌํ์ง๋ง iam:PassRole
๊ถํ์ด ์๋ ๊ฒฝ์ฐ์
๋๋ค.
์ฌ์ ํ ํฅ๋ฏธ๋ก์ด ์ ์ ์์์ ์ปจํ
์ด๋๋ฅผ ์คํํ ์ ์๋ค๋ฉด, ์ญํ ์์ด๋ ํน๊ถ ์ปจํ
์ด๋๋ฅผ ์คํํ์ฌ ๋
ธ๋๋ก ํ์ถํ๊ณ EC2 IAM ์ญํ ๋ฐ ๋
ธ๋์์ ์คํ ์ค์ธ ๋ค๋ฅธ ECS ์ปจํ
์ด๋ ์ญํ ์ ํ์ทจํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
๋ํ ๋น์ ์ด ์์์ํจ EC2 ์ธ์คํด์ค ๋ด์์ ๋ค๋ฅธ ์์
์ ์คํํ๋๋ก ๊ฐ์ ํ ์ ์์ต๋๋ค ๊ทธ๋ค์ ์๊ฒฉ ์ฆ๋ช
์ ํ์ทจํ๊ธฐ ์ํด (์์ธํ ๋ด์ฉ์ ๋
ธ๋๋ก์ ๊ถํ ์์น ์น์
์์ ๋
ผ์๋จ).
์ด ๊ณต๊ฒฉ์ ECS ํด๋ฌ์คํฐ๊ฐ EC2 ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ณ ์์ ๋๋ง ๊ฐ๋ฅํฉ๋๋ค.
ecs:ExecuteCommand
, ecs:DescribeTasks,
(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:ExecuteCommand
, ecs:DescribeTasks
๊ถํ์ ๊ฐ์ง ๊ณต๊ฒฉ์๋ ์คํ ์ค์ธ ์ปจํ
์ด๋ ๋ด์์ ๋ช
๋ น์ ์คํํ๊ณ ์ฐ๊ฒฐ๋ IAM ์ญํ ์ ์ ์ถํ ์ ์์ต๋๋ค (์ด ์์
์ ์ํํ๋ ค๋ฉด aws ecs execute-command
๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ์ค๋ช
๊ถํ์ด ํ์ํฉ๋๋ค).
๊ทธ๋ฌ๋ ๊ทธ๋ ๊ฒ ํ๋ ค๋ฉด ์ปจํ
์ด๋ ์ธ์คํด์ค๊ฐ ExecuteCommand ์์ด์ ํธ๋ฅผ ์คํ ์ค์ด์ด์ผ ํฉ๋๋ค (๊ธฐ๋ณธ์ ์ผ๋ก ์คํ๋์ง ์์).
๋ฐ๋ผ์ ๊ณต๊ฒฉ์๋ ๋ค์์ ์๋ํ ์ ์์ต๋๋ค:
๋ชจ๋ ์คํ ์ค์ธ ์ปจํ ์ด๋์์ ๋ช ๋ น์ ์คํํด ๋ณด์ญ์์ค
๊ทธ๊ฐ ecs:RunTask
๊ถํ์ด ์๋ค๋ฉด, aws ecs run-task --enable-execute-command [...]
๋ก ์์
์ ์คํํ์ญ์์ค.
๊ทธ๊ฐ ecs:StartTask
๊ถํ์ด ์๋ค๋ฉด, aws ecs start-task --enable-execute-command [...]
๋ก ์์
์ ์คํํ์ญ์์ค.
๊ทธ๊ฐ ecs:CreateService
๊ถํ์ด ์๋ค๋ฉด, aws ecs create-service --enable-execute-command [...]
๋ก ์๋น์ค๋ฅผ ์์ฑํ์ญ์์ค.
๊ทธ๊ฐ ecs:UpdateService
๊ถํ์ด ์๋ค๋ฉด, aws ecs update-service --enable-execute-command [...]
๋ก ์๋น์ค๋ฅผ ์
๋ฐ์ดํธํ์ญ์์ค.
์ด ์ต์ ๋ค์ ์์๋ ์ด์ ECS privesc ์น์ ์์ ์ฐพ์ ์ ์์ต๋๋ค.
์ ์ฌ์ ์ํฅ: ์ปจํ ์ด๋์ ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ์ญํ ๋ก์ ๊ถํ ์์น.
ssm:StartSession
ssm privesc ํ์ด์ง์์ ์ด ๊ถํ์ ์ด๋ป๊ฒ ์ ์ฉํ์ฌ ECS๋ก ๊ถํ ์์นํ ์ ์๋์ง ํ์ธํ์ญ์์ค:
iam:PassRole
, ec2:RunInstances
ec2 privesc ํ์ด์ง์์ ์ด ๊ถํ๋ค์ ์ด๋ป๊ฒ ์ ์ฉํ์ฌ ECS๋ก ๊ถํ ์์นํ ์ ์๋์ง ํ์ธํ์ญ์์ค:
?ecs:RegisterContainerInstance
TODO: ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ ๊ธฐ๊ณ์์ ์์ ์ด ์คํ๋๋๋ก ๋ค๋ฅธ AWS ๊ณ์ ์์ ์ธ์คํด์ค๋ฅผ ๋ฑ๋กํ ์ ์๋์ง??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: ์ด ํ ์คํธ๋ฅผ ํด๋ณด์ญ์์ค
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ๋ฐ ecs:DescribeTaskSets
๊ถํ์ ๊ฐ์ง ๊ณต๊ฒฉ์๋ ๊ธฐ์กด ECS ์๋น์ค์ ๋ํด ์
์ฑ ์์
์ธํธ๋ฅผ ์์ฑํ๊ณ ๊ธฐ๋ณธ ์์
์ธํธ๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ณต๊ฒฉ์๋ ์๋น์ค ๋ด์์ ์์์ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ ์ฌ์ ์ํฅ: ์ํฅ์ ๋ฐ๋ ์๋น์ค์์ ์์ ์ฝ๋๋ฅผ ์คํํ์ฌ ๊ธฐ๋ฅ์ ์ํฅ์ ๋ฏธ์น๊ฑฐ๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ ์ถํ ์ ์์ต๋๋ค.
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)