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

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

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

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

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

Категории

Все категории
Loading categories
kube-hunter — Поиск уязвимостей безопасности в кластерах Kubernetes | Kitploit
Инструменты/GitHubGitHub/aquasecurity/kube-hunter
Сканеры уязвимостейБезопасность контейнеровТестирование на ПроникновениеБезопасность облачных средНеправильная Конфигурация
GitHubaquasecurity/kube-hunter

kube-hunter

Поиск уязвимостей безопасности в кластерах Kubernetes

Репозиторий
5.1k6112 лет назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Уведомление

kube-hunter больше не находится в активной разработке. Если вы заинтересованы в сканировании кластеров Kubernetes на предмет известных уязвимостей, мы рекомендуем использовать Trivy. В частности, сканирование конфигураций Kubernetes на предмет ошибок и сканирование уязвимостей KBOM от Trivy. Узнайте больше в документации Trivy.


kube-hunter ищет уязвимости в кластерах Kubernetes. Инструмент был разработан для повышения осведомленности и видимости проблем безопасности в средах Kubernetes. Вы НЕ должны запускать kube-hunter на кластере Kubernetes, который вам не принадлежит!

Запуск kube-hunter: kube-hunter доступен в виде контейнера (aquasec/kube-hunter), а также мы предлагаем веб-сайт kube-hunter.aquasec.com, где вы можете зарегистрироваться онлайн, чтобы получить токен, позволяющий просматривать и делиться результатами онлайн. Вы также можете запустить код Python самостоятельно, как описано ниже.

Изучение уязвимостей: База знаний kube-hunter включает статьи об обнаруживаемых уязвимостях и проблемах. Когда kube-hunter сообщает о проблеме, он отображает её VID (идентификатор уязвимости), чтобы вы могли найти её в базе знаний по адресу https://aquasecurity.github.io/kube-hunter/
Если вас интересует интеграция kube-hunter с матрицей ATT&CK для Kubernetes, продолжите чтение

Демонстрационное видео kube-hunter

Содержание

  • Содержание
    • Матрица ATT&CK Kubernetes
    • Охота
      • Где следует запускать kube-hunter?
      • Параметры сканирования
      • Аутентификация
      • Активная охота
      • Список тестов
      • Карта узлов
      • Вывод
      • Отправка
    • Расширенное использование
      • Быстрое сканирование Azure
      • Пользовательская охота
    • Развёртывание
      • На машине
        • Предварительные требования
          • Установка с помощью pip
          • Запуск из исходного кода
      • Контейнер
      • Под
    • Вклад

Матрица ATT&CK Kubernetes

kube-hunter теперь поддерживает новый формат матрицы ATT&CK для Kubernetes. В то время как уязвимости kube-hunter представляют собой набор творческих техник, призванных имитировать атакующего в кластере (или за его пределами), MITRE ATT&CK определяет более общие стандартизированные категории техник для этого.

Вы можете рассматривать уязвимости kube-hunter как небольшие шаги для атакующего, которые следуют пути более общей техники, к которой он стремится. Большинство охотников и уязвимостей kube-hunter можно с большой точностью отнести к этим техникам, поэтому мы перешли на стандарт матрицы.

Некоторые уязвимости kube-hunter, которые мы не смогли сопоставить с техниками Mitre, помечены ключевым словом General kube-hunter

Охота

Где следует запускать kube-hunter?

Существует три различных способа запуска kube-hunter, каждый из которых предлагает свой подход к обнаружению слабых мест в вашем кластере:

Запустите kube-hunter на любой машине (включая ваш ноутбук), выберите удаленное сканирование и укажите IP-адрес или доменное имя вашего кластера Kubernetes. Это даст вам взгляд на вашу установку Kubernetes глазами злоумышленника.

Вы можете запустить kube-hunter непосредственно на машине в кластере и выбрать опцию сканирования всех локальных сетевых интерфейсов.

Вы также можете запустить kube-hunter в поде внутри кластера. Это покажет, насколько ваш кластер будет уязвим, если один из ваших подов приложения будет скомпрометирован (например, через уязвимость в программном обеспечении). (флаг --pod)

Параметры сканирования

Сначала проверьте эти предварительные требования.

По умолчанию kube-hunter запустит интерактивную сессию, в которой вы сможете выбрать один из следующих вариантов сканирования. Вы также можете указать параметр сканирования вручную из командной строки. Вот ваши варианты:

  1. Удаленное сканирование

Для указания удаленных машин для охоты выберите вариант 1 или используйте опцию --remote. Пример: kube-hunter --remote some.node.com

  1. Сканирование интерфейсов

Для сканирования интерфейсов используйте опцию --interface (при этом будут просканированы все сетевые интерфейсы машины). Пример: kube-hunter --interface

  1. Сканирование сети

Для указания конкретного CIDR для сканирования используйте опцию --cidr. Пример: kube-hunter --cidr 192.168.0.0/24

  1. Автоматическое обнаружение узлов Kubernetes

Установите флаг --k8s-auto-discover-nodes, чтобы запросить Kubernetes для получения всех узлов в кластере, а затем попытаться отсканировать их все. По умолчанию будет использоваться конфигурация внутри кластера для подключения к API Kubernetes. Если вы хотите использовать явный файл kubeconfig, укажите --kubeconfig /путь/к/kubeconfig/файлу.

Также обратите внимание, что это всегда делается при использовании режима --pod.

Аутентификация

Чтобы имитировать атакующего на ранних стадиях, kube-hunter не требует аутентификации для охоты.

  • Имперсонация - Вы можете предоставить kube-hunter конкретный токен сервисного аккаунта для использования во время охоты, передав JWT Bearer токен секрета сервис-аккаунта вручную с флагом --service-account-token.

    Пример:

    root@kitploit:~
    $ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni...
    
  • При запуске с флагом --pod kube-hunter использует токен сервисного аккаунта, смонтированный внутри пода, для аутентификации в сервисах, которые он находит во время охоты.

    • Если указан, флаг --service-account-token имеет приоритет при запуске в виде пода

Активная охота

Активная охота — это опция, при которой kube-hunter будет эксплуатировать найденные уязвимости для поиска дальнейших уязвимостей. Основное различие между обычной и активной охотой заключается в том, что обычная охота никогда не изменяет состояние кластера, в то время как активная охота потенциально может выполнять изменяющие состояние операции с кластером, что может быть вредно.

По умолчанию kube-hunter не выполняет активную охоту. Для активной охоты в кластере используйте флаг --active. Пример: kube-hunter --remote some.domain.com --active

Список тестов

Вы можете увидеть список тестов с опцией --list. Пример: kube-hunter --list

Чтобы увидеть также тесты активной охоты, а также пассивные: kube-hunter --list --active

Карта узлов

Чтобы увидеть только карту сети ваших узлов, запустите с опцией --mapping. Пример: kube-hunter --cidr 192.168.0.0/24 --mapping Это выведет все узлы Kubernetes, найденные kube-hunter.

Вывод

Для управления логированием вы можете указать уровень журнала, используя опцию --log. Пример: kube-hunter --active --log WARNING Доступные уровни журнала:

  • DEBUG
  • INFO (по умолчанию)
  • WARNING

Отправка

По умолчанию отчет отправляется в stdout, но вы можете указать другие методы, используя опцию --dispatch. Пример: kube-hunter --report json --dispatch http Доступные методы отправки:

  • stdout (по умолчанию)
  • http (для настройки установите следующие переменные окружения:)
    • KUBEHUNTER_HTTP_DISPATCH_URL (по умолчанию: https://localhost)
    • KUBEHUNTER_HTTP_DISPATCH_METHOD (по умолчанию: POST)

Расширенное использование

Быстрое сканирование Azure

При запуске в виде пода в среде Azure или AWS kube-hunter будет получать подсети из службы метаданных экземпляра. Естественно, это делает процесс обнаружения более длительным. Чтобы жестко ограничить сканирование подсети CIDR /24, используйте опцию --quick.

Пользовательская охота

Пользовательская охота позволяет опытным пользователям контролировать, какие охотники регистрируются в начале охоты. Если вы знаете, что делаете, это может помочь, если вы хотите настроить процесс охоты и обнаружения kube-hunter под свои нужды.

Пример:

root@kitploit:~
kube-hunter --custom <ИмяОхотника1> <ИмяОхотника2>

Включение пользовательской охоты удаляет всех охотников из процесса охоты, кроме указанных в белом списке.

Флаг --custom принимает список имен классов охотников. Чтобы просмотреть все имена классов kube-hunter, вы можете объединить флаг --raw-hunter-names с флагом --list.

Пример:

root@kitploit:~
kube-hunter --active --list --raw-hunter-names

Примечание: Из-за архитектурного дизайна kube-hunter, следующие "Основные охотники/Классы" будут всегда регистрироваться (даже при использовании пользовательской охоты):

  • HostDiscovery
    • Генерирует IP-адреса для охоты по заданным конфигурациям
    • Автоматически обнаруживает подсети с помощью облачных Metadata API
  • FromPodHostDiscovery
    • Автоматически обнаруживает IP-адреса поверхности атаки для охоты с использованием методов на основе среды пода
    • Автоматически обнаруживает подсети с помощью облачных Metadata API
  • PortDiscovery
    • Сканирование портов заданных IP-адресов на предмет известных портов сервисов Kubernetes
  • Collector
    • Собирает обнаруженные уязвимости и открытые сервисы для будущего отчета
  • StartedInfo
    • Выводит стартовое сообщение
  • SendFullReport
    • Отправляет отчет на основе заданных конфигураций

Развёртывание

Существует три метода развёртывания kube-hunter:

На машине

Вы можете запустить kube-hunter непосредственно на вашей машине.

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

Вам потребуется установить следующее:

  • python 3.x
  • pip
Установка с помощью pip

Установка:

root@kitploit:~
pip install kube-hunter

Запуск:

root@kitploit:~
kube-hunter
Запуск из исходного кода

Клонируйте репозиторий:

root@kitploit:~
git clone https://github.com/aquasecurity/kube-hunter.git

Установите зависимости модуля. (Вы можете предпочесть сделать это в виртуальном окружении)

root@kitploit:~
cd ./kube-hunter
pip install -r requirements.txt

Запуск:

root@kitploit:~
python3 kube_hunter

Если вы хотите использовать pyinstaller/py2exe, вам нужно сначала запустить скрипт install_imports.py.

Контейнер

Aqua Security поддерживает контейнеризированную версию kube-hunter по адресу aquasec/kube-hunter:aqua. Этот контейнер включает этот исходный код, а также дополнительный (закрытый) плагин отчетности для загрузки результатов в отчет, который можно просмотреть на kube-hunter.aquasec.com. Пожалуйста, обратите внимание, что запуск контейнера aquasec/kube-hunter и загрузка данных отчета регулируются дополнительными условиями.

Dockerfile в этом репозитории позволяет создать контейнеризированную версию без плагина отчетности.

Если вы запускаете контейнер kube-hunter с хост-сетью, он сможет сканировать все интерфейсы на хосте:

docker run -it --rm --network host aquasec/kube-hunter

Примечание для Docker for Mac/Windows: Имейте в виду, что "хост" для Docker for Mac или Windows — это виртуальная машина, в которой Docker запускает контейнеры. Поэтому указание --network host предоставляет kube-hunter доступ к сетевым интерфейсам этой виртуальной машины, а не вашего компьютера. По умолчанию kube-hunter работает в интерактивном режиме. Вы также можете указать параметр сканирования с помощью параметров, описанных выше, например:

docker run --rm aquasec/kube-hunter --cidr 192.168.0.0/24

Под

Эта опция позволяет узнать, что может сделать/обнаружить запуск вредоносного контейнера в вашем кластере. Это дает представление о том, что может сделать злоумышленник, если ему удастся скомпрометировать под, возможно, через уязвимость в программном обеспечении. Это может выявить значительно больше уязвимостей.

Пример файла job.yaml определяет задачу, которая запускает kube-hunter в поде, используя настройки доступа к поду Kubernetes по умолчанию. (Вы можете изменить это определение, например, для запуска от имени пользователя, не являющегося root, или для запуска в другом пространстве имен.)

  • Запустите задачу с помощью kubectl create -f ./job.yaml
  • Найдите имя пода с помощью kubectl describe job kube-hunter
  • Просмотрите результаты тестов с помощью kubectl logs <имя пода>

Вклад

Чтобы прочитать руководство по внесению вклада, нажмите здесь

Лицензия

Этот репозиторий доступен по лицензии Apache License 2.0.

Скачать инструмент
  • Лицензия