Zabbix高危漏洞及其修复办法

Zabbix高危漏洞及其修复办法_第1张图片

8月17日各大运维社区开始预警zabbix高危漏洞,由于zabbix用户量比较大,所以影响范围比较广。
下面为大家介绍下本次漏洞和修复办法。


漏洞概述

zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限。

影响程度

  • 攻击成本:低
  • 危害程度:高
  • 是否登陆:不需要
  • 影响范围:2.2.x, 3.0.0-3.0.3。(其他版本未经测试)

漏洞测试

在您的zabbix的地址后面加上如下url:

如:http://IP/zabbix/如下URL内容

/jsrpc.php?sid=0bcd4ade648214dc&type=9&method=screen.get&tim
estamp=1471403798083&mode=2&screenid=&groupid=&hostid=0&pageFile=hi
story.php&profileIdx=web.item.graph&profileIdx2=2'3297&updateProfil
e=true&screenitemid=&period=3600&stime=20160817050632&resourcetype=
17&itemids%5B23297%5D=23297&action=showlatest&filter=&filter_task=&
mark_color=1

输出结果,出现如下图关键字表示漏洞存在:

如出现红线内容证明漏洞存在

补充:

以上为仅为漏洞验证测试方式。
攻击者可以通过进一步构造语句进行错误型sql注射,无需获取和破解加密的管理员密码。
有经验的攻击者可以直接通过获取admin的sessionid来根据结构算法构造sid,替换cookie直接以管理员身份登陆。

修复方案

升级到zabbix最新版3.0.4及以上。


修复方法

首先查看本机zabbix版本

[root@zabbix-server]# zabbix_server -V
Zabbix高危漏洞及其修复办法_第2张图片
zabbix-server版本为3.0.3需要升级

配置yum源

EC君本地通过Cobbler制作了内部yum源,每天同步zabbix官方源,所以不用配置外部yum,各位可以通过阿里zabbix源速度也是很快的。当然最快的还是内部源,下面是通过Cobbler制作内部源方法。看下图就知道内部源的速度优势了。

[root@zabbix-server yum.repos.d]# yum clean all
[root@zabbix-server yum.repos.d]# yum makecache 
Zabbix高危漏洞及其修复办法_第3张图片
更新yum源

开始升级

[root@zabbix-server ]# /etc/init.d/zabbix-server stop
##停止zabbix-server服务
[root@zabbix-server ]# /etc/init.d/mysqld stop
##停止mysql服务
[root@zabbix-server ]# yum update zabbix*
Zabbix高危漏洞及其修复办法_第4张图片
升级zabbix和组件

EC君个人习惯是升级尽量将组件也升级,曾经由于zabbix-agent版本过低引起过好多坑。当然我的环境用的是KVM虚拟化,当升级出现任何问题,一言不合就可回滚,安全稳定才是运维的关键指标。

升级完毕

查看服务

[root@zabbix-server ]# zabbix_server -V
Zabbix高危漏洞及其修复办法_第5张图片
查看zabbix服务已经升级到3.0.4

启动服务

[root@zabbix-server ]# /etc/init.d/zabbix-server start
##启动zabbix-server服务
[root@zabbix-server ]# /etc/init.d/mysqld start
##启动mysql服务

验证漏洞修复

继续上面的漏洞验证,结果如下图,漏洞已经不存在了。

Zabbix高危漏洞及其修复办法_第6张图片
漏洞已经不存在了

踩坑

由于历史原因EC君有两个zabbix环境,分别是centos6系统和centos7系统。
除了系统启停外,升级方式大同小异。在一台centos6升级过程中,当zabbix-server升级完毕,正常启动后登陆zabbix控制界面发现如下图错误。

Zabbix高危漏洞及其修复办法_第7张图片
提示没有这个URL

解决思路

  • 查看服务状态
  • 查看端口
  • 查看日志
  • 查看最直接的错误提示

查看服务状态后发现无异常,查看端口发现监听正常,查看日志发现没有明显报错。看上图最直接报错说明没有这个URL,而且刚刚进行了升级操作,有可能有配置文件发生了变更。

查看zabbix apache配置文件

ll /etc/httpd/conf.d
Zabbix高危漏洞及其修复办法_第8张图片
zabbix.conf文件被修改

发现配置文件zabbix.conf被修改了,好的改回来。

[root@zabbix-server conf.d]#  mv zabbix.conf.rpmnew zabbix.conf
##修改配置文件
[root@zabbix-server conf.d]# /etc/init.d/httpd restart
##重启apache

再次访问zabbix界面问题解决。

zabbix安全

当然上边的漏洞需要开启guest,将guest disable掉同时增加相应的网络策略,也可以提高安全性。在企业环境中不管生产、非生产、开发、测试、试演示、预生产、还有自己玩的小环境请杜绝弱密码。

最后如果你用的是nginx,可以在server段加下面,这是临时暴力解决方案。

        if ($request_uri ~ ^(.+\.php)(.*)$) {
           set $req $2;
        }
        if ($req ~* "union[+|(%20)]") {
                return 503;
        }
        if ($req ~* "and[+|(%20)]") {
                return 503;
        }
        if ($req ~* "select[+|(%20)]") {
                return 503;
        }

END.

OK今天就为大家介绍这么多了。
我是EC君,如果你喜欢我的文章,请帮忙点个关注!点个喜欢吧!
也可以点击作者信息,扫描微信二维码关注我的个人微信公众号。
你的鼓励将是我们共同进步的源泉。
下面有更多Zabbix相关文章
自动化监控Zabbix之邮件报警
自动化监控Zabbix之主机自动发现
自动化监控Zabbix之Web监控详解
Zabbix高危漏洞及其修复办法
自动化监控Zabbix安装部署之agent端部署

你可能感兴趣的:(Zabbix高危漏洞及其修复办法)