AWS - EKS Post Exploitation
EKS
Для отримання додаткової інформації перегляньте
pageAWS - EKS EnumПерелік кластера з консолі AWS
Якщо у вас є дозвіл eks:AccessKubernetesApi
, ви можете переглядати об'єкти Kubernetes через консоль AWS EKS (Дізнайтеся більше).
Підключення до кластера AWS Kubernetes
Простий спосіб:
Не такий простий спосіб:
Якщо ви можете отримати токен за допомогою aws eks get-token --name <cluster_name>
, але у вас немає дозволу на отримання інформації про кластер (describeCluster), ви можете підготувати свій власний ~/.kube/config
. Однак, маючи токен, вам все ще потрібно URL-адресу кінцевої точки для підключення та назву кластера.
У моєму випадку, я не знайшов інформацію в журналах CloudWatch, але я знайшов її в userData шаблонів запуску та також в машини EC2 в userData також. Ви можете легко побачити цю інформацію в userData, наприклад, у наступному прикладі (назва кластера була cluster-name):
З AWS до Kubernetes
Створювач кластера EKS завжди матиме доступ до частини кластера Kubernetes групи system:masters
(k8s admin). На момент написання цього тексту немає прямого способу визначити хто створив кластер (можна перевірити CloudTrail). І немає способу видалити це привілей.
Шляхом надання доступу до K8s для більшої кількості користувачів або ролей AWS IAM є використання configmap aws-auth
.
Отже, будь-хто з правами на запис у config map aws-auth
зможе компрометувати весь кластер.
Для отримання додаткової інформації про те, як надати додаткові привілеї ролям та користувачам IAM в тому ж або іншому обліковому записі та як це зловживати, перейдіть на цю сторінку.
Також перевірте цей чудовий пост, щоб дізнатися, як працює аутентифікація IAM -> Kubernetes.
З Kubernetes до AWS
Можливо дозволити OpenID аутентифікацію для облікового запису служби Kubernetes, щоб дозволити їм припускати ролі в AWS. Дізнайтеся, як це працює на цій сторінці](../../kubernetes-security/kubernetes-pivoting-to-clouds.md#workflow-of-iam-role-for-service-accounts-1).
Обхід CloudTrail
Якщо зловмисник отримує дані для входу в AWS з дозволом на EKS. Якщо зловмисник налаштує свій власний kubeconfig
(без виклику update-kubeconfig
), як пояснено раніше, get-token
не генерує журналів в Cloudtrail, оскільки він не взаємодіє з API AWS (він просто створює токен локально).
Таким чином, коли зловмисник спілкується з кластером EKS, cloudtrail не буде реєструвати нічого, що стосується вкраденого користувача та доступу до нього.
Зверніть увагу, що кластер EKS може мати включені журнали, які будуть реєструвати цей доступ (хоча за замовчуванням вони вимкнені).
Вимога викупу за EKS?
За замовчуванням користувач або роль, який створив кластер, завжди матиме права адміністратора над кластером. І це єдиний "безпечний" доступ AWS до кластера Kubernetes.
Таким чином, якщо зловмисник компрометує кластер, використовуючи fargate та видаляє всіх інших адміністраторів та видаляє користувача/роль AWS, який створив кластер, зловмисник міг би вимагати викуп за кластерr.
Зверніть увагу, що якщо кластер використовує EC2 VM, можливо отримати права адміністратора з вузла та відновити кластер.
Фактично, якщо кластер використовує Fargate, ви можете використовувати вузли EC2 або перемістити все на EC2 до кластера та відновити доступ до токенів на вузлі.
Last updated