之前遇到zookeeper未授权访问问题,网上查到的资料基本都是关于限制匿名访问的解决方法,没有找到解决信息泄露的问题,最后查阅官方文档才解决,故此分享一下。
漏洞描述:
可收集目标服务器收集敏感信息,或者破坏zookeeper集群。
受影响范围:
ZooKeeper 3.4.10 之前版本受影响
ZooKeeper 3.5.0-alpha 至 3.5.3-beta受影响
ZooKeeper 1.x 至 3.3.x 也可能受影响
漏洞检测:
echo envi | nc IP 端口(默认端口2181)
存在漏洞如下图:
其他命令:
conf:输出相关服务配置的详细信息。
cons:列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。
dump:列出未经处理的会话和临时节点。
envi:输出关于服务环境的详细信息(区别于 conf 命令)。
reqs:列出未经处理的请求
ruok:测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。
stat:输出关于性能和连接的客户端的列表。
wchs:列出服务器 watch 的详细信息。
wchc:通过 session 列出服务器 watch 的详细信息,它的输出是一个与watch 相关的会话的列表。
wchp:通过路径列出服务器 watch 的详细信息。它输出一个与 session相关的路径。
使用zookeeper客户端连接服务器
./zkCli.sh -server ip:port
漏洞修复:
1、目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
https://zookeeper.apache.org/security.html#CVE-2019-0201
2、设置防火墙策略限制 IP 访问
参考链接:
https://cwiki.apache.org/confluence/display/ZOOKEEPER/Server-Server+mutual+authentication
https://issues.apache.org/jira/browse/ZOOKEEPER-1045
https://zookeeper.apache.org/doc/current/zookeeperAdmin.html