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

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

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

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

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

Категории

Все категории
Loading categories
KubiScan — Инструмент для сканирования кластера Kubernetes на предмет опасных разрешений | Kitploit
Инструменты/GitHubGitHub/cyberark/kubiscan
Аутентификация и авторизацияПовышение привилегийСканеры уязвимостейБезопасность контейнеровАудит конфигурацииСбор информацииТестирование на ПроникновениеБезопасность облачных средОбнаружение СекретовНеправильная КонфигурацияRed Teaming
1.4k1411 год назадПроверено Kitploit

Популярное

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

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

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

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

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

KubiScan

Инструмент для сканирования кластера Kubernetes на предмет опасных разрешений

Репозиторий

GitHub release License Stars

Инструмент для сканирования кластера Kubernetes на предмет опасных разрешений в модели управления доступом на основе ролей (RBAC). Инструмент был опубликован в рамках исследования «Обеспечение безопасности кластеров Kubernetes путем устранения опасных разрешений» https://www.cyberark.com/threat-research-blog/securing-kubernetes-clusters-by-eliminating-risky-permissions/.

Содержание

  • Обзор
  • Что он умеет?
  • Использование
    • Контейнер
    • Напрямую с Python3
      • Предварительные требования
      • Пример установки на Ubuntu
      • С файлом KubeConfig
      • Удалённо с токеном ServiceAccount
  • Примеры
  • Демо
  • YAML опасных ролей
  • ❤️ Примеры использования
  • Лицензия
  • Ссылки

Обзор

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

Что он умеет?

  • Выявлять опасные Roles\ClusterRoles
  • Выявлять опасные RoleBindings\ClusterRoleBindings
  • Выявлять опасных субъектов (Users, Groups и ServiceAccounts)
  • Выявлять опасные Pods\Containers
  • Извлекать токены из подов (все или по namespace)
  • Получать связанные RoleBindings\ClusterRoleBindings для Role, ClusterRole или Subject (user, group или service account)
  • Список субъектов с определённым видом ('User', 'Group' или 'ServiceAccount')
  • Список правил RoleBinding или ClusterRoleBinding
  • Показывать поды, имеющие доступ к секретным данным через volume или переменные окружения
  • Получать bootstrap-токены для кластера
  • Сканирование CVE
  • Поддержка EKS\AKS\GKE

Использование

Контейнер

Вы можете запустить его так:

root@kitploit:~
./docker_run.sh <kube_config_file>
# Например: ./docker_run.sh ~/.kube/config

Он скопирует все файлы, указанные в конфигурационном файле, в контейнер и откроет оболочку внутри контейнера.

Чтобы создать Docker-образ, выполните:

root@kitploit:~
docker build -t kubiscan .

Напрямую с Python3

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

  • Python 3.6+
  • Pip3
  • Kubernetes Python Client
  • Prettytable
  • openssl (встроен в ubuntu) — используется только для join-токена

Пример установки на Ubuntu:

root@kitploit:~
apt-get update  
apt-get install -y python3 python3-pip 
pip3 install -r requirements.txt  

Выполните alias kubiscan='python3 /<папка_KubiScan>/KubiScan.py', чтобы использовать kubiscan.

После установки всех вышеуказанных требований вы можете запустить его двумя способами:

С файлом KubeConfig:

Убедитесь, что у вас есть доступ к файлу ~/.kube/config и всем соответствующим сертификатам, просто выполните:
kubiscan <команда>
Например: kubiscan -rs покажет всех опасных субъектов (пользователей, сервисные аккаунты и группы).

Удалённо с токеном ServiceAccount

Некоторые функции требуют привилегированной сервисной учетной записи со следующими разрешениями:

  • resources: ["roles", "clusterroles", "rolebindings", "clusterrolebindings", "pods", "secrets"]
    verbs: ["get", "list"]
  • resources: ["pods/exec"]
    verbs: ["create", "get"]

Но большинство функций не требуют этого, поэтому вы можете использовать следующие настройки для ограниченной сервисной учетной записи:
Её можно создать, выполнив:

root@kitploit:~
kubectl apply -f - << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kubiscan-sa
  namespace: default
---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: kubiscan-sa-secret
  annotations:
    kubernetes.io/service-account.name: kubiscan-sa
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata: 
  name: kubiscan-clusterrolebinding
subjects: 
- kind: ServiceAccount 
  name: kubiscan-sa
  namespace: default
  apiGroup: ""
roleRef: 
  kind: ClusterRole
  name: kubiscan-clusterrole
  apiGroup: ""
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata: 
  name: kubiscan-clusterrole
rules: 
- apiGroups: ["*"]
  resources: ["roles", "clusterroles", "rolebindings", "clusterrolebindings", "pods"]
  verbs: ["get", "list"]
EOF

Обратите внимание, что начиная с Kubernetes 1.24 создание сервисной учетной записи не создаёт секрет. Это означает, что нам нужно создать секрет.
До версии 1.24 вы можете удалить объект Secret из приведённых выше команд и сохранить токен сервисной учетной записи в файл:
kubectl get secrets $(kubectl get sa kubiscan-sa -o=jsonpath='{.secrets[0].name}') -o=jsonpath='{.data.token}' | base64 -d > token

Начиная с версии 1.24, вам не нужно ничего менять и сохранять токен так:

root@kitploit:~
kubectl get secrets kubiscan-sa-secret -o=jsonpath='{.data.token}' | base64 -d > token  

После сохранения токена в файл вы можете использовать его так:
python3 ./KubiScan.py -ho <master_ip:master_port> -t /token <команда>

Например:

root@kitploit:~
alias kubiscan='python3 /<папка_KubiScan>/KubiScan.py'
kubiscan -ho 192.168.21.129:8443 -t /token -rs

Обратите внимание, что вы также можете использовать центр сертификации (ca.crt) для проверки SSL-соединения:

root@kitploit:~
kubiscan -ho <master_ip:master_port> -t /token -c /ca.crt <команда>

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

root@kitploit:~
kubectl delete clusterroles kubiscan-clusterrole  
kubectl delete clusterrolebindings kubiscan-clusterrolebinding   
kubectl delete sa kubiscan-sa  
kubectl delete secrets kubiscan-sa-secret

Примеры

Чтобы увидеть все примеры, выполните python3 KubiScan.py -e или из контейнера kubiscan -e.

Демо

Небольшой пример использования KubiScan:

YAML опасных ролей

Существует файл с именем risky_roles.yaml. Этот файл содержит шаблоны опасных ролей с приоритетом.
Хотя вид каждой роли — Role, эти шаблоны будут сравниваться с любыми Role\ClusterRole в кластере.
При проверке каждой такой роли на соответствие роли в кластере проверяется, содержит ли роль в кластере правила из опасной роли. Если да, она будет помечена как опасная.
Мы добавили все роли, которые сочли опасными, но поскольку каждый может определять термин «опасно» по-своему, вы можете изменить файл, добавляя\удаляя роли, которые считаете более\менее опасными.

❤️ Примеры использования

  • Представлено на RSA 2020 "Компрометация кластера Kubernetes с использованием разрешений RBAC"
  • Представлено на RSA 2022 "Атака и защита кластера Kubernetes: Kubesploit против KubiScan"
  • Статья от PortSwigger "KubiScan: Open source Kubernetes security tool showcased at Black Hat 2020"

Лицензия

Copyright (c) 2020 CyberArk Software Ltd. Все права защищены
Этот репозиторий лицензирован под GPL-3.0 — подробнее см. в LICENSE.

Ссылки:

Для дополнительных комментариев, предложений или вопросов обращайтесь к Eviatar Gerzi (@g3rzi) и CyberArk Labs.

Скачать инструмент