Zabbix安全:破解弱口令後執行命令,獲取shell

    如果你的Zabbix的Admin口令太弱或者使用了默認口令(Admin/zabbix),而被***破解了口令的話,Zabbix服務器在***面前就已經毫無抵抗力了。***可以創建“system.run[command,<mode>]”監控項執行命令,甚至獲取服務器shell,獲取root權限。

    先介紹下system.run[command,<mode>]”,這個監控項是agent自帶的,使zabbix server可以遠程在agent的機器上執行任意命令。方法有二:一是建立監控項,二是通過zabbix_get命令直接遠程調用。使agent啓用這個監控項要在配置文件裏設置EnableRemoteCommands=1。命令執行權限限制於zabbix agent的啓動用戶,如果你爲了方便,把agent的啓動用戶設置爲root的話(AllowRoot=1),這是非常危險的。

wKiom1T5aq-jkcptAAJ65jNc1XY524.jpg

    下面模擬一個場景,展示***在獲取Zabbix Admin口令的情況下,如何獲取服務器的shell,甚至root權限:

    這裏利用NetCat(nc)命令打開shell,如果你的系統是RedHat/CentOS系列,nc可以通過yum下載到。

     選擇【Administration】->【Scripts】,創建一個script,如下圖:

wKioL1T5cdrC573JAALmIjFxlAw432.jpg

    “Execute on”選擇Zabbix server,“Commands”裏輸入:

mkfifo /tmp/tmp_fifo
cat /tmp/tmp_fifo | /bin/bash -i 2>&1 | nc -l 2222 > /tmp/tmp_fifo

    上面的意思是打開一個shell,監聽2222端口。

    進入【Dashboard】界面,在下面隨便點擊一個Host,會彈出一個“Scripts”選項卡,點擊上面創建的“create shell”,這樣上面的命令就會被執行。

wKiom1T5dADzBUAUAAKxQEV-E3M782.jpg

    到zabbix server服務器上可以看到2222號端口已經在監聽了。

wKiom1T5dmzRWShWAAF-AanTyDg021.jpg

    下面我們在自己的機器上,用nc命令連接到server的shell:

wKiom1T5d_rwb1P9AAHHTfsOifc478.jpg

    上圖顯示我們成功獲取了zabbix服務器的shell,而且是root權限!這是因爲我的zabbix server是以root啓動的。

    下面說一下如何對zabbix安全加固,防止這種情況發生:

    1、很重要的一點,zabbix的登錄口令一定要複雜,不要用默認口令或弱口令。

    2、zabbix的server和agent都不要以root啓動,不要設置AllowRoot=1。

    3、禁止agent執行system.run,不要設置EnableRemoteCommands=1。

    4、經常打安全補丁,如果系統內核版本過低有漏洞的話,即使在zabbix用戶下照樣能獲取root權限。


    參考

    sohu漏洞案例:

    http://www.wooyun.org/bugs/wooyun-2013-023089

    Netcat 命令:

    http://www.oschina.net/translate/linux-netcat-command

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章