Kubernetes 的服务在正常启动后会开启两个端口:Localhost Port (默认8080)、Secure Port (默认6443)。这两个端口都是提供 Api Server 服务的,一个可以直接通过 Web 访问,另一个可以通过 kubectl 客户端进行调用。如果运维人员没有合理的配置验证和权限,那么攻击者就可以通过这两个接口去获取容器的权限。
漏洞复现
使用以下Fofa语法搜索Kubernetes产品
port="8080" && app="Kubernetes"
在打开的网页中直接访问 8080 端口会返回可用的 API 列表
漏洞修复
- 进行授权认证
- 使用Service Account令牌
- 置防火墙策略