Docker API未授权访问
影响版本
危险的配置错误。只要满足以下条件,无论 Docker 版本新旧,均存在风险
漏洞原理
Docker守护进程若暴露2375端口且无认证,攻击者可远程管理Docker。
环境搭建
在 Docker 守护进程的配置中开放 TCP 2375 端口(此端口通常用于非加密的 Docker Remote API 通信)。编辑 /etc/docker/daemon.json 文件(如果不存在则创建),添加以下内容
1 | { |
或者修改 systemd 的 Docker 服务文件(如 /usr/lib/systemd/system/docker.service
),在 ExecStart 行追加 -H tcp://0.0.0.0:2375
1 | sudo vim /usr/lib/systemd/system/docker.service |
重启docker
1 | sudo systemctl daemon-reload |
漏洞复现
直接连接就可以了
1 | docker -H tcp://<你的服务器IP>:2375 info |
修复建议
-
使用 TLS:通过配置 Docker 来使用 TLS 加密 TCP 连接。这涉及到生成证书和修改
daemon.json
来启用 TLS。具体步骤可以查看 Docker 的官方文档。 -
限制访问:仅允许特定的 IP 地址或网络访问 TCP 端口。
-
使用 VPN 或其他安全通道:确保远程连接是通过安全的网络通道进行的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Kaelthlog!