报告编号: B6-2018-051701
报告来源: 360-CERT
报告作者: 360-CERT
更新日期: 2018-05-17
漏洞背景
Nagios Core 是一个开源的系统,也是一个网络监控系统。它可以监视你指定的主机和服务,并在那些设备“变坏”和“变好”的时候通知管理员。Nagios XI 是一个扩展接口,用来配置管理器和使用Nagios Core作为后端的工具包。Nagios XI提供了广泛的用户界面,配置编辑器,高级报告,监控向导,可扩展的前端和后端以及Nagios Core上的其他许多附加功能。
4月底,Nagios XI 被爆出存在SQL注入,权限提升,命令注入等多个漏洞。CVE编号分别为CVE-2018-8733,CVE-2018-8734,CVE-2018-8735,CVE-2018-8736。随后漏洞PoC被爆出。
近期,Nagios XI 已发布安全更新,360-CERT对该组漏洞进行深入分析。
漏洞细节
CVE-2018-8733
漏洞位置:
/nagiosql/admin/settings.php
在GET请求时,会返回一个302的表单,在这里我们可以通过特定的参数来更改数据库用户帐户。
CVE-2018-8734
漏洞位置:
/nagiosql/admin/helpedit.php
在进行POST请求的时候,有一个参数,selInfoKey1存在SQL注入。在此我们可以对其进行一定的利用。
CVE-2018-8735
漏洞位置:
/nagiosxi/backend/index.php
在对这个表单进行请求的时候,可以通过以下POST参数进行命令注入:
cmd=submitcommand&command=1111&command_data=$(command_payload)
CVE-2018-8736
漏洞原因:
nagiosxi用户可以对
/usr/local/nagiosxi/scripts/
进行写入,但是这个目录下的脚本将以root权限进行运行。这里存在导致一个很明显的权限提升漏洞。
利用细节
我们现在有4枚漏洞,单独某一个漏洞作用都很有限。但是结合起来便可以造成root权限下的命令执行。
利用的步骤如下:
- 通过CVE-2018-8733将当前的数据库用户更改为root用户,这样就可以获得更大的操作权限
- 使用CVE-2018-8734,对数据库进行SQL注入,得到一枚API密钥。该密钥为认证凭证,我们可以通过该密钥,利用API对Nagios XI进行操作。密钥在数据库中的位置为:nagiosxi.xi_users。
- 使用的到的密钥,利用API进行添加Nagios XI管理员用户,API地址为 /nagiosxi/api/v1/system/user?apikey=
- 在获得Nagios XI管理员身份后。可以利用CVE-2018-8735进行命令注入。
- 利用命令注入,将Playload写入/usr/local/nagiosxi/scripts/的脚本中,因为该目录下的脚本都是以root权限运行,则注入的命令将获得root权限
漏洞影响
该漏洞影响版本为: Nagios XI 5.2.6 - 5.4.12
使用Nagios服务全球分布如下:
暴露在外网的Nagios服务大多分布在欧美国家,中国地区大约有两百多台。Nagios作为运维监控系统,大多搭建在内网中。真实的使用数量会很多。
漏洞利用效果如下:
该组漏洞的PoC已被公布,可进行远程攻击,且利用难度低,危害大。
安全建议
360-CERT建议使用Nagios XI的用户,尽快升级到Nagios XI 5.4.13.
时间线
2018-04-30 漏洞披露及PoC公布
2018-05-10 Nagios发布安全公告
2018-05-17 360-CERT对漏洞进行分析