TGViewer
purple shift purple shift @purpleshift · 3.05K subscribers
Post #221 423
Продолжаем публиковать кейсы наших экспертов, которые стали призёрами на конкурсе Pentest Award 2026. Сегодня будет история от Сергея Кабанова, получившего 3-е место в номинации "Kill Chain". Цепочка из пяти сервисов, два независимых пути к cluster-admin — при этом внутри использовалась только одна старая CVE, а остальное сделано через мисконфиги. Поздравляем Сергея!

Суть кейса:

Архитектура некоторых сервисов может быть построена небезопасно по умолчанию: целевые приложения содержат в себе различные мисконфигурации и опасные функции, которые позволяют простым пользователям повысить свои привилегии, а иногда и захватить весь сервис.

В нашем случае, всё началось с эксплуатации CVE-2024-50340 на внешнем периметре, что позволило перевести Symfony-приложение в debug-режим и получить переменные окружения. Среди них нашлись учетные данные администратора сервиса Pimcore, а доступ к функционалу одного из его кастомных модулей в дальнейшем позволил добиться исполнения кода на сервере.

После компрометации хоста во внутренней инфраструктуре был обнаружен Harbor. В одном из доступных Helm-чартов оказался захардкоженный пароль от MongoDB ClearML, а уже в самой базе — access keys пользователей.

Дальше выяснилось, что возможностей обычного пользователя ClearML уже достаточно для серьёзного развития атаки. Через механизм запуска экспериментов удалось добиться исполнения кода, запустить привилегированный контейнер и в итоге выйти на ноду кластера.

На захваченном хосте нашёлся GitLab-токен с правами Maintainer в приватных проектах. С этого момента дальнейшая атака разделилась на два независимых вектора. Но в исследовании обоих векторов была задействована Grafana, которая была использована в качестве SSRF-прокси и тем самым помогла обойти network policy.

Исследование первого вектора строилось через приватный GitLab Runner и внутренние сервисы Kubernetes. Так с помощью Grafana удалось добраться до Longhorn, подменить его engine image и в конечном итоге получить права cluster-admin через ArgoCD.

Во втором случае удалось вмешаться уже в CI/CD-процесс: модифицировать генерируемый deploy pipeline, выполнить свой код внутри deploy job и получить kubeconfig продового namespace. Последним препятствием стал Kyverno Admission Controller, который удалось обойти благодаря сочетанию CVE-2020-8554 (не была пропатчена) и настроенного в кластере fail-open режима. В результате второй вектор также закончился получением прав администратора Kubernetes-кластера.

Таким образом, используя в основном мисконфигурации и небезопасную архитектуру приложений, удалось пробить внешний периметр и захватить продовый k8s кластер.

Подробное описание кейса читайте в нашем гитхабе.
  • 👍 7
  • 🔥 7
  • ❤ 3
More from @purpleshift
  1. Sep 28, 2026В ходе расследования серии кибератак наши эксперты обнаружили новую русcкоговорящую дестру…
  2. Sep 23, 2026В конце 2024 года мы рассказывали о том, как детектировать атаки на основе компрометации г…
  3. Sep 21, 2026В конце лета число подписчиков нашего канала перевалило за 3 тысячи. Мы конечно же поздрав…
  4. Sep 16, 2026«Мир стоит на кодах и шифрах, Джон. Многомиллионные охранные системы в банках и простеньки…
  5. Sep 11, 2026Финал соревнований VolgaCTF 2026 пройдёт с 16 по 18 сентября в Самаре. И на этом мероприят…
  6. Sep 7, 2026В начале августа мы рассказали, что хакерская группировка Labooboo (Toy Ghouls, Bearlyfy,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →