[2021]Zookeeper getAcl命令未授权访问漏洞概述与解决

news/2025/1/19 14:09:51/

今天在漏洞扫描的时候蹦出来一个zookeeper的漏洞问题,即使是非zookeeper的节点,或者是非集群内部节点,也可以通过nc扫描2181端口,获取极多的zk信息。关于漏洞的详细描述参考apache zookeeper官方概述:CVE-2018-8012: Apache ZooKeeper Quorum Peer mutual authentication


漏洞演示:

这是一个CDP集群,里面有三个物理节点,每个节点各自有一个zk实例,注意看IP。
zk集群
另开一台非集群节点的连接,使用echo conf | nc 10.168.1.28 2181 命令:
other
可以看到非常多的配置和集群信息,除了conf,还有ruok、stat等命令:
ruok

如此多敏感信息暴露在互联网上肯定是很不安全的,解决方式主要有四种:修改默认端口(简单易实现)、配置zookeeper认证用户或修改权限、打补丁(不推荐)、开启防火墙。

1.修改默认端口 :把client的2181修改为其他的端口即可,不过如果是范围扫描,还是会被发现

2.修改认证:这种方法比较折衷,不过我看的方法都是使用setAcl path,最开始我也是使用这种方法,我们一步一步看一下:
首先:使用有zk实例的节点,使用./zkCli.sh -server:ip 进入server,查看权限:
权限
world anyone是最广的权限,相当于Java的public,谁都能访问;cdrwa是具体的权限,相当于Linux的rwx

然后:使用setAcl -R / ip:Acl ,给集群ip开白名单

setAcl -R / ip:10.168.1.28:cdrwa,ip:10.168.1.29:cdrwa,ip:10.168.1.30:cdrwa

再查看权限:
Acl
似乎没问题了?再用集群外的节点监听一下:
在这里插入图片描述
好家伙,看的更仔细了???

我搞了半天,百思不得其解,探索了两个小时,然后试探性了查看单个路径的节点:
zk子节点
然后检查了一会儿,除了两个zk目录下面的文件,其他文件都是没问题了,然后到官网和GitHub,发现这个是一个bug…zk服务端启动后,默认会启动这几个具有world和cdrwa权限的znode,“/” “/zookeeper” “/zookeeper/config"和”/zookeeper/quota"(根据zookeeper的版本不同可能存在不同,并且这几个节点虽然具有world和cdrwa权限,但是是无法删除的。GitHub还出了个补丁…
GitHub issue

除了这种针对匿名用户的,也有使用用户做认证的,不过我还在尝试中。

3.打补丁:不知道上面那个链接的补丁有没有效果,我是用的第四种,开启防火墙策略。

4.开启防火墙:这是比较保守的方法,需要设置繁多的策略,开放端口…允许IP,但是是最有效的,个人比较推荐。


http://www.ppmy.cn/news/1398134.html

相关文章

【机器学习】如何计算解释模型的SHAP值

文章目录 近似算法计算步骤计算举例参考资料 SHAP值是一种用于解释机器学习模型的工具,可以帮助我们理解每个特征值对模型预测结果的贡献程度。具体地,我们应该如何计算单个特征的SHAP值呢?以下介绍一种近似计算方法。 近似算法 单个特征值的…

GPT提示词分享 —— 口播脚本

可用于撰写视频、直播、播客、分镜头和其他口语内容的脚本。 提示词👇 请以人的口吻,采用缩略语、成语、过渡短语、感叹词、悬垂修饰语和口语化语言,避免重复短语和不自然的句子结构,撰写一篇关于 [主题] 的文章。 GPT3.5&#…

ADB 安装与操作命令详解及用法大全

目录 ADB定义 ADB安装 Windows系统: macOS系统: Linux系统: ADB常用命令 ADB定义 ADB(Android Debug Bridge)是一个多功能命令行工具,它允许开发者与连接的Android设备或模拟器进行通信。 ADB提供了…

C/C++ 不要使用 boost::asio::ip::address::from_string 函数来转换字符串为IP地址

如本文标题所示,不要使用 boost::asio::ip::address::from_string 函数来转换字符串为IP地址,它可能导致崩溃。 这是因为 boost::asio::ip::address::from_string 函数实现并不安全有问题,在 Android 平台NDK优化编译的情况下,100…

微信小程序页面制作练习——制作一个九宫格导航图

要求&#xff1a; 代码实现&#xff1a; 先将所需要的资源图片存入我的image文件里面 模拟练习供参考&#xff0c;不建议这样存入image里&#xff0c;因为本地图片占内存太大&#xff0c;不能预览。 一、list.wxml里面搭建框架代码&#xff1a; <!--pages/list/list.wxml…

循环神经网络之序列模型

自回归模型 自回归模型&#xff1a; 只与x 有关 &#xff0c;对自己执行回归隐变量自回归&#xff1a;与X 和过去观测总结h 都有关 案例 %matplotlib inline import torch from torch import nn from d2l import torch as d2lT 1000 # 总共产生1000个点 time torch.aran…

HuggingFace: 掌握自然语言处理的利器

引言 在当今人工智能领域中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是备受关注的焦点之一。从智能助手到情感分析&#xff0c;NLP技术已经深入到我们日常生活和工作的方方面面。然而&#xff0c;随着数据量的增长和模型复杂性的提升&#xff0c;开发和部署高…

ZooKeeper 分布式锁的实现方法

如果有客户端1、客户端2等N个客户端争抢一个 Zookeeper 分布式锁。大致如下&#xff1a; 1&#xff1a; 大家都是上来直接创建一个锁节点下的一个接一个的临时有序节点 2&#xff1a; 如果自己不是第一个节点&#xff0c;就对自己上一个节点加监听器 3&#xff1a; 只要上一…