Zookeeper未授权访问测试
前言
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
zookeeper 未授权访问是指安装部署之后默认情况下不需要任何身份验证,从而导致 zookeeper 被远程利用,导致大量服务级别的信息泄露。
默认使用端口:2181、2182。
探测Zookeeper服务开放
如使用nmap探测某个目标地址是否运行Zookeeper服务,探测2181端口开放。
root@kali:~# nmap -Pn -p xx.xx.xx.xx
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-21 01:56 EDT
Nmap scan report for xx.xx.xx.xx.static.sz.js.chinamobile.com (xx.xx.xx.xx)
Host is up (.016s latency). PORT STATE SERVICE
/tcp open eforward Nmap done: IP address ( host up) scanned in 0.22 seconds
批量探测仅需修改一下对应的目标地址即可。
获取信息
conf命令
输出相关服务配置的详细信息,端口、数据路径、日志路径、session 超时时间,最大连接数等。
root@kali:~# echo conf | nc xx.xx.xx.xx
clientPort=
dataDir=/opt/data/zookeeper/data/version-
dataLogDir=/opt/data/zookeeper/data/version-
tickTime=
maxClientCnxns=
minSessionTimeout=
maxSessionTimeout=
serverId=
cons命令
列出所有连接到当前服务器的客户端/会话的详细信息。
root@kali:~# echo cons | nc xx.xx.xx.xx | more
/10.23.46.40:[](queued=,recved=,sent=,sid=0x1000000e029b16e,lop=PING,est=,to=,lcxid=0x33,lzxid=0x286a720,lresp=,llat=,minlat=,avglat=,maxlat=)
/10.23.46.39:[](queued=,recved=,sent=,sid=0x1000000e029b17c,lop=PING,est=,to=,lcxid=0x33,lzxid=0x286a71c,lresp=,llat=,minlat=,avglat=,maxlat=)
dump命令
输出未处理的会话和临时节点,leader 节点有效。
root@kali:~# echo dump | nc xx.xx.xx.xx | more
SessionTracker dump:
Session Sets ():
expire at Thu Jan :: CST :
expire at Thu Jan :: CST :
expire at Thu Jan :: CST :
0x1000000e01f0013
0x1000000e029fdde
0x1000000e029fe05
expire at Thu Jan :: CST :
0x1000000e02a4235
0x1000000e01f00e9
expire at Thu Jan :: CST :
0x1000000e01f067a
0x1000000e02a423c
0x1000000e01f0008
0x1000000e029fdf4
...
非 leader 节点看不到什么相关信息。
envi命令
输出服务器的详细信息。
root@kali:~# echo envi | nc xx.xx.xx.xx
Environment:
zookeeper.version=3.4.-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on // : GMT
host.name=c1b69852-ac24-11e8-88d9-a4bf01306d06
java.version=1.7.0_80
java.vendor=Oracle Corporation
java.home=/usr/java/jdk1..0_80/jre
java.class.path=/opt/midware/zookeeper/bin/../build/classes:/opt/midware/zookeeper/bin/../build/lib/*.jar:/opt/midware/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/midware/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/opt/midware/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/opt/midware/zookeeper/bin/../lib/log4j-1.2.17.jar:/opt/midware/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/midware/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/opt/midware/zookeeper/bin/../zookeeper-3.4.13.jar:/opt/midware/zookeeper/bin/../src/java/lib/*.jar:/opt/midware/zookeeper/bin/../conf:
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=<NA>
os.name=Linux
os.arch=amd64
os.version=3.10.0-327.36.3.el7.x86_64
user.name=root
user.home=/root
user.dir=/
连接测试
安装工具
如在kali下,可以用如下命令安装zookeeper工具,之后即可使用客户端连接工具zkCli.sh。
# apt-get install zookeeper
...
#root@kali:~# cd /usr/share/zookeeper/bin/
#root@kali:/usr/share/zookeeper/bin# ls
zkCleanup.sh zkCli.sh zkEnv.sh zkServer.sh
连接目标
使用-server参数指定目标即可连接。
root@kali:/usr/share/zookeeper/bin# ./zkCli.sh -server xx.xx.xx.xx:
Connecting to xx.xx.xx.xx:
Welcome to ZooKeeper!
JLine support is enabled
[zk: xx.xx.xx.xx:(CONNECTING) ] ... 已连接
获取系统相关信息
root@kali:/usr/share/zookeeper/bin# ./zkCli.sh -server xx.xx.xx.xx:
Connecting to xx.xx.xx.xx:
Welcome to ZooKeeper!
JLine support is enabled
[zk: xx.xx.xx.xx:(CONNECTING) ]
WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: xx.xx.xx.xx:(CONNECTED) ] ls /
[service, pms, DsMaster, Resource, monitor_lock, zookeeper]
[zk: xx.xx.xx.xx:(CONNECTED) ] get / cZxid = 0x0
ctime = Wed Dec :: EST
mZxid = 0x0
mtime = Wed Dec :: EST
pZxid = 0x4c0
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x0
dataLength =
numChildren =
[zk: xx.xx.xx.xx:(CONNECTED) ] get /service cZxid = 0x2
ctime = Thu Aug :: EDT
mZxid = 0x2
mtime = Thu Aug :: EDT
pZxid = 0x1cb884d
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x0
dataLength =
numChildren =
[zk: xx.xx.xx.xx:(CONNECTED) ] getAcl /
'world,'anyone
: cdrwa
修复方案
1、设置防火墙策略限制 IP 访问
2、不要将 zookeeper 暴露在外网
3、设置用户认证和 ACL
参考
zookeeper 未授权访问
http://vic.pub/zookeeper-未授权访问/
Zookeeper未授权访问测试的更多相关文章
- ZooKeeper未授权访问漏洞确认与修复
目录 探测2181 探测四字命令 用安装好zk环境的客户端连接测试 修复 修复步骤一 关闭四字命令 修复步骤二 关闭未授权访问 zookeeper未授权访问测试参考文章: https://www.cn ...
- zookeeper未授权访问渗透测试及修复方法
zookeeper未授权访问危害 服务器信息泄露.集群被破坏 一. 四字命令未授权使用 1.1 测试 工具:netcat ,Linux或Windows都可以测 命令行输入echo envi | nc ...
- Zookeeper未授权访问
l 漏洞名称: zookeeper未授权访问 l 漏洞影响版本: zookeeper l 漏洞细节: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubb ...
- 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)访问控制列表& ...
- zookeeper的未授权访问漏洞解决
zookeeper的基本情况 zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务.zookeeper官网下载软件包,bin目录下有客户端脚本和服务端脚本.另外还有个工具 ...
- 【转+自己研究】新姿势之Docker Remote API未授权访问漏洞分析和利用
0x00 概述 最近提交了一些关于 docker remote api 未授权访问导致代码泄露.获取服务器root权限的漏洞,造成的影响都比较严重,比如 新姿势之获取果壳全站代码和多台机器root权限 ...
- Redis未授权访问漏洞的利用及防护
Redis未授权访问漏洞的利用及防护 什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP ...
随机推荐
- Zookeeper内部实现分布式数据一致性(底层系统模型)(一)
Zookeeper的几个概念:(接下来将从这几个概念书写Zookeeper的内部工作流程) 数据模型 节点特性 版本 Watcher ACL <1> 数据模型: Zookeeper的视图很 ...
- Python学习之turtle库和蟒蛇绘制程序
Python的函数库 Python语言与C语言Java类似,可以大量使用外部函数库包含在安装包中的函数库:. 比如math, random, turtle等其他函数库,其他函数库用户根据代码需求自行安 ...
- android 之图片异步加载
一.概述 本文来自"慕课网" 的学习,只是对代码做一下分析 图片异步加载有2种方式: (多线程/线程池) 或者 用其实AsyncTask , 其实AsyncTask底层也是用的多 ...
- 剖析nsq消息队列(二) 去中心化代码源码解析
在上一篇帖子剖析nsq消息队列(一) 简介及去中心化实现原理中,我介绍了nsq的两种使用方式,一种是直接连接,还有一种是通过nslookup来实现去中心化的方式使用,并大概说了一下实现原理,没有什么难 ...
- kubernetes部署jenkins(Docker in Docker)及认证
引言 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件. 本文将Jenkins的master与slave置于Pod中,部署在namespace:jenk ...
- xshell使用小技巧
1. 方便复制:Tool --> options --> right buttion(paste the clipboard contents) and copy selected te ...
- TLC5615
#include <reg51.h> #include "TLC5615.c" code uchar seven_seg[] = {0xc0, 0xf9, 0xa4, ...
- TensorFlow2.0(1):基本数据结构—张量
1 引言 TensorFlow2.0版本已经发布,虽然不是正式版,但预览版都发布了,正式版还会远吗?相比于1.X,2.0版的TensorFlow修改的不是一点半点,这些修改极大的弥补了1.X版本的反人 ...
- js控制滚动条在内容更新超出时自动滚到底部
//滚动条在内容更新时自动滚到底部var message = document.getElementById('message');message.scrollTop = message.scroll ...
- jenkins离线安装插件的方法(无法访问外网)
最近项目要迁移环境,无法访问外网,因此jenkins的安装配置需要离线操作,在此记录 jenkins下载安装好之后,跳过插件的安装,新建用户进入jenkins界面,这些前置步骤我在之前的随笔里有写具体 ...