AWS - ECS Privesc
ECS
Więcej informacji na temat ECS znajdziesz w:
pageAWS - ECS Enumiam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
Atakujący wykorzystujący uprawnienia iam:PassRole
, ecs:RegisterTaskDefinition
i ecs:RunTask
w ECS może generować nową definicję zadania z złośliwym kontenerem, który kradnie poświadczenia metadanych i uruchamia go.
Potencjalne skutki: Bezpośrednie podniesienie uprawnień do innego roli ECS.
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
Podobnie jak w poprzednim przykładzie, atakujący wykorzystujący uprawnienia iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
w ECS może wygenerować nową definicję zadania z złośliwym kontenerem, który kradnie poświadczenia metadanych i uruchamia go.
Jednak w tym przypadku konieczne jest posiadanie instancji kontenera do uruchomienia złośliwej definicji zadania.
Potencjalne zagrożenie: Bezpośrednie podniesienie uprawnień dla dowolnej roli ECS.
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
Podobnie jak w poprzednim przykładzie, atakujący wykorzystujący uprawnienia iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
lub ecs:CreateService
w ECS może wygenerować nową definicję zadania z złośliwym kontenerem, który kradnie poświadczenia metadanych i uruchomi go, tworząc nową usługę z co najmniej 1 uruchomionym zadaniem.
Potencjalne skutki: Bezpośrednie podniesienie uprawnień dla dowolnej roli ECS.
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
Ten scenariusz jest podobny do poprzednich, ale bez uprawnienia iam:PassRole
.
Jest to nadal interesujące, ponieważ jeśli możesz uruchomić dowolny kontener, nawet bez roli, możesz uruchomić kontener z uprawnieniami administratora, aby uciec na węzeł i ukraść rolę EC2 IAM oraz inne role kontenerów ECS działających na węźle.
Możesz nawet zmusić inne zadania do uruchomienia się wewnątrz instancji EC2, którą przejmujesz, aby ukraść ich poświadczenia (jak omówiono w sekcji Podniesienie uprawnień do węzła).
Ten atak jest możliwy tylko wtedy, gdy klastr ECS korzysta z instancji EC2, a nie 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)
Atakujący posiadający uprawnienia ecs:ExecuteCommand
, ecs:DescribeTasks
może wykonywać polecenia wewnątrz działającego kontenera i wydobywać do niego przypisaną rolę IAM (wymagane są uprawnienia do opisu, ponieważ jest to konieczne do uruchomienia aws ecs execute-command
).
Jednakże, aby to zrobić, instancja kontenera musi uruchamiać agent ExecuteCommand (który domyślnie tego nie robi).
W związku z tym, atakujący może spróbować:
Spróbować uruchomić polecenie w każdym działającym kontenerze
Jeśli ma uprawnienia
ecs:RunTask
, uruchom zadanie za pomocąaws ecs run-task --enable-execute-command [...]
Jeśli ma uprawnienia
ecs:StartTask
, uruchom zadanie za pomocąaws ecs start-task --enable-execute-command [...]
Jeśli ma uprawnienia
ecs:CreateService
, utwórz usługę za pomocąaws ecs create-service --enable-execute-command [...]
Jeśli ma uprawnienia
ecs:UpdateService
, zaktualizuj usługę za pomocąaws ecs update-service --enable-execute-command [...]
Przykłady tych opcji można znaleźć w poprzednich sekcjach dotyczących podwyższania uprawnień ECS.
Potencjalne skutki: Podwyższenie uprawnień do innego roli przypisanej do kontenerów.
ssm:StartSession
ssm:StartSession
Sprawdź na stronie dotyczącej podwyższania uprawnień SSM, jak można wykorzystać to uprawnienie do podwyższenia uprawnień do ECS:
pageAWS - SSM Privesciam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
Sprawdź na stronie dotyczącej podwyższania uprawnień EC2, jak można wykorzystać te uprawnienia do podwyższenia uprawnień do ECS:
pageAWS - EC2 Privesc?ecs:RegisterContainerInstance
?ecs:RegisterContainerInstance
TODO: Czy jest możliwe zarejestrowanie instancji z innego konta AWS, aby zadania były uruchamiane na maszynach kontrolowanych przez atakującego??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: Przetestuj to
Atakujący posiadający uprawnienia ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
i ecs:DescribeTaskSets
może utworzyć złośliwy zestaw zadań dla istniejącej usługi ECS i zaktualizować główny zestaw zadań. Pozwala to atakującemu na wykonanie dowolnego kodu w ramach usługi.
Potencjalne skutki: Wykonanie dowolnego kodu w usłudze, co może wpłynąć na jej funkcjonalność lub wyciek poufnych danych.
Odwołania
Last updated