深入分析MikroTik RouterOS CVE-2018-14847 Get bash shell
作者:CQITer小编 时间:2018-10-23 21:23
MikroTik路由器在4月份被发现存在目录遍历漏洞CVE-2018-14847,危险程度为中。Tenable Research的专家于10月7日在DerbyCon上发表了题为“Bug Hunting inRouterOS”的演讲,介绍了这项新技术,就是利用该漏洞。目前结合该漏洞的黑客工具已放出,运行RouterOS的MikroTik设备成为恶意代码的目标。
本文从MikroTik RouterOS与客户端的通信协议入手,辅以逆向分析,深入解读了CVE-2018-14847以及内置开发者后门的漏洞原理,最后进行完整的组合拳进阶利用,达到Get bash shell的目的。整体流程图如下:


MikroTik RouterOS是一款基于Linux核心开发,兼容Arm,mips,x86 PC等多种架构网络设备操作系统。通过安装该操作系统可以将标准的PC电脑变成专业路由器,也就是平时常说的软路由。同时,RouterOS提供了丰富的管理配置接口:1)winbox:GUI软件管理; 2)cli:命令配置;3)webfig :网页图形化管理。而Winbox for MikroTikRouterOS是一个用于管理MikroTik RouterOS系统的 GUI客户端应用程序。
RouterOS官方提供了相应的ISO系统镜像包,所以可以像安装正常操作系统一样安装RouterOS,直接在vm中安装一个虚拟机。


通过CliTelnet的方式对RouterOS进行配置,但是要知道以下两点:
•这不是一个osbash shell,不能访问到底层的linux的操作系统
•只能利用内置的一些命令集对RouterOS进行配置和管理
从下图的nmap扫描结果可以看可以看到RouterOS专门提供了8291端口跟winbox通信。


访问webfig,首先请求的一个js文件,下载来美化后看看代码:




登录、认证相关功能,相关的POST数据包都发送到RouterOS的jsproxy处理, 这里的jsproxy就相当于jsp中servlet一样。







