天天看點

zookeeper未授權通路滲透測試及修複方法

危害:伺服器資訊洩露、叢集被破壞 一、 四字指令未授權使用 1.1 測試工具:netcat 1.2 修複 二、 未授權連接配接及節點操作 2.1 測試 2.2 修複 2.2.1 ip ACL授權政策 2.2.2 auth ACL授權政策

zookeeper未授權通路危害

伺服器資訊洩露、叢集被破壞

一、 四字指令未授權使用

1.1 測試

工具:netcat ,Linux或Windows都可以測

指令行輸入

echo envi | nc 10.10.10.10 2181

即可檢視伺服器資訊

指令有:envi stat ruok等

1.2 修複:

不想洩露資訊可以修改zookeeper/conf/zoo.cfg(zookeeper為安裝目錄),注釋掉

4lw.commands.whitelist

相關的行。四字指令用于查詢狀态,zookeeper預設不開放這些指令,隻有在白名單中才能運作。

二、 未授權連接配接及節點操作

2.1 測試

Linux下安裝zookeeper ,輸入

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

即可連接配接,可使用

get /node watch

set /node 1

等指令去操作節點,如果成功,則證明此節點存在未授權通路。

Windows也可以安裝zookeeper來測試

Windows下使用Java8運作zktools>>工具作者<<

作者用的百度雲,可能有點慢,我給出藍湊的下載下傳位址,也呼籲大家不要用百度雲分享了 : https://wws.lanzous.com/iIlZvjdutij

如果Java8不是環境變量的話,首先編輯 bin 目錄下的 java-start.cmd 檔案修改Java為你Java8安裝的位址,然後輕按兩下啟動

隻要zktools連接配接成功,則證明所有節點存在未授權通路。值得注意的是,如果某個節點有權限控制,那麼zktools就無法連接配接成功,無法通路其他未授權節點了。但是Linux下zkCli.sh仍可通路其他未授權節點。

### 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授權政策,參見 https://blog.csdn.net/u014630623/article/details/103749103

2.2.4 防火牆政策

使用以上政策限制節點後,任意使用者仍可登入并用ls / 檢視節點名字,但是無法獲得詳細資訊和進行操作。若想不讓任意使用者通路2181端口,可以配置防火牆。

(๑•̀ㅂ•́)و✧

往期精彩文章推薦:

zookeeper未授權通路滲透測試及修複方法

《動态svg圖檔簡單制作》

《使用部落格園的第一件事 - 自定義主題》