
Инструмент для разведки поверхности атак Kubernetes методом черного ящика, который проверяет незащищенные кластеры, открытые панели управления и неверные конфигурации с помощью сигнатурного сканирования.
KubeStalk — это инструмент для обнаружения поверхности атаки, связанной с Kubernetes и сопутствующей инфраструктурой, с точки зрения «чёрного ящика». Данный инструмент является общедоступной версией утилиты, использовавшейся для поиска незащищённых кластеров Kubernetes в интернете в рамках Project Resonance — Wave 9.
GIF-анимация ниже демонстрирует работу инструмента:

KubeStalk написан на Python и требует библиотеку requests.
Чтобы установить инструмент, можно клонировать репозиторий в любой каталог:
git clone https://github.com/redhuntlabs/kubestalk
После клонирования необходимо установить библиотеку requests с помощью python3 -m pip install requests или:
python3 -m pip install -r requirements.txt
Всё настроено, и вы можете напрямую использовать инструмент.
Список аргументов командной строки, поддерживаемых инструментом, можно вывести с помощью флага -h.
$ python3 kubestalk.py -h
+---------------------+
| K U B E S T A L K |
+---------------------+ v0.1
[!] KubeStalk от RedHunt Labs — Компания по управлению современной поверхностью атак (ASM)
[!] Автор: 0xInfection (RHL Research Team)
[!] Непрерывно отслеживайте свою поверхность атак с помощью https://redhuntlabs.com/nvadr.
usage: ./kubestalk.py <url(s)>/<cidr>
Обязательные аргументы:
urls Список хостов для сканирования
Необязательные аргументы:
-o OUTPUT, --output OUTPUT
Путь для записи CSV-файла
-f SIG_FILE, --sig-dir SIG_FILE
Путь к каталогу с сигнатурами
-t TIMEOUT, --timeout TIMEOUT
Тайм-аут HTTP в секундах
-ua USER_AGENT, --user-agent USER_AGENT
Заголовок User-Agent для HTTP-запросов
--concurrency CONCURRENCY
Количество одновременно обрабатываемых хостов
--verify-ssl Проверять SSL-сертификаты
--version Показать версию KubeStalk и выйти.
Для использования инструмента можно передать один или несколько хостов скрипту. Все цели, передаваемые инструменту, должны соответствовать RFC 3986, то есть содержать схему и имя хоста (и порт, если требуется).
Пример базового использования:
$ python3 kubestalk.py https://███.██.██.███:10250
+---------------------+
| K U B E S T A L K |
+---------------------+ v0.1
[!] KubeStalk от RedHunt Labs — Компания по управлению современной поверхностью атак (ASM)
[!] Автор: 0xInfection (RHL Research Team)
[!] Непрерывно отслеживайте свою поверхность атак с помощью https://redhuntlabs.com/nvadr.
[+] Загружено 10 сигнатур для сканирования.
[*] Обработка хоста: https://███.██.██.██:10250
[!] Обнаружена потенциальная проблема на https://███.██.██.██:10250: Раскрытие списка подов Kubernetes
[*] Запись результатов в выходной файл.
[+] Готово.
HTTP-запросы можно тонко настраивать с помощью флагов -t (указание тайм-аутов HTTP), -ua (задание пользовательского User-Agent) и --verify-ssl (проверка SSL-сертификатов при выполнении запросов).
Вы можете управлять количеством одновременно сканируемых хостов с помощью флага --concurrency. Значение по умолчанию — 5.
Результат выводится в CSV-файл; путь к нему задаётся флагом --output.
Пример вывода CSV, отформатированного в Markdown:
Инструмент распространяется под лицензией BSD 3-Clause и в настоящее время имеет версию v0.1.
Чтобы узнать больше о нашей платформе управления поверхностью атак, посетите NVADR.
| host | path | issue | type | severity |
|---|
https://█.█.█.█:10250 | /pods | Раскрытие списка подов Kubernetes | core-component | vulnerability/misconfiguration |
https://█.█.█.█:443 | /api/v1/pods | Раскрытие списка подов Kubernetes | core-component | vulnerability/misconfiguration |
http://█.█.██.█:80 | / | Раскрытие панели мониторинга etcd Viewer | add-on | vulnerability/exposure |
http://██.██.█.█:80 | / | Раскрытие веб-интерфейса панели метрик cAdvisor | add-on | vulnerability/exposure |