ChromeLoader恶意软件劫持用户浏览器到广告网站

ChromeLoader恶意软件劫持用户浏览器到广告网站

ChromeLoader 可能看起来像是一个普通的浏览器劫持者,但它对 PowerShell 的特殊使用可能会带来更深的麻烦。

编者注:

自 2 月初以来,我们一直在研究这种威胁。最近几天,我们观察到 ChromeLoader 活动似乎重新活跃。因此,这项研究基于对近五个月的威胁分析。也就是说,本报告中的检测指南提供了针对 ChromeLoader 和各种其他威胁的深度防御。

ChromeLoader 是一种普遍且持久的浏览器劫持程序,它会修改受害者的浏览器设置并将用户流量重定向到广告网站。该恶意软件是通过一个 ISO 文件引入的,该文件通过伪装成破解的视频游戏或盗版电影或电视节目来诱使用户执行它。它最终表现为浏览器扩展。

与大多数可疑的浏览器扩展一样,ChromeLoader 是一种相对良性的威胁,它劫持用户搜索查询并将流量重定向到广告网站。然而,ChromeLoader 使用PowerShell将自己注入浏览器并为其添加恶意扩展,这是一种我们不经常看到的技术(而且通常不会被其他安全工具检测到)。如果应用于影响更大的威胁(例如凭据收集器或间谍软件),则此 PowerShell 行为可以帮助恶意软件获得初始立足点,并且在执行更明显的恶意活动(例如从用户的浏览器会话中窃取数据)之前不被发现。

在检测到编码的 PowerShell 命令引用了一个名为“ChromeLoader”的计划任务后,我们首先遇到了这种威胁——后来才知道我们在 ChromeLoader 部署的中间阶段捕获了它。

关于现有研究的说明

在写这篇博客的过程中,我们发现了两篇值得一提的相关文章——绝对值得一读:

Choziosi Loader: G-Data 的人写了一篇关于他们称之为“Choziosi Loader”的威胁的精彩文章,它验证了我们自己的 ChromeLoader 发现。

macOS 变体:一旦我们了解了 G-Data 的 Choziosi 命名约定,我们发现Colin Cowie分析 ChromeLoader 的 macOS 变体的另一篇出色的文章。

在本文中,我们分享了 ChromeLoader 感染链的重要元素和安全指南,您可以应用这些元素在您的环境中检测和寻找 ChromeLoader 活动。虽然此博客中的一些信息与 G-Data 和 Colin Cowie 发表的现有研究重叠,但我们正在分享新的见解和指导,安全团队可以使用这些见解和指导来开发行为分析以检测 ChromeLoader。

初始访问

ChromeLoader 由 ISO 文件提供,通常伪装成 torrent 或破解视频游戏。它似乎通过按安装付费的网站和 Twitter 等社交媒体平台传播。

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 1:带有可扫描 QR 码的 Twitter 帖子的删节截图,指向 ChromeLoader 的初始下载站点

下载并执行后,.ISO 文件将被提取并作为驱动器安装在受害者的机器上。在这个 ISO 中有一个用于安装 ChromeLoader 的可执行文件,以及似乎是 Windows 任务计划程序的 .NET 包装器。这就是 ChromeLoader 在入侵链后期保持其在受害者机器上的持久性的方式。

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 2:VirusTotal对恶意 ISO 释放的文件的分析

执行和持久化控制

CS_Installer.exe执行通过使用服务主机进程(svchost.exe)的计划任务创建持久性。值得注意的是,ChromeLoader 并不像人们预期的那样调用 Windows 任务计划程序schtasks.exe 来添加这个计划任务。相反,我们看到安装程序可执行文件加载 Task Scheduler COM API,以及跨进程注入svchost.exe(用于启动 ChromeLoader 的计划任务)。

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 3:Carbon Black 控制台 crossprocs 和 modloads  
CS_Installer.exe

图 3 描述了跨进程注入svchost.exe. 合法应用程序经常使用跨进程注入,但如果原始进程位于虚拟驱动器上(例如您希望安装 ISO 文件的那些),则可能会引起怀疑。最好留意从不引用默认文件路径的文件路径执行的进程,C:\drive以及将跨进程句柄启动到 C:\drive 上的进程中。这不仅可以查看 ChromeLoader 活动,还可以查看源自可移动驱动器并注入C:\drive进程(例如explorer.exe,在受害者机器上传播)的许多蠕虫。

跨进程注入完成后,ChromeLoader的定时任务会通过svchost执行,调用命令解释器cmd.exeChromeLoader 使用缩短的-encodedcommand标志来编码它的 PowerShell 命令:

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 4:ChromeLoader 的计划任务生成的编码 PowerShell 内容

解码和美化后,命令如下所示:

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 5:由 reddit 用户“ 
Russianh4ck3r ”解码和美化的 PowerShell CLI

在此命令中,PowerShell 检查是否安装了 ChromeLoader 扩展。如果找不到特定的文件路径,它将使用wget命令从远程位置拉取存档文件并将Chrome 扩展程序内容加载。找到扩展程序后,此 PowerShell 命令将使用该Unregister-ScheduledTask功能静默删除 ChromeLoader 计划任务。

然后,ChromeLoader 使用 PowerShell 将其扩展加载到 Chrome 中,以生成带有--load-extension标志的 Chrome,并引用下载的扩展的文件路径。

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 6:PowerShell 生成 Chrome扩展

一旦加载到 Chrome 中,恶意扩展程序就可以执行其真正的目标:通过恶意广告域重定向受害者搜索结果,并在用户尝试删除扩展程序时重定向离开 Chrome 扩展程序页面。

macOS 变体

4 月下旬,Colin Cowie 发布了对macOS 版本ChromeLoader 的分析,该版本能够将恶意扩展加载到 Chrome 和 Safari 网络浏览器中。阅读 Colin 的博客后,我们追溯分析了一些 Red Canary 威胁检测,这些检测似乎构成了对 2 月下旬发布的检测的部分执行。如下图所示,ChromeLoader 将编码命令从 Bourne shell ( sh) 重定向到 Bourne-again SHell ( bash)。该命令本身使用 grep 搜索Google Chrome进程,然后在找到该进程时加载恶意扩展/private/var/tmp/

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 7:将恶意扩展加载到 Chrome 中的解码 Bash 命令

macOS 变体具有与 Windows 变体相同的初始访问技术,即它使用带有 QR 码或链接的诱饵社交媒体帖子,将用户引导至恶意的按安装付费下载网站。macOS 变体并非源自 ISO,而是源自 Apple Disk Image ( DMG) 文件格式。与 Windows 版本不同的是,DMG 文件包含一个安装程序脚本,该脚本会删除 Chrome 或 Safari 的有效负载,而不是可移植的可执行文件。当最终用户执行时,安装程​​序脚本然后启动 cURL 以检索包含恶意浏览器扩展的 ZIP 文件并将其解压缩到private/var/tmp目录中,最后使用命令行选项执行 Chrome 以加载恶意扩展。

ChromeLoader恶意软件劫持用户浏览器到广告网站
图 8:Bash 脚本下载和解压 ChromeLoader 浏览器扩展。
图片由Colin Cowie提供。

为了保持持久性,ChromeLoader 的 macOS 变体会将首选项 ( plist) 文件附加到/Library/LaunchAgents目录中。这确保了每次用户登录到图形会话时,ChromeLoader 的 Bash 脚本都可以持续运行。安装后,ChromeLoader 会执行与在 Windows 机器上相同的活动:通过广告网站重定向网络流量。

检测

检测机会 1:PowerShell 在其命令行中包含缩短版本的encodedCommand标志

此伪检测逻辑查找编码的 PowerShell 命令的执行。并非所有编码的 PowerShell 都是恶意的,但编码的命令值得关注。

process_name == powershell.exe
&&
command_line_includes (-e, -en, -enc, [依次执行直到完整标志, -encodedcommand])

注意:许多应用程序将合法地编码 PowerShell 并使用这些缩短的标志。根据您的环境,可能需要进行一些调整。要改进此检测分析,请考虑在解码的 PowerShell 块中查找多个变量,并使用encodedCommand上述缩短的标志。变量在 PowerShell 中使用$.

decoded_command_line_includes == $

检测机会 2:chrome.exe包含load-extensionAppData\Local在命令行内的PowerShell生成

appdata\local检测分析使用包含作为参数的相应命令行查找从 PowerShell 生成的 Chrome 浏览器可执行文件的实例。

parent_process_name == powershell.exe
&&
process_name == chrome.exe
&&
command_line_includes (AppData\Local,load-extension)

检测机会 3: Shell 进程生成进程在命令行中加载 Chrome 扩展

此分析使用与 ChromeLoader 的 macOS 变体相关联的命令行查找sh或在 macOS 环境中运行的bash脚本

parent_process_equals_any (sh || bash)
&&
process_name_is_osx?
&&
command_line_includes (/tmp/ || load-extension|| chrome)

检测机会 4:将 Base64 编码的命令重定向到 shell 进程中

与上面的编码 PowerShell 检测分析理念一样,此检测器在 macOS 端点上查找编码shbash或zsh命令的执行。

command_line_includes (echo,base64)
&&
childproc_equals_any (sh,bash,zsh)

注意:与 PowerShell 一样,编码 shell 命令有许多合法用途。根据您的环境,可能需要进行一些调整。

结论

我们希望这篇博客可以帮助您提高针对 ChromeLoader 的深度防御能力,同时也针对利用可疑 ISO/DMG 文件和 PowerShell/Bash 执行的各种其他威胁。与往常一样,每个环境都不同,某些管理或用户工作流程可能会触发您的新检测分析。请务必进行相应调整。狩猎愉快!

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注