漏洞复现--Zabbix远程代码执行漏洞(CVE-2020-11800含EXP)

声明:请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者和本公众号无关。请遵守《中华人民共和国网络安全法》。

一.漏洞简介

Zabbix是一种由Alexei Vladishev开发的网络监视和管理系统,采用Server-Client架构,用于监控各种网络服务、服务器和网络设备的状态。它提供了实时监控、报警机制、性能统计和数据可视化等广泛功能。然而,尽管Zabbix具有强大的功能,但在过去曾存在一些安全漏洞。例如,在CVE-2017-2824中,Zabbix的Server端trapper command功能存在一处代码执行漏洞。这个功能允许用户通过Zabbix Server发送命令到Agent端执行。然而,由于修复补丁的缺陷,攻击者可以通过IPv6进行绕过并注入任意命令,导致远程代码执行。

二.影响版本

Zabbix 3.0.x~3.0.30

三.靶场搭建

本实验环境采用vulhub快捷搭建,详情请参考官方文档:Vulhub - Docker-Compose file for vulnerability environment
在进入vulhub/zabbix/CVE-2020-11800目录后使用docker-compose up -d开启docker靶场

 

然后使用docker ps命令查看当前开启靶场的端口号,可以看到一共开启了三个容,分别是zabbix的server端、web端和mysql服务。

 

我们可以看到zabbix的web端开启在8080端口上,所以我们访问http://your-ip:8080来访问靶场。

 

因为本漏洞利用需要开启自动注册功能,所以使用默认账号/密码(admin/zabbix)去登录zabbix进行配置

 

进入Configuration->Actions后,选择Auto registration,点击Create action(名字随意)

然后再创建一个Operations,type选择Add Host,然后点击Add添加,再点击Add保存,这样就配置完成了

 

四.漏洞复现

由于网上给出的EXP较多,这里我们使用Vulhub官方给出的EXP

执行这个EXP后,可进行命令执行,至此漏洞复现完成。

 

 

五.EXP代码分析

  1. 导入模块:代码开始时导入了sys、socket和json模块,这些模块用于处理命令行参数、进行网络通信和处理JSON数据。
  2. send函数:这个函数用于向Zabbix Server发送数据的封装。它使用socket.create_connection建立到目标IP地址和端口10051的连接,然后发送一个JSON格式的数据,并等待响应。最后,它关闭连接并返回响应数据。
  3. 获取目标IP:通过命令行参数获取目标IP地址,这意味着该脚本用于特定的Zabbix Server目标。
  4. 发送数据给Zabbix Server:使用send函数向目标Zabbix Server发送一个JSON请求。这个请求是"active checks"类型的,其中包括主机名和IP地址等参数。这是测试Zabbix系统的活动检查功能。
  5. 循环:在一个hostid范围内,从10000到10500,循环尝试向目标Zabbix Server发送命令请求。这个请求包含了脚本ID和主机ID等参数。
  6. 检查响应数据:如果响应数据不包含"failed"字样,那么打印出hostid和响应数据。这是用于确认命令是否成功执行的部分。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值