专栏首页FreeBuf如何利用虚假浏览器更新渗透MikroTik路由器实验

如何利用虚假浏览器更新渗透MikroTik路由器实验

写在前面的话

MikroTik是拉脱维亚一家从事路由器和无线ISP系统开发的企业,在过去几个月中处理了许多影响其产品操作系统的漏洞。2018年4月,研究人员发现RouterOS的一个关键漏洞,攻击一直在以惊人的速度发生,当发现一种新发现的CVE-2018-14847开发技术时,情况更糟。问题在于,尽管供应商提供了安全修复程序,但大量的MikroTik路由器仍然没有打补丁并成为自动攻击的牺牲品。犯罪分子迅速利用概念证明代码在短时间内破坏数十万台设备。

去年夏天,SpiderLabs的研究人员通过被黑客入侵的MikroTik设备发现了可能是最大的恶意Coinhive活动,现在已经演变成一个更广泛的问题。在最新的攻击活动中,攻击者利用虚假的浏览器更新页面来入侵路由器。当运行恶意更新时,研究人员会解包代码到计算机中,计算机可以扫描网络中其他有漏洞的路由器并尝试利用。

可疑的浏览器更新

安全研究人员@VriesHd首先发现一个尝试用社会工程技术来入侵有漏洞的路由器的活动。运行受影响的MikroTik路由器的网络提供商会将关于浏览器的老版本更新重定向给终端用户。

根据Censys的搜索,一共有11000个被入侵的MikroTik设备提供该虚假下载页面:

该浏览器根系是从一个FTP服务器下载的,如下图所示:

有趣的是,此IP地址也被列为免费和开放的Web代理:

Payload分析

行为分析

Payload会伪装成一个名为upd_browser的安装器。

当我们运行它时,它会弹出一个错误:

但如果抓取网络流量,可以看出有很多不同的IP地址尝试连接8291端口(8291是通过winbox应用管理MicroTik路由器的默认端口):

Unpack

释放的payload是一个比较大的可执行文件(7.25MB)。该小节的header和可视化如下图:

通过查看section名,可以看出其打包了一个简单的packer:UPX。重复部分说明提取出的内容太多了。在进行下一步检查后,研究人员发现其将一个python DLL和其他相关文件解包到%TEMP%文件夹,然后加载这些文件。很容易猜测出exe文件其实是一个python脚本。

脚本中的entry point名为updbrowser。反编译脚本发现恶意软件的核心是两个python脚本:updbrowser.py和ups.py。

脚本分析

该模块的主要功能非常简单:

我们可以看到,错误弹出窗口是硬编码的,它不会警告任何实际错误,而是用作诱饵。恶意软件通过查询使用合法服务IP Logger制作的跟踪器的硬编码地址来记录受害者的IP地址。跟踪器采用一个像素大小的图像形式:

之后,该地址会在定义的时间间隔内定时查询。最重要的操作在名为“scan” 的函数中执行,该函数部署在多个并行线程中(最大线程数定义为thmax = 600)。函数生成伪随机IP地址并尝试在上述端口8291上连接到它们中的每一个。当连接尝试成功时,它尝试另一个连接,这次是在56778范围内的随机端口上5688.当这个失败时,就继续漏洞利用:

函数poc是指通过已知的漏洞来感染路由器。开始时尝试利用路径遍历漏洞CVE-2018-14847来获取凭证:

user.dat文件应该是M2格式,因此脚本附带一个内置的解析器(函数load_file):

如果从user.dat文件中检索密码成功,它会解密凭据并使用它们来创建后门:具有随机生成密码的帐户。它还设置由路由器执行的计划任务。调度程序中设置的脚本是从硬编码模板生成的(此处提供的已清理版本)。它的作用是操纵路由器的设置并设置加载CoinHive矿工的错误页面。错误页面可以放在两个位置:“ webproxy/error.html”“flash/webproxy/error.html”

只要用户尝试查看拒绝访问的URL,就会向用户显示这样的页面。但路由器中配置的恶意脚本是基于HTTP请求错误。伪造的错误页面是wile欺骗原始流量,以iframe方式展示请求的页面。所以当用户浏览大多数web时并不会注意到这一变化。比如:

缓解措施

MikroTik用户应及时对路由器打补丁升级。MikroTik下载页面中说明了如何对RouterOS进行升级。意识到这些漏洞存在且容易被利用是很重要的,因为修补路由器不是很多人习惯做的事情。但是,在许多情况下,用户将无法这样做,除非他们的Internet服务提供商在上游为他们执行此操作。通过这个社工工程手段,我们看到了犯罪分子如何试图感染普通用户并利用他们的计算机扫描互联网以寻找易受攻击的路由器。这种技术很聪明,因为这样的努力需要时间和资源才能有效。恶意软件业务客户和高级消费者用户受到保护,免受此威胁,因为我们的反恶意软件引擎会实时检测并阻止此虚假浏览器更新:

*参考来源:malwarebytes,周大涛编译,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 入门 IOS 逆向从我的经历说起

    在这里以讲故事的形式分享一下我踏入信息安全这条路的一些经历吧,希望能帮到一些人,正文开始:

    信安之路
  • 秒杀聊聊秒杀限流的多种实现

    俗话说的好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的。两周前秒杀案例初步成型,分享到了中国最大的同性交友网站-码云。同时也收到了不少小伙伴...

    纯洁的微笑
  • 我曾经在课间给学生讲过的金庸小说片段

    如果没记错的话,我应该是上大学之后在假期才偶尔有时间在山师东路一个店里租几本小说,碰巧租的第一本就是金庸的小说。没有血腥,没有暴力,没有色情,人物形象那么饱满,...

    Python小屋屋主
  • 银河水滴打响步态识别商用第一枪!3大产品1.35亿订单,工业视觉平台免费开放

    之前或多或少介绍过,这是中科院自动化所面向AI时代孵化的第一家公司,而且由于科研传承,中科院自动化所、四院院士谭铁牛,目前是步态识别等方向上的国际权威。

    量子位
  • Windows Java Usage Tracker本地提权漏洞分析(CVE-2018-3211)

    近期,我们发现了一个Java Usage Tracker中的设计缺陷,可导致攻击者创建任意文件,注入指定参数,并实现本地权限提升。反之,该漏洞可以用于权限提升,...

    周俊辉
  • 滴!滴!开车啦!

    本人刚考完驾照,虽然一次过驾考,实际上路还是有点慌。我敢开你敢坐吗? 赶紧整理了一波开车技巧,以便日后学习,上秋名山指日可待!

    Zachary46
  • ReentrantLock和Condition理解及应用

    java 1.5 出现的显式协作Condition接口的 await、signal、signalAll 也可以说是普通并发协作 wait、notify、noti...

    1025645
  • 科学瞎想系列之八十八 永磁电机(9)

    【图片部分来自网络如有侵权敬请邮箱联系。欢迎原文转发到朋友圈,未经许可的媒体平台谢绝转载,如需转载或合作请邮件联系。联系邮箱laolicsiem@126.co...

    标准答案
  • 怎么理解Condition?

    在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLoc...

    用户1655470
  • Fuxi-Scanner-伏羲安全扫描工具

    7.AWVS(Acunetix Web Vulnerability Scanner) 接口调用

    周俊辉

扫码关注云+社区

领取腾讯云代金券