ChromeLoader:新出现劫持用户浏览器搜索和展示广告的恶意软件活动(上)

VSole2022-07-18 11:47:53

2022年1月,研究人员发现了一个名为ChromeLoader(也称为ChoziosiLoader和ChromeBack)的新浏览器劫持者/广告软件活动。尽管使用了简单的恶意广告,该恶意软件还是被广泛传播,可能会泄露成千上万用户和组织的数据。

恶意软件开发者没有使用Windows可执行文件(.exe)或动态链接库(.dll)等更传统的恶意软件,而是使用浏览器扩展作为其最终负载。浏览器扩展充当广告软件和信息窃取程序,泄露用户的所有搜索引擎查询。

ChromeLoader恶意软件

ChromeLoader是一个多阶段攻击的恶意软件家族。每个变体在其攻击链中都包含不同的阶段,但不同变体之间的攻击链通常看起来非常相似,包括所有变体中使用的恶意浏览器扩展。

不同有效负载扩展具有攻击者添加的硬编码版本。各种扩展版本与此恶意软件的不同变体有关。研究人员不仅通过相关的扩展版本来区分这些变体,还通过在整个攻击链和目标操作系统中使用的技术来区分这些变体。

本文按检测顺序列出了不同的变体:

变体0:以这种方式命名,因为它在变体1(在野外发现的第一个变体)之前处于活动状态。它使用AutoHotKey(AHK)编译的可执行文件和Chrome扩展的1.0版。它的第一次已知攻击发生在12月。

变体1:它使用Chrome扩展的2.0-4.4版本作为其有效负载和一个DotNet可执行文件,该可执行文件启动混淆的PowerShell作为其释放程序。它主要活跃在1月份。

变体2:它使用6.0版的Chrome扩展程序,并使用一个经过混淆的可执行文件作为其初始释放程序,自3月以来一直很活跃。

MacOS变体:此变体专注于MacOS计算机(而其他变体仅针对Windows用户)。使用扩展的6.0版本,活动自3月就开始了。

不同变体的攻击链

攻击载体(变体1)

ChromeLoader恶意软件的第一个变体于2022年1月首次出现。

当用户通过广告网站和社交媒体平台上的恶意广告活动被诱使下载种子文件或破解视频游戏时,事件链就开始了。用户扫描这些网页上的二维码并被重定向到显示ISO映像(光盘映像文件,通常与CD/DVD一起使用)的受攻击网站。用户下载ISO镜像,通过双击挂载它并执行挂载的ISO镜像中包含的内容。

Twitter上发布的二维码示例

来自二维码的恶意ISO映像的下载链接示例

部署

下载的ISO映像包含以下内容:

Microsoft.Win32.TaskScheduler.dll:由Microsoft签名的合法.NETDLL,供其他.NET程序用于与计划任务机制集成。

Languagefolders:包含所提到的DLL使用的资源文件。

CS_installer.exe及其配置文件:恶意软件开发者编写的恶意可执行文件(请注意,名称可能会从一个版本更改为另一个版本)。在某些版本中,开发者(可能是偶然)将包含调试数据的PDB文件也留在了此文件夹中。

_meta.txt:此恶意软件高级版本中的文本文件,包含ASCII字母。

此目录中的大部分文件都是隐藏的,普通用户在使用Windows文件资源管理器打开此目录时不会注意到它们。唯一的非隐藏文件是CS_installer.exe,它诱使受害者双击它来完成软件安装下载。

已安装的恶意ISO映像示例(选择“显示隐藏文件”后)

受害者通过双击启动CS_installer.exe。在大多数情况下,可执行文件会显示如下图5所示的消息,表明程序执行失败。然而,这是开发者试图误导他们的目标。

dropper消息框,旨在欺骗用户

可执行文件是用.NET编写的非混淆程序,因此.NET反射程序可以对其进行反编译以读取源代码。当可执行文件加载到反射程序中时,会显示下图中所示的代码。此代码创建一个计划任务,配置为每十分钟执行一次恶意base64编码的PowerShell命令。任务名称由与namesDict数组中的随机后缀连接的Chrome字符串构成。

反编译的CS_installer.exe源代码示例

脚本内容来自_meta.txt文件,由下图中的以下预定义函数解密,该函数应用简单的字符替换。

unscramble函数的示例

上面提到的一些功能在该恶意软件的早期版本中没有。例如,在下图所示的版本中,这个版本是在图6和7中提到的版本前一周才发现的,开发者没有使用反汇编函数,而是简单地将已编码的PowerShell脚本硬编码到.NET可执行文件中,并使用预定义的ChromeLoader名称来执行任务,而不是生成更随机的后缀。

变体1的源代码示例

攻击者使用编码的PowerShell脚本下载恶意浏览器扩展并将其加载到用户的Chrome浏览器中。

PowerShell释放程序中的变量定义示例

负载下载尝试示例

尝试将有效负载加载到用户的浏览器中

从这个恶意软件的早期版本到后来的版本的演变也可以在编码的PowerShell脚本中看到。下图显示了由该变体的早期版本执行的PowerShell脚本,该变体明显更短,包含的代码也更简单。

此PowerShell释放程序的旧版本示例

dropper统计

出于研究目的,研究人员使用恶意软件下载恶意Chrome扩展并将其安装到受害者的浏览器中。托管Chrome扩展程序的URL被硬编码在混淆的PowerShell命令中,并且在不同版本之间发生变化。

安装服务器的第一次攻击尝试

安装服务器连接尝试传播

每个区域阻止的攻击

在变种1最活跃的时间内,每个安装服务器每天的感染尝试

有效载荷

该恶意软件的有效负载是一个Chrome扩展程序,每个可下载的扩展程序都具有相同的格式:

下载的扩展文件示例

使用清单文件中的一些定义,并使用已知的合法图片,扩展声称是合法且无害的。但是,该扩展程序要求提升权限。请求的权限包括访问浏览器数据、操纵Web请求和访问每个可能的URL地址,而合法的浏览器扩展程序不会这样做。

下载的扩展清单文件示例

Javascript文件conf.js声明了常量变量,后面会用到主脚本background.js。C2域存储在_ExtDomNoSchema中。

下载扩展的conf.js文件示例

background.js是一个包含所有扩展功能的单行JavaScript文件;它被严重混淆,但可以通过一系列简短的步骤转换为可读的JavaScript代码。但是,任何使用已知的公共JavaScript反混淆工具对该代码进行反混淆的尝试都将失败,原因将在后面详述。

下载扩展的模糊background.js文件示例

该脚本使用各种混淆技术来隐藏其目的和恶意代码。执行的第一个函数之一是负责将标准JavaScript函数和对象复制到名称混乱的新对象中,这些新对象稍后将使用脚本解码位于该脚本最后指令中的最终有效负载。

重命名机制的示例。例如,在本例中,String对象存储为b4VV。

在此脚本的整个执行过程中,开发者使用了面向switch-case的编程来使恶意软件分析人员更难阅读和理解他们的程序。

一个面向switch-case的编程示例

程序使用上图中所示的E3变量循环,并对每个值执行不同的操作。当switchcase中的相关流程结束时,程序将E3的值更改为下一条指令。该程序还使用前面提到的混淆对象名称。在下图中,研究人员在相关代码行下方的注释中添加了原始对象名称。

在了解了混淆名称和面向switch-case的编程之后,研究人员可以更好地分析这段代码的目的。它使用硬编码的整数数组,将其转换为相关的ASCII字符并按随机顺序对其进行排序。稍后,这个数组将被连接到一个字符串,程序将搜索以该名称定义的函数。如果未找到该函数,则执行流程将重新开始。

这表示脚本中存在另一种混淆技术。标准反混淆工具使用的关键特性之一是删除未引用的函数和对象。通常,它有助于缩短代码,省去永远不会真正运行的复杂部分,删除那些旨在误导恶意软件分析师的函数。但是,在这种情况下,使用反混淆工具会释放一个必不可少的函数,如果没有它,脚本将陷入无限循环。

在脚本执行过程中,h0QQ函数没有被直接引用,甚至一次也没有。然而,前面提到的使用随机排序算法的代码部分最终将尝试执行它,因为h0QQ是0hQQ字符串的排列。如果h0QQ不存在,代码将简单地尝试对字符进行排序,并反复查找函数名。

未引用的关键函数的示例

这个函数返回一个长字符串,通过一个硬编码的键进行异或,然后拆分成一个字符串数组。

包含恶意软件使用的字符串的deXORed数组示例

恶意软件最终使用这些字符串来解码其恶意代码。它引用此数组中相关索引处的字符串,而不是在代码中硬编码字符串名称。

恶意软件使用接触异或数组解码其最终有效载荷的示例,该恶意软件不使用整数作为数组的索引,而是将字符串与算术运算结合使用。

在使用调试器执行初始化代码后,研究人员导出了提到的列表成员。然后研究人员使用Python脚本对JavaScript代码的其余部分进行去混淆处理。

用于反混淆background.js的脚本

软件硬编码
本作品采用《CC 协议》,转载必须注明作者和本文链接
由于常以明文存储,编码秘密造成了重大安全风险,可方便攻击者从源代码中抽取秘密。代码注入或数据泄露等其他安全漏洞也会无意中披露或暴露编码秘密。通用秘密占检出秘密的67%,通用检测器匹配公司电子邮件和编码在文件中的密码等秘密。编码秘密和秘密蔓延威胁软件供应链报告指出,编码秘密和秘密蔓延对软件供应链安全造成了重大威胁。实施秘密安全冠军计划。
近期联想在其指纹管理软件Pro软件中修复了一个严重级别的安全补丁,用户存储的敏感数据可能泄漏。Fingerprint Manager Pro是一款适用于Microsoft Windows 7,8和8.1操作系统的应用程序,允许用户使用他们的指纹登录到支持指纹输入的联想PC。
对于各类数字化应用系统而言,都需要依靠访问权限来限制用户和设备对系统进行设置和应用。因此,访问权限是一个非常重要的安全特性,它们决定了用户可以与应用系统及其相关资源进行交互的程度。而那些具有广泛系统控制能力的管理员账号或根权限账号,则被称为特权访问账号。随着网络威胁态势的不断发展,企业的特权账号正在成为攻击者的重点攻击目标。
澳大利亚公司 Atlassian 开发的企业维基软件 Confluence 被发现有编码密码,更糟糕的是密码还被泄露了。
在如今复杂的IT环境中,多个脚本、流程和应用程序需要访问多平台资源,才能检索和存储敏感信息。此类应用程序被授权使用专用账户,通常允许无限制地访问企业最敏感的资产。因此,这些账户往往会成为许多针对性攻击的牺牲品。实际上,最近报告的许多复杂攻击均源自编码特权账号的盗用。保护、管理和自动更换这些嵌入和本地存储的账号会给IT部门带来严峻的挑战,并会产生巨大的间接费用。因此,许多组织从来都不更改应用程序的
外媒 3 月 8 日消息,思科最近发布的一组安全更新中包括两个重要漏洞的修复方案 — 编码密码漏洞(CVE-2018-0141)和 Java 反序列化漏洞(CVE-2018-0147)。 编码密码漏洞(CVE-2018-0141)是由于系统上的编码帐户密码造成的,可被本地攻击者利用来获得对易受攻击设备的完全控制权。目前该漏洞仅影响思科 Prime Collaboration Provis
研究人员最近发现,过去9个月以来只针对韩语用户的勒索软件Magniber ,现在扩展到了其他亚太国家。 Magniber代码现在更加精细,利用各种混淆技术,而不再依赖于命令和控制服务器或编码密钥来实现其加密过程。
研究人员围绕着以前未发现的,针对面向互联网的数据库服务器的加密矿开采活动的来源做出了新发现。该活动名为MrbMiner,于2020年9月被发现,它在数千台SQL服务器上下载并安装了一个cryptominer。现在,Sophos的研究人员已经追踪了这场运动的起源,他们声称这是一家位于伊朗的小型软件开发公司。Sophos的研究人员在周四的分析中说:“一家伊朗软件公司的名称被编码到该矿工的主要配置文件中。”
在1月至2月期间,勒索软件Shade(Treshold)对俄罗斯展开了新攻击。Shade自2015年以来开始大规模攻击俄罗斯。此次活动中攻击者冒充俄罗斯石油和天然气公司,发送网路钓鱼邮件,俄语编写的JavaScript文件附件充当下载器,使用一系列编码地址进行混淆。
卡巴斯基研究人员最近几天通过反勒索软件模块检测到恶意软件的新变种KeyPass勒索软件,传播方式为下载勒索软件模块的虚假安装程序,并在8月份开始积极传播。
VSole
网络安全专家