网络安全
当前位置: 首页 >> 网络安全 >> 安全事件 >> 正文
MikroTik RouterOS远程代码执行漏洞
作者:   来源:   日期:2018年02月26日 08:56

一、      事件背景

MikroTik成立于1995年,总部位于拉脱维亚首都里加,主要从事开发路由器和无线ISP系统。MikroTik RouterOS是一种路由操作系统,并通过该软件将标准的PC电脑变成专业路由器。

1月底,国家信息安全漏洞共享平台(CNVD)收录了关于MikroTik RouterOS存在远程代码执行的漏洞(CNVD-2018-01317)。攻击者可以利用漏洞远程获取RouterOS系统的Shell

相关链接如下:

http://www.cnvd.org.cn/flaw/show/CNVD-2018-01317

二、      漏洞复现

本地搭建Mikrotik routeros系统,此处选择RouterOS 6.38.4 x86作为测试,用虚拟机安装镜像之后,如下所示:

利用WinBox软件通过MAC地址连接Mikrotik routeros系统。

然后为Mikrotik routeros系统配置ip地址。

配置完ip地址之后,就可以通过http访问。

如果要利用此漏洞获取系统的shell,就要先从RouterOS固件中提取二进制文件。使用命令:python3 .\getROSbin.py6.38.4 x86 /nova/bin/www test

此处利用漏洞poc脚本执行命令:python3 .\StackClashMIPS.py 192.168.3.225 80 "echo hello world> /dev/lcd",在Mikrotik lcd上显示hello world

释放exploit之后,lcd就会出现如下结果:

三、      漏洞分析及危害

1)  漏洞分析

此次漏洞产生的原因在于Content-Lengthalloca宏,由于没有检查及过滤,从而可以控制堆栈指针和写入数据的位置。

查看系统的相关代码,如下图第二个红框所示,当获取content-length的值之后,就传给了 alloca 分配内存,并没有检查其大小,最终导致此次漏洞的产生。

对比查看已经修复此漏洞的RouterOS 6.38.5版本系统代码,修复漏洞后的程序没有了alloca,而是直接使用string::string 构造了字符串。  

2)  漏洞危害

攻击者可以利用该漏洞在目标系统上执行任意代码,获取敏感信息,并且可以通过执行命令获取RouterOS系统的Shell

四、      数据分析

中国境内使用MikroTik RouterOS系统的用户数量约为24.6万台左右。其中排名前五的省份或地区分别为:广东省、台湾省、北京市、上海市、江苏省。

国内分布

下图为中国范围内使用MikroTik RouterOS系统的分布情况:

1、国内分布图

下图为中国范围内使用MikroTik RouterOS系统数量排名前十的省份或地区:

2、国内排名前十

下图为国内使用MikroTik RouterOS系统的运营商排名:

3、国内运营商排名前十

五、      防范建议

1)  漏洞涉及版本

MicroTik RouterOS <6.38.5

2)  修复建议

目前厂商已经公布升级补丁,请用户及时更新:

https://mikrotik.com/download/archive

上一条:Joomla!平台上二阶SQL注入漏洞 下一条:phpMyAdmin CSRF漏洞数据分析

关闭

办公地点:第四教学楼东侧信息技术服务中心      办公时间:周一至周五 8:00-11:30   14:30-18:00(春夏)   14:00-17:30(秋冬)
*办理个人业务请携带本人身份证件
学校地址:山东省烟台市莱山区滨海中路191号
版权所有:山东工商学院信息技术服务中心