程序员人生 网站导航

ZooKeeper信息泄露漏洞(CVE-2014-085)

栏目:综合技术时间:2015-03-18 09:49:31


研究ZooKeeper时顺便看到的,危害级别比较低,竟然上了CVE,目测Apache有干爹照顾。

node的访问,ZooKeeper提供了相应的权限控制,即便用访问控制列表ACL来进行实现。1个ACL只从属于1个特定的node,而对这个node的子节点是无效的,也就是不具有递归性。比如/app只能被10.10.10.1访问,/app/test为任何人都可以访问(worldanyone)。

创建node的时候如果不指明,那末默许是anyone

用于访问控制的模式有:

(1)world 代表任何用户

(2)auth 不使用任何id,代表任何已认证过的用户

(3)digest 使用username:password认证,password使用md5哈希以后base64再编码,现改成了sha1加密。

(4)ip 用客户真个ip作为ACL的标识。

CVE⑵014-085是这么说的:

Apache Zookeeper logs cleartext admin passwords, which allows local users to obtain sensitive information by reading the log.

zookeeperzoo.cfg中可以配置dataLogDir来单独放置事务log,可以很好的避免与普通log和内存快照混合。

但是Zookeeper中使用了明文来显示密码,这就致使了信息的泄漏。

做个例子看看。

如果访问1个受限制的资源,没有携带验证信息的话:

受限制的信息为/javaclient/authtest,设置了ACLdigest,口令为1234.

java客户端中,我们可使用ZooKeeperaddAuthInfo来携带认证信息。

如果没有通过验证,就触发异常:

本地使用这个漏洞查看log,就能够看到明文的digest,造成信息泄漏,如果是admin的密码,就会造成更大的影响。

访问logs目录,grep1下:

看到了认证中客户端使用的密码1234

这个漏洞利用场景应当是内网渗透中遇到ZooKeeper集群后,可以查找事务日志来获得admin的密码或其他敏感资源的认证方法。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐