zookeeper未受權訪問滲透測試及修復方法

zookeeper未受權訪問危害

服務器信息泄露、集羣被破壞html

1、 四字命令未受權使用

1.1 測試

工具:netcat ,Linux或Windows均可以測node

命令行輸入echo envi | nc 10.10.10.10 2181便可查看服務器信息bash

命令有:envi stat ruok等服務器

1.2 修復:

不想泄露信息能夠修改zookeeper/conf/zoo.cfg(zookeeper爲安裝目錄),註釋掉 4lw.commands.whitelist 相關的行。四字命令用於查詢狀態,zookeeper默認不開放這些命令,只有在白名單中才能運行。svg

2、 未受權鏈接及節點操做

2.1 測試

工具:Linux下安裝zookeeper;或Windows下使用Java8運行zktools>>工具做者<<工具

Linux下,輸入測試

zookeeper/bin/zkCli.sh -server 10.10.10.10:2181

便可鏈接,可以使用get /node watchset /node 1等命令去操做節點,若是成功,則證實此節點存在未受權訪問。ui

Windows下,只要zktools鏈接成功,則證實全部節點存在未受權訪問。值得注意的是,若是某個節點有權限控制,那麼zktools就沒法鏈接成功,沒法訪問其餘未受權節點了。可是Linux下zkCli.sh仍可訪問其餘未受權節點。.net

2.2 修復:

2.2.1 ip ACL受權策略

可使用下列操做限制訪問節點的IP命令行

setAcl -R /node ip:127.0.0.1:cdrwa,ip:10.10.11.11:cdrwa 
#-R爲遞歸,cdrwa爲權限

2.2.2 auth ACL受權策略

即用戶模式,制定策略後,訪問者必須使用addauth digest user:passwd登陸才能進行節點操做。

策略制定方法爲,用zkCli.sh鏈接後,在其中運行addauth digest user:passwd(digest是固定的)來註冊用戶,能夠有多個用戶。而後運行setAcl /node auth::cdrwa(auth是固定的),以後可運行getAcl /node查看,能發現以前註冊的用戶都被配入了節點的權限中。使用quit退出,再鏈接,可發現只有在使用addauth登陸以後才能操做節點。

2.2.3 digest Acl受權策略

不難發現策略2中,全部用戶對節點的權限都是一致的,只能統一設置,若想使不一樣用戶對節點的權限不一樣,可使用digest Acl受權策略,參見 http://www.javashuo.com/article/p-yzzmshle-gw.html

2.2.4 防火牆策略

使用以上策略限制節點後,任意用戶仍可登陸並用ls / 查看節點名字,可是沒法得到詳細信息和進行操做。若想不讓任意用戶訪問2181端口,能夠配置防火牆。

(๑•̀ㅂ•́)و✧

往期精彩文章推薦:

《動態svg圖片簡單製做》

《使用博客園的第一件事 - 自定義主題》

相關文章
相關標籤/搜索