ZooKeeper未授权访问漏洞确认与修复
zookeeper未授权访问测试参考文章:
https://www.cnblogs.com/Hi-blog/p/Zookeeper-UnAuthorization-Access.html#_label04
探测2181
探测Zookeeper服务开放
如使用nmap探测某个目标地址是否运行Zookeeper服务,探测2181端口开放。
root@kali:~# nmap -Pn -p 2181 xx.xx.xx.xx
探测四字命令
用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交四字命令,来探测四字命令是否开启
参考文章:
https://www.cnblogs.com/kuku0223/p/8428341.html
https://www.jianshu.com/p/1d638fac4da8
https://zookeeper.apache.org/doc/r3.6.1/zookeeperAdmin.html#sc_zkCommands
- conf命令
输出相关服务配置的详细信息,端口、数据路径、日志路径、session 超时时间,最大连接数等。
root@kali:~# echo conf | nc xx.xx.xx.xx 2181
- cons命令
列出所有连接到当前服务器的客户端/会话的详细信息
root@kali:~# echo cons | nc xx.xx.xx.xx 2181 | more
- dump命令
输出未处理的会话和临时节点,leader 节点有效。
root@kali:~# echo dump | nc xx.xx.xx.xx 2181 | more
- envi命令
输出服务器的详细信息。
root@kali:~# echo envi | nc xx.xx.xx.xx 2181
用安装好zk环境的客户端连接测试
./zkCli.sh -server x.x.x.x:2181
ls /
# 输出目录就是 连接成功
# 输出 Authentication is not valid : / 就是没有权限
修复
修复步骤一 关闭四字命令
ZooKeeper3.4.6支持某些特定的四字命令与其的交互。它们大多是查询命令,但也有重启zk之类的命令,四字命令可以用来获取、重启 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。
从运维的角度看,这个功能很方便,但是从安全角度来看,就需要关闭这些特定的四字命令来确保安全了,修复方式为:升级zookeeper>=3.5.3(旧版本不能给四字命令加白名单哦,升级请自行评估风险),然后设置四字命令白名单、关闭http使用四字命令工具即可,示范如下:
/home/work/software/apache-zookeeper-3.6.1-bin/conf/zoo.cfg
#限制tcp使用4字命令的白名单,添加了白名单的四字命令才能执行 (升级到高版本以后默认的白名单4字命令里只有srvr这一个,请按需增加)
4lw.commands.whitelist=stat, srvr
#是否开启jetty服务允许使用http方式执行4字命令,默认为true开启,false为关闭(升级到高版本以后默认开启http方式)
admin.enableServer=false
- 如果真的有需求要开启http功能
如果有需求要开启http功能,可以修改根路径名称,改成20位的随机字符
#修改http四字命令的根路径,默认为/commands
admin.commandURL=/2cgyS2rQGW4yzjJlXV0k
访问路径就会变成:curl http://10.39.27.200:8080/2cgyS2rQGW4yzjJlXV0k/envi
设置成功之后 ,继续做修复步骤二;
参考文章:
https://www.cnblogs.com/kuku0223/p/8428341.html
https://www.jianshu.com/p/1d638fac4da8
https://zookeeper.apache.org/doc/r3.6.1/zookeeperAdmin.html#sc_zkCommands
修复步骤二 关闭未授权访问
开启SASL_PLAINTEXT认证(用户名和密码认证)
https://www.cnblogs.com/iamsach/p/9234624.html
或者用下面的方式
添加IP白名单对连接ZK的客户端进行限制
通过IP白名单对连接ZK的客户端进行限制,比较简单,只需要收集一下IP即可。因zookeeper不支持节点间权限的继承,所以需要对关键节点进行权限控制。
这里对“/”、“/dubbo”、“/zookeeper”节点进行限制,示范如下:
<ZooKeeper_HOME>/bin/
./zkCli.sh -server ip:port
setAcl / ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
setAcl /dubbo ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
setAcl /zookeeper ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
设置完setAcl,然后用getAcl 查看一下是否配置成功.
ZooKeeper未授权访问漏洞确认与修复的更多相关文章
- Memcache未授权访问漏洞利用及修复
Memcached是一套分布式的高速缓存系统.它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的.正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问.本文 ...
- Redis未授权访问漏洞复现及修复方案
首先,第一个复现Redis未授权访问这个漏洞是有原因的,在 2019-07-24 的某一天,我同学的服务器突然特别卡,卡到连不上的那种,通过 top,free,netstat 等命令查看后发现,CPU ...
- zookeeper未授权访问渗透测试及修复方法
zookeeper未授权访问危害 服务器信息泄露.集群被破坏 一. 四字命令未授权使用 1.1 测试 工具:netcat ,Linux或Windows都可以测 命令行输入echo envi | nc ...
- 真实本人亲测Elasticsearch未授权访问漏洞——利用及修复【踩坑指南到脱坑!】
如要转载请注明出处谢谢: https://www.cnblogs.com/vitalemontea/p/16105490.html 1.前言 某天"发现"了个漏洞,咳咳,原本以为这 ...
- zookeeper未授权访问漏洞
1.什么是zookeeper? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交 ...
- ZooKeeper 未授权访问漏洞
ZooKeeper 安装: Zookeeper的默认开放端口是2181 wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zooke ...
- ZooKeeper通过ACL修复未授权访问漏洞
默认情况下ZooKeeper允许匿名访问,因此在安全漏洞扫描中暴漏未授权访问漏洞. 一.参考资料 <ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表& ...
- Redis 未授权访问漏洞【原理扫描】修复方法
漏洞类型 主机漏洞 漏洞名称/检查项 Redis 配置不当可直接导致服务器被控制[原理扫描] 漏洞名称/检查项 Redis 未授权访问漏洞[原理扫描] 加固建议 防止这个漏洞需要修复以下三处问题 第一 ...
- zookeeper的未授权访问漏洞解决
zookeeper的基本情况 zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务.zookeeper官网下载软件包,bin目录下有客户端脚本和服务端脚本.另外还有个工具 ...
随机推荐
- PTA甲级—STL使用
1051 Pop Sequence (25分) [stack] 简答的栈模拟题,只要把过程想清楚就能做出来. 扫描到某个元素时候,假如比栈顶元素还大,说明包括其本身的在内的数字都应该入栈.将栈顶元素和 ...
- Codeforces Round #579 (Div. 3) B Equal Rectangles、C. Common Divisors
B Equal Rectangles 题意: 给你4*n个数,让你判断能不能用这个4*n个数为边凑成n个矩形,使的每个矩形面积相等 题解: 原本是想着用二分来找出来那个最终的面积,但是仔细想一想,那个 ...
- hdu5564 Clarke and digits
Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission ...
- Codeforces Round #570 (Div. 3) B. Equalize Prices、C. Computer Game、D. Candy Box (easy version)、E. Subsequences (easy version)
B题题意: 给你n个物品的价格,你需要找出来一个值b,使得每一个物品与这个b的差值的绝对值小于k.找到最大的b输出,如果找不到,那就输出-1 题解: 很简单嘛,找到上下限直接二分.下限就是所有物品中最 ...
- CodeForces - 1100E 二分+拓扑排序
题意: 一个n个节点的有向图,节点标号从1到n,存在m条单向边.每条单向边有一个权值,代表翻转其方向所需的代价.求使图变成无环图,其中翻转的最大边权值最小的方案,以及该方案翻转的最大的边权. Inpu ...
- Codeforces Global Round 9 C. Element Extermination (思维,栈)
题意:有一个长度\(n\)的序列,如果\(a_{i}<a_{i+1}\),那么可以选择删除\(a_{i}\)或者\(a_{i+1}\),再继续操作,问是否能够将序列删到只剩一个元素. 题解:感觉 ...
- Linux系统CentOS进入单用户模式和救援模式详解
一.概述 目前在运维日常工作中,经常会遇到服务器异常断电.忘记root密码.系统引导文件损坏无法进入系统等等操作系统层面的问题,给运维带来诸多不便,现将上述现象的解决方法和大家分享一下,本次主要以Ce ...
- 字节笔试题 leetcode 69. x 的平方根
更多精彩文章请关注公众号:TanLiuYi00 题目 解题思路 题目要求非负整数 x 的平方根,相当于求函数 y = √x 中 y 的值. 函数 y = √x 图像如下: 从上图中,可以看出函数是单 ...
- 创建AVL树,插入,删除,输出Kth Min
https://github.com/TouwaErioH/subjects/tree/master/C%2B%2B/PA2 没有考虑重复键,可以在结构体内加一个int times. 没有考虑删除不存 ...
- 6. Connection has already been closed 数据库连接被关闭
生产上Tomcat出现 Connection has already been closed.问题,但是在uat测试是好的! 遇见两次: 1.某个程序dao中执行逻辑异常复杂,有时候需要执行一分多钟, ...