Zabbix高危漏洞及其修复办法

作者: EC君_王磊 | 来源:发表于2016-08-18 12:09 被阅读2582次

    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-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 
    
    更新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和组件

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

    升级完毕

    查看服务

    [root@zabbix-server ]# zabbix_server -V
    
    查看zabbix服务已经升级到3.0.4

    启动服务

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

    验证漏洞修复

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

    漏洞已经不存在了

    踩坑

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

    提示没有这个URL

    解决思路

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

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

    查看zabbix apache配置文件

    ll /etc/httpd/conf.d
    
    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高危漏洞及其修复办法

        本文链接:https://www.haomeiwen.com/subject/nkjvsttx.html