Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Owasp-top-10-k8s-2025 — Практическая лаборатория capture-the-flag для OWASP Kubernetes Top 10 (2025). Используйте 11 реальных уязвимостей кластера, захватывайте флаги, затем применяйте исправления и проверяйте с помощью автоматической проверки. Запускается локально на kind. | Kitploit
Инструменты/GitHubGitHub/hac01/owasp-top-10-k8s-2025
Повышение привилегийБезопасность контейнеровАнализ уязвимостейCTFТестирование на ПроникновениеБезопасность облачных средБезопасность Цепочки ПоставокНеправильная КонфигурацияОбучение и Образование

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Red Teaming
Лаборатории и Практика
GitHubhac01/owasp-top-10-k8s-2025

Owasp-top-10-k8s-2025

Практическая лаборатория capture-the-flag для OWASP Kubernetes Top 10 (2025). Используйте 11 реальных уязвимостей кластера, захватывайте флаги, затем применяйте исправления и проверяйте с помощью автоматической проверки. Запускается локально на kind.

Репозиторий
4581 месяц назадПроверено Kitploit

OWASP Kubernetes Top 10 (2025) — практическое занятие

Capture-the-flag, построенное на базе OWASP Kubernetes Top Ten — 2025. Вас наняли для проведения атак (red-team) на NimbusMart — вымышленную компанию электронной коммерции, чей кластер рос быстрее, чем его безопасность. Десять заданий, по одному на каждый риск OWASP (плюс бонус) — эксплуатируйте каждую уязвимость, захватывайте флаг, затем применяйте исправление и подтверждайте его с помощью проверяющего.

Screenshot 2026-07-03 at 3 02 12 AM

Вся вселенная (компания, сервисы, пространства имён, схема флагов) описана в файле labs/NIMBUSMART.md.

Всё работает локально на kind. Никогда не применяйте уязвимые манифесты к реальному кластеру.

Создано @hac01.


Что здесь рассматривается

Это не набор слайдов — это работающий, уязвимый по замыслу кластер Kubernetes, а также инструменты для атаки, исправления и проверки исправлений. В одиннадцати заданиях вы познакомитесь на практике с:

  • Безопасностью контейнеров и узлов — привилегированные поды, монтирования hostPath и выход из узла (K01).
  • RBAC и авторизацией — шаблонные ClusterRole, сервисные аккаунты с избыточными правами и как один украденный токен даёт доступ ко всем секретам (K02, K09).
  • Управлением секретами — жёстко закодированные ключи API в переменных окружения / ConfigMap и более безопасные альтернативы (K03).
  • Контролем допуска и политиками — что проскальзывает, когда ничто не навязывает правила в масштабе кластера, и как Pod Security Admission / движки политик это предотвращают (K04).
  • Сегментацией сети — плоские сети подов против изоляции с помощью NetworkPolicy (K05).
  • Открытыми компонентами — внутренние панели управления и API, опубликованные через NodePort (K06).
  • Гигиеной компонентов кластера — токены по умолчанию, отсутствие квот, устаревшие/уязвимые версии (K07).
  • Латеральным перемещением из кластера в облако — под, обращающийся к метаданным узла (IMDS) для кражи облачных учётных данных (K08).
  • Аутентификацией — анонимный доступ к API и избыточное монтирование токенов по умолчанию (K09).
  • Логированием и мониторингом — обнаружение (или необнаружение) тихой утечки данных и почему важна аудиторская трасса (K10).
  • Цепочкой поставок — ненадёжные, изменяемые образы :latest, отправляемые в продакшн (бонус).

Для каждого задания вы получаете:

  • Брифинг миссии — сценарий NimbusMart, ваша позиция и цель.
  • Флаг для захвата — достижимый только при выполнении эксплойта (на узле, в другом пространстве имён, по сети). Отправьте его в веб-приложении; таблица лидеров отслеживает ваш прогресс и очки (localStorage браузера).
  • Пошаговые подсказки и полное решение — сначала намёки, потом полное решение, когда захотите.
  • Подробный обзор — в чём заключается уязвимость, как злоумышленники её используют, влияние, первопричины.
  • Руководство по защите — конкретные исправления и контрольный список лучших практик.
  • Автоматическую проверку — бинарник на Go, который сканирует ваш кластер и подтверждает, устранён ли риск.

Предварительные требования

Установите это перед началом. Скрипт настройки проверяет первые четыре пункта и немедленно завершается с понятным сообщением, если что-то отсутствует.

Команды brew предназначены для macOS. В Linux используйте ваш пакетный менеджер или приложенные инструкции по ссылкам.


Быстрый старт (рекомендуется) — всё внутри одного кластера

Веб-приложение, терминал в браузере и проверяющий могут работать внутри кластера kind. Одна команда запускает всё и выводит URL:

root@kitploit:~
./setup.sh          # или: make up
#   - создаёт кластер kind, собирает и загружает образы, развёртывает, ждёт готовности
#   - Веб-приложение:  http://localhost:30090
#   - Терминал: кнопка 'Terminal' в веб-приложении

./setup.sh (пере)создаёт кластер с нужными привязками портов, собирает два образа (nimbusmart-ctf-web, nimbusmart-ctf-terminal), загружает их в kind и применяет deploy/. Первый запуск загружает базовые образы и занимает ~1-2 минуты.

root@kitploit:~
./setup.sh            # новый кластер + полная платформа (удаляет старый кластер 'owasp-labs')
./setup.sh --keep     # повторно использует существующий кластер 'owasp-labs', если он есть

Затем откройте http://localhost:30090, выберите задание и используйте кнопку Terminal в браузере для управления кластером.

Терминальный под работает от имени сервисного аккаунта cluster-admin, поэтому терминал в браузере управляет этим же кластером — выполняйте kubectl apply -f labs/... и owasp-k8s-checker --check kNN прямо там.

Предупреждение: терминал в браузере фактически является cluster-admin через WebSocket. Это безопасно только потому, что он привязан к вашему локальному, одноразовому кластеру kind на localhost. Никогда не открывайте порты 30080/30090/30091 для ненадёжной сети.

Остановка

root@kitploit:~
kind delete cluster --name owasp-labs      # или: make cluster-down

Структура репозитория

root@kitploit:~
.
├── setup.sh         Однокомандная настройка (кластер + образы + развёртывание)
├── Makefile         Цели для удобства — выполните `make help` для их просмотра
├── web/             Приложение Next.js + React (бело-фиолетовая тема) — интерфейс
├── labs/            Настоящие манифесты K8s по каждому риску (vulnerable.yaml + fixed.yaml + README)
│   ├── NIMBUSMART.md        Вселенная: компания, пространства имён, схема флагов
│   └── kind-cluster.yaml    Общая конфигурация локального кластера (привязка портов)
├── deploy/          Манифесты платформы внутри кластера (web + terminal + RBAC) + build.sh
├── terminal-server/ Бэкенд WebSocket для терминала в браузере
└── checker/         Бинарник Go, проверяющий кластер на соответствие Top 10

Полезные цели make (make help показывает все):


OWASP Kubernetes Top 10 — 2025

Каждое задание представляет собой реальную уязвимость в кластере NimbusMart — выберите цель, эксплуатируйте её, захватите флаг, затем исправьте и подтвердите исправление с помощью проверяющего.

Screenshot 2026-07-03 at 3 03 34 AM

Что изменилось с 2022: авторизация (была RBAC) расширена; секреты, сеть, аутентификация и логирование переупорядочены; добавлены Чрезмерно открытые компоненты (K06) и Латеральное перемещение из кластера в облако (K08); неправильно настроенные и устаревшие компоненты объединены в K07; Цепочка поставок перенесена в бонусное задание. Полную карту задание–сервис–уязвимость, сложность и очки (2000 за 10 заданий, +300 бонус) см. в labs/NIMBUSMART.md.


Ручной / разработческий рабочий процесс (без платформы внутри кластера)

Предпочитаете запускать интерфейс локально и управлять лабораторными из собственной оболочки? Вы можете соединить компоненты вручную.

1. Запустите веб-приложение локально

root@kitploit:~
cd web
npm install
npm run dev
# откройте http://localhost:3000       (или: make web)

Терминальный бэкенд запускается отдельно на :30091, используя ваш ~/.kube/config:

root@kitploit:~
make terminal-local

2. Создайте лабораторный кластер

root@kitploit:~
kind create cluster --config labs/kind-cluster.yaml    # или: make cluster
kubectl config use-context kind-owasp-labs

3. Пройдите задание

У каждого задания есть свой README, но шаблон одинаков:

root@kitploit:~
# некоторые задания сначала развёртывают цель (файл на узле, секрет ops и т.д.)
kubectl apply -f labs/k01-insecure-workload/setup.yaml       # только если присутствует

# разверните уязвимый ресурс и эксплуатируйте его, чтобы захватить флаг
kubectl apply -f labs/k01-insecure-workload/vulnerable.yaml
# ...следуйте брифингу миссии / подсказкам в веб-приложении, получите FLAG{...}, отправьте его...

# примените усиленную версию и убедитесь, что путь к флагу закрыт
kubectl delete -f labs/k01-insecure-workload/vulnerable.yaml
kubectl apply  -f labs/k01-insecure-workload/fixed.yaml

Сбросьте всё между заданиями с помощью make clean-labs.

4. Проверьте с помощью проверяющего

root@kitploit:~
cd checker
go run . --list            # показать все проверки
go run . --check k01       # запустить одну проверку
go run . --all             # просканировать весь кластер
go run . --all --json      # машинно-читаемый формат (для CI)
go run . --all -n apps     # ограничить пространство имён

Проверяющий завершается с ненулевым кодом, если любая проверка не пройдена, поэтому он может служить шлюзом для CI.

Соберите отдельный бинарник:

root@kitploit:~
cd checker
go build -o owasp-k8s-checker .    # или: make checker
./owasp-k8s-checker --all

Как проверка соотносится с лабораторными работами

Каждый файл checker/checks/kNN.go проверяет тот же контроль, которому обучает соответствующая лабораторная. Разверните fixed.yaml, выполните go run . --check kNN — вы должны увидеть PASS. Разверните vulnerable.yaml — та же проверка выведет конкретные выводы.

Безопасность: уязвимые манифесты намеренно эксплуатируемы. Используйте только локальный, одноразовый кластер kind/minikube. Удалите его после завершения: kind delete cluster --name owasp-labs.

Скачать инструмент
ИнструментЗачемУстановка
DockerЗапускает кластер kind и собирает образы. Должен быть запущен.Docker Desktop / Engine
kindЛокальный кластер Kubernetes в Docker.brew install kind
kubectlВзаимодействие с кластером.brew install kubectl
Go 1.21+Сборка и запуск бинарника проверяющего.brew install go
Node.js 18+Только для локального запуска веб-приложения (make web). Не требуется для однокомандной установки внутри кластера.brew install node
ЦельЧто делает
make upВсё сразу: кластер + образы + развёртывание (запускает setup.sh)
make webЗапускает веб-приложение в режиме разработки на :3000
make cluster / make cluster-downСоздаёт / удаляет локальный кластер kind
make scanЗапускает все проверки для текущего кластера
make check ID=k01Запускает одну проверку
make clean-labsУдаляет все ресурсы лабораторной (сброс между заданиями)
IDРискПапка лаборатории
K01Небезопасные конфигурации рабочих нагрузокlabs/k01-insecure-workload
K02Чрезмерно разрешительные конфигурации авторизацииlabs/k02-authorization
K03Ошибки управления секретамиlabs/k03-secrets
K04Отсутствие принудительного применения политик на уровне кластераlabs/k04-policy-enforcement
K05Отсутствие средств сегментации сетиlabs/k05-network-segmentation
K06Чрезмерно открытые компоненты Kuberneteslabs/k06-exposed-components
K07Неправильно настроенные и уязвимые компоненты кластераlabs/k07-cluster-components
K08Латеральное перемещение из кластера в облакоlabs/k08-cluster-to-cloud
K09Сломанные механизмы аутентификацииlabs/k09-authentication
K10Недостаточное логирование и мониторингlabs/k10-logging-monitoring
БонусУязвимости цепочки поставокlabs/kbonus-supply-chain