kubernetes学习之路--BadPods(Part2)

news2024/11/26 22:32:47

在我看来,现在关于k8s的攻击面很小,除了容器逃逸,敏感信息和配置不当,很难有其他有效的横向移动的手段了吧,反正据我了解暂时是这样子的,慢慢积累吧还是。

回顾一下Pod中那几项不安全的配置 :

  • hostNetwork:true,使用宿主机的网络
  • hostPID:true,使用宿主机进程空间(ps命令)
  • hostIPC:true,允许Pod共享宿主机的IPC命名空间
  • privileged:true,是特权容器
  • hostPath:path:/ ,允许使用宿主机的根目录/

通常来说,Node节点也应该是一个服务器,上面有kubectl类似的工具来方便我们操作,既然是服务器,那么我们怎么登陆呢?

模仿登陆Pod的方式是不行的,这时我们可以使用docker来查看

 

很清晰了吧,其实Node节点是一个docker容器,那么我们就可以通过docker进入Node节点从而管理集群了。

BadPods--everything-allowed-exec-pod的挂载目录的效果体现的不是很明显,为了方便区分,我们在master-node和worker-node上分别建立一个标志文件 

 使用docker进入worker-node

docker exec -it 容器id bash

 

同理master节点

然后我们删除原来的pod(可以同时删除多个)

kubectl delete pod everything-allowed-exec-pod hostpath-exec-pod nothing-allowed-exec-pod

 然后重新创建pod

kubectl apply -f ./manifests/everything-allowed/pod/everything-allowed-exec-pod.yaml

然后我们进入容器并查看/host目录

这样子就很清晰了吧,那么下面进入正题,看看其他的配置该如何利用。

一.BadPods配置学习

1.1 priv

是特权容器,直接用CDK,可以逃逸,pass

1.2 hostipc

若该配置为true,那么允许Pod共享宿主机的IPC命名空间,IPC的作用类似目录文件共享,在/dev/shm目录下的文件是共享的。

进入容器直接拿CDK进行扫描

发现我们不是特权容器,也没有什么能直接逃逸的权限。

因为这个pod是运行在worker-node节点上,那么它应该与workerr-node上的/dev/shm目录下的文件共享,我们尝试创建一个文件

 然后在Pod中查看结果

只有该配置的Pod的进一步渗透的话就需要运气了,没有逃逸或者其他的权限,只能靠寻找敏感信息,其他的没啥想法。。

1.3 hostnetwork

首先还是使用CDK进行扫描,没有可以利用逃逸的点

然后查看扫描输出字段 Net Namespace

提示我们这个容器是加了--net=host启动的,查看配置文件我们就能看到

这个参数我们知道,是使用宿主机的网络,那么我们查看一下Pod的ip和节点的ip进行对比即可

我的Pod里啥都没有,所以先安装一下

apt-get update

apt-get install net-tools

在Pod中运行ifconfig

其中node节点Ip

发现可以ping通master节点

那么我们在这个网段中,横向渗透的面就大了,运气好就能继续拿到其他服务器的权限,然后慢慢拿到master节点的权限。

1.4 hostpath 

直接CDK扫描,看结果中的

发现有host下有很多敏感文件,于是进入host目录

此时可以看到我们worker节点的目录已经被挂载进来了

1.5 hostpid 

hostPID:true,使用宿主机进程空间(ps命令)

使用CDK进行扫描,没啥有价值的输出

然后使用命令:ps -aux

发现可以看到宿主机的进程,然后看每个进程环境变量,运气好能找到有用的信息

for e in `ls /proc/*/environ`; do echo; echo $e; xargs -0 -L1 -a $e; done > envs.txt

其他的话就是结束进程了:pkill -f 进程名

1.6 Nothing

这个的话就是靠运气和其他的了,类似RBAC权限滥用,或者K8S集群中某些配置不当,其他的话我暂时就没有什么渗透思路了。


总结:BadPods的练习就是熟悉一下配置,或者以后真拿到了一个可以create pods的账号,利用这些配置就可以轻松拿到master节点了。

之后打算先写写污点这方面,然后顺便说一说类似deployment,daemonset等组件的作用,要不然都不知道它们有什么作用也不太好哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

原地起飞,华为内部都在强推的435页网络协议文档,附讲解

#为什么要学习网络协议? 相信大家都听过通天塔的故事,上帝为了阻止人类联合起来,让人类说不同的语言,人类没法沟通,达不成“协议”,通天塔的计划就失败了。 但是千年以后,有一种叫“程序猿”的…

基于VBA实现电缆结构自动出图(三) —— 多芯线

大家敢相信吗,原来VBA竟然可以实现电缆结构自动出图,换句话说,只要输入数据,VBA会自动将电缆的结构画出来,同时还可以渲染,结果竟然不输画图软件,真真让我刮目相看。这里我就不过多介绍VBA了&am…

重点| 系统集成项目管理工程师考前50个知识点(5)

本文章总结了系统集成项目管理工程师考试背记50个知识点!!! 帮助大家更好的复习,希望能对大家有所帮助 比较长,放了部分,需要可私信!! 30、活动之间的四种依赖关系: 强…

[附源码]Node.js计算机毕业设计高校互联网班级管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

Redis 压力测试 服务监控

Redis 压力测试 & 服务监控 Redis 压力测试 Redis 安装成功后,会在 /usr/local/bin/目录下生成redis-benchmark压测工具。该工具模拟N个客户端同时执行Redis指令,默认提供一组默认测试参数,用户可以自定义其属性,更改测试行…

java开发必备技能:mysql

mysql 架构 连接器 mysql的连接器负责处理mysql客户端的连接请求及维护连接。 传输协议 mysql支持多种传输协议,不同的平台可以选择不同的协议: 连接压缩控制 mysql建立的连接可以对客户端和服务器之间的流量进行压缩,以减少通过连接发…

Rock派(基于瑞芯微RK3308B)开发记录-上篇

本文作者:Linux兵工厂,一个嵌入式软件领域的攻城狮。欢迎指教公一众-号:Linux兵工厂,获取硬核Linux资料和文章 前言 根据项目需求并且经过各方面评估最终选择了这款Rock Pi(Rock派)系列中的Rock Pi S产品。正式它的各方面的特性…

马士兵-郑金维—并发编程—6.JUC并发工具

JUC并发工具 一、CountDownLatch应用&源码分析 1.1 CountDownLatch介绍 CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。 如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。 需要一个并发安全的计数器来操作。 CountDown…

Web大学生网页作业成品 :黑色主题个人博客网站设计与实现(HTML+CSS+JavaScript)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

基于java+springmvc+mybatis+vue+mysql的农业信息管理系统

项目介绍 农业信息的需求和管理上的不断提升,农业信息管理的潜力将无限扩大,农业信息管理系统在业界被广泛关注,本系统对此进行总体分析,将农业信息管理的发展提供参考。农业信息管理系统对农业信息有着明显的带动效应&#xff0…

【统一融合:拉普拉斯算子:GAN框架】

UIFGAN: An unsupervised continual-learning generative adversarial network for unified image fusion (UIFGAN:一个无监督不断学习生成对抗网络统一的图像融合) 本文提出了一种新的无监督连续学习生成对抗网络(UIFGAN)用于统…

阿里资深架构师熬夜纯手写的238页微服务容器化开发实战笔记

本文将分为目录、主要内容和大牛对本文的高度评价三部分组成,因为内容比较多,小编只能把部分知识点和目录拿出来给大家介绍,希望大家能够理解!!! 本文目录 本文包括的主要内容 微服务和 Docker容器技术是目…

怎么安装 Arch Linux?

Arch Linux 是一个 x86-64 通用发行版,它流行于那些喜欢 DIY Linux 系统的用户和 Linux 铁杆粉丝当中。 本文导航 ◈ 如何安装 Arch Linux11% ◈ 安装 Arch Linux 的条件:14% ◈ 第一步:下载 ISO 文件18% ◈ 第二步:创建一个 …

磨金石教育摄影技能干货分享|世界顶级的手机摄影作品欣赏

随着手机像素越来越高,拍照功能越来越完善,手机摄影成为了越来越多人的首选,大家不再执着于单反相机。手机的方便与简捷更受非专业人士的青睐。 每到一个地方,见到不同的景色和人文,我们都可以随手掏出手机记录这些美好…

前端模板-2【vue部分小功能】

前端模板【vue部分小功能】 1 Vue部分模板 1.1 vue实现store【存储当前选中页面】 我的习惯用法,大家可自行调整【以存储当前页面名称为例】 ①在src下新建文件夹store,并创建configure.js、index.js configure.js const configure {state: {HOST: h…

LeetCode 每日一题——1945. 字符串转化后的各位数字之和

1.题目描述 1945. 字符串转化后的各位数字之和 给你一个由小写字母组成的字符串 s ,以及一个整数 k 。 首先,用字母在字母表中的位置替换该字母,将 s 转化 为一个整数(也就是,‘a’ 用 1 替换,‘b’ 用 …

React 入门:实战案例 TodoList 底部功能实现

文章目录目标实现效果实现已完成和全部数量统计和显示实现全选和全不选实现清除已完成功能完整代码App 组件完整代码Footer 组件完整代码通过前面的章节已经完成 TodoList 的增删改的功能,本文我们来实现底部相关功能:已完成和全部数量实时统计&#xff…

【Linux】文件系统/inode/软硬链接

目录 一.了解磁盘 1.磁盘的概念 2.磁盘的物理结构 3.磁盘的逻辑结构 4.磁盘区域的划分 二.linux文件系统 三.inode 四.软硬链接 1.软链接 2.硬链接 一.了解磁盘 前言: 一般情况下, 系统中存在大量的未被打开的文件, 这些文件全部存储在磁盘上, 也简称磁盘级文件 在li…

功能测试进阶自动化测试,一个女测试工的坎坷之路

绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。 随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要…

从ADAS到高阶自动驾驶,车联网芯片如何赋能产业升级?

2022年,L2及L2ADAS前装搭载率正在快速提升,中国智能网联汽车产业进入了由ADAS加速向高阶自动驾驶迈进的关键期。 根据《高工智能汽车研究院》数据显示,今年1-9月前装标配搭载L2级辅助驾驶搭载量为395.19万辆,同比增长69.53%&…