
Ferramenta de descoberta de superfície de ataque Kubernetes em caixa-preta que sonda por clusters inseguros, painéis expostos e configurações incorretas usando varredura baseada em assinaturas.
KubeStalk é uma ferramenta para descobrir superfícies de ataque baseadas no Kubernetes e infraestruturas relacionadas a partir de uma perspectiva de caixa-preta. Esta ferramenta é uma versão comunitária da ferramenta usada para sondar clusters Kubernetes não seguros na internet durante o Project Resonance - Wave 9.
O GIF abaixo demonstra o uso da ferramenta:

KubeStalk é escrito em Python e requer a biblioteca requests.
Para instalar a ferramenta, você pode clonar o repositório em qualquer diretório:
git clone https://github.com/redhuntlabs/kubestalk
Após clonar, você precisa instalar a biblioteca requests usando python3 -m pip install requests ou:
python3 -m pip install -r requirements.txt
Tudo está configurado e você pode usar a ferramenta diretamente.
Uma lista de argumentos de linha de comando suportados pela ferramenta pode ser exibida usando a flag -h.
$ python3 kubestalk.py -h
+---------------------+
| K U B E S T A L K |
+---------------------+ v0.1
[!] KubeStalk by RedHunt Labs - A Modern Attack Surface (ASM) Management Company
[!] Author: 0xInfection (RHL Research Team)
[!] Continuously Track Your Attack Surface using https://redhuntlabs.com/nvadr.
usage: ./kubestalk.py <url(s)>/<cidr>
Required Arguments:
urls List of hosts to scan
Optional Arguments:
-o OUTPUT, --output OUTPUT
Output path to write the CSV file to
-f SIG_FILE, --sig-dir SIG_FILE
Signature directory path to load
-t TIMEOUT, --timeout TIMEOUT
HTTP timeout value in seconds
-ua USER_AGENT, --user-agent USER_AGENT
User agent header to set in HTTP requests
--concurrency CONCURRENCY
No. of hosts to process simultaneously
--verify-ssl Verify SSL certificates
--version Display the version of KubeStalk and exit.
Para usar a ferramenta, você pode passar um ou mais hosts para o script. Todos os alvos passados para a ferramenta devem estar em conformidade com a RFC 3986, ou seja, devem conter um esquema e um hostname (e porta se necessário).
Um uso básico é como abaixo:
$ python3 kubestalk.py https://███.██.██.███:10250
+---------------------+
| K U B E S T A L K |
+---------------------+ v0.1
[!] KubeStalk by RedHunt Labs - A Modern Attack Surface (ASM) Management Company
[!] Author: 0xInfection (RHL Research Team)
[!] Continuously Track Your Attack Surface using https://redhuntlabs.com/nvadr.
[+] Loaded 10 signatures to scan.
[*] Processing host: https://███.██.██.██:10250
[!] Found potential issue on https://███.██.██.██:10250: Kubernetes Pod List Exposure
[*] Writing results to output file.
[+] Done.
As requisições HTTP podem ser ajustadas usando -t (para definir timeouts HTTP), -ua (para especificar user agents personalizados) e --verify-ssl (para validar certificados SSL ao fazer requisições).
Você pode controlar o número de hosts a serem escaneados simultaneamente usando a flag --concurrency. O valor padrão é 5.
A saída é escrita em um arquivo CSV e pode ser controlada pela flag --output.
Um exemplo da saída CSV renderizada em markdown é mostrado abaixo:
A ferramenta é licenciada sob a Licença BSD 3 Cláusulas e está atualmente na v0.1.
Para saber mais sobre nossa plataforma de Gerenciamento de Superfície de Ataque, confira a NVADR.
| host | path | issue | type | severity |
|---|
https://█.█.█.█:10250 | /pods | Kubernetes Pod List Exposure | core-component | vulnerability/misconfiguration |
https://█.█.█.█:443 | /api/v1/pods | Kubernetes Pod List Exposure | core-component | vulnerability/misconfiguration |
http://█.█.██.█:80 | / | etcd Viewer Dashboard Exposure | add-on | vulnerability/exposure |
http://██.██.█.█:80 | / | cAdvisor Metrics Web UI Dashboard Exposure | add-on | vulnerability/exposure |