首页
学习
活动
专区
圈层
工具
发布

Kubelet端口未授权深入利用

漏洞描述 K8s Node对外开启10250(Kubelet API)和10255端口(readonly API),默认情况下kubelet监听的10250端口没有进行任何认证鉴权,攻击者可以通过利用该设计缺陷来创建恶意...pod或控制已有pod,后续可尝试逃逸至宿主机 环境搭建 Step 1:修改配置文件开启匿名访问: sudo vi /var/lib/kubelet/config.yaml Step 2:重载服务 systemctl...restart kubelet.service systemctl status kubelet 之后使用浏览器访问发现依旧不行 Step 3:最后直接system:anonymous绑定到cluster-admin...,通过在node中的pod里执行反弹语句来获得node的shell,假定这里的192.168.17.161:80是攻击者web服务,之后写入以下反弹shell指令,之后启动一个简易的HTTP服务: 在本地浏览器中进行简单测试...端口未授权漏洞获取大量的敏感信息并实现在Pod中执行命令的目的,若要进行后渗透利用还需要获取到有效的Token

1K10

kubelet 启动流程分析

2、启动垃圾回收服务。...= nil { return nil, err } // 通知 apiserver kubelet 启动了 k.BirthCry() // 启动垃圾回收服务 k.StartGarbageCollection...5、启动 kubelet 内部的模块及服务(cmd/kubelet/app/server.go) startKubelet() 的主要功能: 1、以 goroutine 方式启动 kubelet 中的各个模块...总结 本篇文章主要讲述了 kubelet 组件从加载配置到初始化内部的各个模块再到启动 kubelet 服务的整个流程,上面的时序图能清楚的看到函数之间的调用关系,但是其中每个组件具体的工作方式以及组件之间的交互方式还不得而知...参考: kubernetes node components – kubelet Kubelet 源码分析(一):启动流程分析 kubelet 源码分析:启动流程 kubernetes 的 kubelet

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    kubelet 启动流程分析

    2、启动垃圾回收服务。...= nil { return nil, err } // 通知 apiserver kubelet 启动了 k.BirthCry() // 启动垃圾回收服务 k.StartGarbageCollection...5、启动 kubelet 内部的模块及服务(cmd/kubelet/app/server.go) startKubelet() 的主要功能: 1、以 goroutine 方式启动 kubelet 中的各个模块...总结 本篇文章主要讲述了 kubelet 组件从加载配置到初始化内部的各个模块再到启动 kubelet 服务的整个流程,上面的时序图能清楚的看到函数之间的调用关系,但是其中每个组件具体的工作方式以及组件之间的交互方式还不得而知...参考: kubernetes node components – kubelet Kubelet 源码分析(一):启动流程分析 kubelet 源码分析:启动流程 kubernetes 的 kubelet

    1.7K10

    kubelet 启动流程分析

    本来这篇文章会继续讲述 kubelet 中的主要模块,但由于网友反馈能不能先从 kubelet 的启动流程开始,kubelet 的启动流程在很久之前基于 v1.12 写过一篇文章,对比了 v1.16 中的启动流程变化不大...Kubelet 启动流程 kubernetes 版本:v1.16 kubelet 的启动比较复杂,首先还是把 kubelet 的启动流程图放在此处,便于在后文中清楚各种调用的流程: ?...10、检查 kubelet 是否启动了动态配置功能; 11、启动 Healthz http server; 12、如果使用 systemd 启动,通知 systemd kubelet 已经启动; k8s.io...:启动垃圾回收服务,回收 container 和 images; k8s.io/kubernetes/cmd/kubelet/app/server.go:1089 func createAndInitKubelet...的启动流程,可以看到 kubelet 启动流程中的环节非常多,kubelet 中也包含了非常多的模块,后续在分享 kubelet 源码的文章中会先以 Run 方法中启动的所有模块为主,各个击破。

    2.8K22

    集群安全之Kubelet端口未授权深入利用

    漏洞描述 K8s Node对外开启10250(Kubelet API)和10255端口(readonly API),默认情况下kubelet监听的10250端口没有进行任何认证鉴权,攻击者可以通过利用该设计缺陷来创建恶意...pod或控制已有pod,后续可尝试逃逸至宿主机 环境搭建 Step 1:修改配置文件开启匿名访问: sudo vi /var/lib/kubelet/config.yaml Step 2:重载服务 systemctl...restart kubelet.service systemctl status kubelet 之后使用浏览器访问发现依旧不行 Step 3:最后直接system:anonymous绑定到cluster-admin...,通过在node中的pod里执行反弹语句来获得node的shell,假定这里的192.168.17.161:80是攻击者web服务,之后写入以下反弹shell指令,之后启动一个简易的HTTP服务: 在本地浏览器中进行简单测试...端口未授权漏洞获取大量的敏感信息并实现在Pod中执行命令的目的,若要进行后渗透利用还需要获取到有效的Token 推 荐 阅 读 横向移动之RDP&Desktop Session Hija

    1.4K10

    kubelet API未授权访问漏洞:成因、危害、排查、整改

    kubelet作为Kubernetes(简称K8s)集群节点核心组件,负责容器生命周期管理、资源调度等关键功能,其API接口若配置不当,易引发未授权访问漏洞,成为攻击者突破集群防线的高频入口。...一、漏洞成因:核心风险配置该漏洞并非kubelet自身代码缺陷,核心成因是管理员部署、运维时,优先追求效率而忽视安全配置,常见风险场景有4类:1.1 关闭认证授权机制部分管理员为简化操作,给kubelet...1.3 认证配置错误或凭证泄露客户端证书过期、权限配置异常,或高权限Token明文存储、泄露;第三方运维、监控工具被分配过高权限,且凭证未定期轮换,均会导致认证机制失效,形成“伪未授权”访问风险。...二、漏洞危害:被利用后的核心风险漏洞被未授权攻击者利用后,会实现从节点到集群的多维度渗透,核心危害体现在4方面:1....查看kubelet启动参数:登录集群各节点,执行命令“ps -ef | grep kubelet”,排查是否存在“--anonymous-auth=true”“--authorization-mode=

    66410

    Hadoop启动异常的处理--DataNode未启动

    异常现象描述: hadoop格式化后,我们需要启动hdfs。然而,有些时候启动hdfs并不是那么顺利,往往会出现DataNode未启动的现象。...启动hdfs后,执行jps命令查看,结果如下: hdfs启动异常.png 很显然,DataNode没有出现。作为存储数据的节点进程没有运行,肯定是有问题的。.../start-dfs.sh后,仍然是上面的结果, DataNode 没有启动。 尝试过的第二种方法: 执行..../stop-dfs.sh后,关闭hdfs,重新启动,结果跟上面一样,仍然是DataNode 没有启动。 再三折腾,删除掉存放数据的临时文件tmp,重新格式化Hadoop,格式化成功。.../start-dfs.sh 结果如下: 222.png NameNode和DataNode都已经正常启动了。 小结: 搭建环境是一件很费力但不一定有结果的事情,出现异常也在所难免。

    5.9K30

    kubeadm系列-02-kubelet的配置和启动

    文章目录 overview 默认的配置 drop in配置 启动 其他 overview 不管是在 control plane 节点还是在普通的 worker 节点,kubelet 是必须要启动的进程,...而 kubelet 的安装方式可以用 rpm 包也可以用二进制 关于 kube init 里关于 kubelet 启动的日志,复习一下 # 开始启动kubelet [kubelet-start] Writing...有一些特殊的配置文件需要注意一下,不明白的可以查看官方文档 在不用那些包管理器的情况下,徒手装的文档可以参考这里 启动 kubelet 真正被启动的逻辑在下面的代码里,首先会先尝试停止进程(防止有多个进程启动了...),本质上就是通过 systemctl status kubelet 先检查服务的状态,如果没有 enable 就会提醒,如果 enable 了就会通过 systemctl stop kubelet 来停止服务...,然后会吧 ClusterConfiguration 和 NodeRegistration 的参数(并不是所有,主要是启动进程启动的参数args之类的写到KUBELET_KUBEADM_ARGS)合并,

    2.2K40

    MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止

    这几天因为工作需求,需要把MySQL请出来,所以将尘封已久的MySQL进行启动。可是事与愿违,兴许是许久没有访问MySQL了,MySQL生气的不理我,并向外抛出一阵阵报错。...1、其中一个是:Windows无法启动MySQL57服务(位于本地计算机上)错误1067:进程意外终止,报错如下图所示。 2、紧跟着还有一个报错:本地计算机上的MySQL服务启动后停止。...某些服务在未由其他服务或程序使用时将自动停止,报错如下图所示。 3、之后即便我垂死挣扎,在命令行窗口中不断的重启MySQL服务,但是仍然没有戳到痛点,尝试的步骤有下图为证。...5、后来也想过直接通过点击“我的电脑>管理>服务>MySQL”,收到启动MySQL,但是丝毫没有改观。 6、经过一番尝试之后,还是行不通。...之后就可以看到MySQL服务顺利启动。 而且在状态栏的MySQL Notifier中也会弹出提示,如下图所示,MySQL的状态变为从停止变为启动。

    4.3K11

    MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止

    这几天因为工作需求,需要把MySQL请出来,所以将尘封已久的MySQL进行启动。可是事与愿违,兴许是许久没有访问MySQL了,MySQL生气的不理我,并向外抛出一阵阵报错。...1、其中一个是:Windows无法启动MySQL57服务(位于本地计算机上)错误1067:进程意外终止,报错如下图所示。 2、紧跟着还有一个报错:本地计算机上的MySQL服务启动后停止。...某些服务在未由其他服务或程序使用时将自动停止,报错如下图所示。 3、之后即便我垂死挣扎,在命令行窗口中不断的重启MySQL服务,但是仍然没有戳到痛点,尝试的步骤有下图为证。...5、后来也想过直接通过点击“我的电脑>管理>服务>MySQL”,收到启动MySQL,但是丝毫没有改观。 6、经过一番尝试之后,还是行不通。...之后就可以看到MySQL服务顺利启动。 而且在状态栏的MySQL Notifier中也会弹出提示,如下图所示,MySQL的状态变为从停止变为启动。

    9.6K30

    Windows服务器无法远程登录:远程桌面服务已启动,默认端口未监听

    问题描述 使用腾讯云Windows服务器时,无法远程桌面登录,可以通过控制台vnc登录。...[远程登录报错] VNC登录服务器可参考官网文档 检查远程桌面服务已启动,但是端口未监听,如下图 [p058x818z3.png] [zja0as82n7.png] ---- 解决方案 方案一、远程已关闭...[f7dtzvs04e.png] 方案二、端口使用的非默认端口,所以过滤3389未监听 先选择开始-->运行,输入regedit,点击确认,打开注册表,然后找到路径HKEY_LOCAL_MACHINE\...CurrentContro1Set\Control\Tenninal Server\WinStations\RDP-Tcp 找到这两个路径下的PortNamber,然后右键–>修改,选择到十进制,你就会看到现在您服务器使用的的端口号...[nchzkstcrh.png] 此时过滤33890端口是正常监听的,如下图 [szxejhfs35.png] 远程登录时需要指定这里的端口登录,在远程桌面程序输入 服务器公网IP:端口 即可登录。

    25.3K41

    Linux下minikube启动失败(It seems like the kubelet isnt running or healthy)

    先说明一下安装minikube的环境信息: 操作系统:CentOS Linux release 7.6.1810 Docker:1.13.1 在执行minikube start启动的时候...启动失败了,执行命令tail /var/log/messages查看进一步的原因: Jun 8 09:45:35 minikube kubelet: F0608 09:45:35.392302 24268...上述日志表明:kubelet的cgroup driver是cgroupfs,docker的 cgroup driver是systemd,两者不一致导致kubelet启动失败。...解决问题 尝试过修改kubelet的cgroup dirver(文件位置:/etc/systemd/system/kubelet.service.d/10-kubeadm.conf),但是每次启动minikube...重新加载配置信息,重启服务: systemctl daemon-reload && systemctl restart docker 完成了上述修改,再去重新启动minikube就可以成功了,如下: [

    18.2K50

    Kubelet 对 Pod 的服务质量管理

    上篇文章 《Kubelet 创建 pod 工作流程》 讲解了 kubelet 如何创建 pod,各组件之间如何协作。基于上一篇文章,本文会讲解 kubelet 如何对 Pod 进行服务质量管理。...Pod QoS Kubernetes 对每个 Pod 都设有 QoS 类型,通过这个 QoS 类型来对 Pod 进行服务质量管理。...kubelet 启动后,会解析节点上的 root cgroups,然后在其下面创建一个叫做 kubepods 的子 cgroups。...构造完毕后,containerManager 启动的时候,会初始化并启动所有的子组件,其中就包括 qosContainerManager,启动 qosContainerManager 的方式是调用 setupNode...cpuQuota;计算出大页 limit;再根据每个 container 的 resource 声明,判断是哪种 QoS;最后再统计 pod 的 cgroup: 若 enforceCPULimits 未开启

    1.4K32
    领券