相关的技术讨论作者在 21 May 2018 日就以文章的形式详细阐述 https://n0p.me/winbox-bug-dissection/ ,漏洞大致是这样的:
- Winbox申请登录以后会从RouterOS里面下载一些适用于当前版本的ROS的DLL文件作为Winbox的功能模块来执行,但是这个下载行为没有恰当的鉴权,通过精心构造的请求包,可以下载任意文件,包括RouterOS的用户数据库文件。
- RouterOS的用户数据库存储的密码没有使用标准的加密方式加密,只是把密码原文和 md5(用户名 + "283i4jfkai3389") 做了一次XOR运算,运算结果完全可逆,几乎可以认为是明文存储了密码,使用mikrotik-tools https://github.com/0ki/mikrotik-tools 包含的解码文件可以直接还原出明文密码,导致路由器沦陷。
- 影响范围 6.29 (release date: 2015/28/05) to 6.42 (release date 2018/04/20)
相关的PoC已经以源代码形式放出 https://github.com/BasuCert/WinboxPoC ,我测试了几台身边朋友的ROS,基本上都中招,而且有些管理员为了方便,使用虚拟专用网或者 IPIP、GRE隧道等打通自己所管理ROS的内网,导致一些本来在内网的ROS路由器、AP、可以被一个一个的沦陷掉。
目前搜索国内相关报道,只有寥寥数片文章讲到了 https://www.toutiao.com/i6548225294128382468 文章时间也比较早,今天已经7月份了,身边主动升级ROS的用户凤毛麟角,当然和消息没有充分散播也有关系,特此发文,敦促所有ROS管理员尽快升级到6.42.1+ 或者最新版本。