Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

CVE-2018-14847 MikroTik RouterOS Winbox arbitrary file read 简易复现

wpadmin~September 3, 2019 /InfoSec

CVE-2018-14847 MikroTik RouterOS Winbox arbitrary file read 简易复现

<!–more–>

基本信息

Mikrotik 是一家拉脱维亚的路由器设备供应商,绝大多数 Mikrotik 生产的设备运行 RouterOS 操作系统,这个系统的 kernel 也是基于 Linux 的。RouterOS 提供了丰富的管理配置接口:

1) winbox:GUI软件管理;

2) cli:命令配置;

3) webfig :网页图形化管理。

> MikroTik RouterOS through 6.42 allows unauthenticated remote attackers to read arbitrary files and remote authenticated attackers to write arbitrary files due to a directory traversal vulnerability in the WinBox interface.

在 MikroTik RouterOS 6.42 以下的版本中,由于 WinBox 接口的目录遍历问题,远程攻击者可以读取和写入任意文件,包括路由器的部分配置信息,从而可以获得路由器的相关用户名与密码。

漏洞验证
https://github.com/BasuCert/WinboxPoC

一些阅读文档的笔记

winbox 是 Mikrotik 路由器设备的 GUI 客户端,在默认情况下与路由器设备的 8291 端口进行通信,通信的方式是在 tcp 流上直接传输特定的加密后的 JSON 字符串,通信协议的细节可以在 webfig 的 js 文件 (http://192.168.198.3/webfig/master-min-cdc1942e3019.js:formatted) 中找到相关代码,另外建议阅读 "深入分析MikroTik RouterOS CVE-2018-14847 & Get bash shell" 和 Tenable 分析师 Jacob Baines 在 Derbycon 2018 上公开的分析(link)。

另一篇参考文档,"Dissection of Winbox critical vulnerability" 记录了新西兰电信(Spark NZ)的工程师 Alireza Mosajjal (伊朗裔?) 通过对比 RouterOS 6.40.7 与 6.40.8 的 npk 文件来逆向工程漏洞细节的过程。

其中产生漏洞的并被 patch 的文件是一个名为 /nova/bin/mproxy 的二进制文件。

深度复现分析
http://ith4cker.com/content/uploadfile/201811/aed91542039274.pdf

挖矿事件性指纹
以下指纹均以 https://censys.io/ipv4?q=src.js+MikroTik 为例。

CoinHive.Anonymous
https://srcips.com/src.js
https://priv.su/src.js
mining711.com
src.js MikroTik

环境搭建

Mikrotik 的历史 RouterOS 版本
https://mikrotik.com/download/archive

使用现有 VMDK 虚拟磁盘创建 Workstation 虚拟机 (2010196)
https://kb.vmware.com/articleview?docid=2010196&lang=zh_CN

串口默认密码 admin/[空]

Linux kernel 选的是 2.6.x (32位)。
网络是配置成 NAT 。

其他 RouterOS 常见操作可以参考

RouterOS 软路由常用命令
https://www.cnblogs.com/zoulongbin/p/5887746.html

RouterOS 命令行操作
https://blog.csdn.net/zhengfeng2100/article/details/9614515

一些路由器配置

# 设置路由器 IP
ip address add address=192.168.198.3/24 interface=ether1

# 查看网卡状态
interface print

# 查看内存磁盘等资源情况
system resource print

docker pull evilfreelancer/docker-routeros:6.40.7
docker run -d -p 2222:22 -p 8728:8728 -p 8729:8729 -p 5900:5900 -ti evilfreelancer/docker-routeros

参考资料

Dissection of Winbox critical vulnerability
https://n0p.me/winbox-bug-dissection/

深入分析MikroTik RouterOS CVE-2018-14847 & Get bash shell
https://www.anquanke.com/post/id/162457#h3-10

MikroTik RouterOS Vulnerabilities: There’s More to CVE-2018-14847
https://zh-cn.tenable.com/blog/mikrotik-routeros-vulnerabilities-there-s-more-to-cve-2018-14847

Bug Hunting in RouterOS – Jacob Baines – Derbycon 2018
https://www.irongeek.com/i.php?page=videos/derbycon8/track-4-15-bug-hunting-in-routeros-jacob-baines

【Slides】Bug Hunting in RouterOS – Jacob Baines – Derbycon 2018
https://github.com/tenable/routeros/blob/master/slides/bug_hunting_in_routeros_derbycon_2018.pdf

窃听风云: 你的MikroTik路由器正在被监听 / 7,500+ MikroTik Routers Are Forwarding Owners’ Traffic to the Attackers, How is Yours?
描述了一些具体攻击案例,值得关注的是该文章中统计攻击者的具体方式
https://blog.netlab.360.com/7500-mikrotik-routers-are-forwarding-owners-traffic-to-the-attackers-how-is-yours/

基于 CVE-2018-14847 的 Mikrotik RouterOS 安全事件分析 – ITh4cker
http://ith4cker.com/content/uploadfile/201811/aed91542039274.pdf

https://github.com/tenable/routeros

Leave a Reply

Your email address will not be published. Required fields are marked *