QNodeService:通过Covid-19诱饵传播Node.js木马

我们最近注意到MalwareHunterTeam 在Twitter上发布的帖子显示Java下载器的检测率较低。其名称为“由于Covid-19爆发CI + PL.jar而导致的公司PLP_Tax减免”,表明它可能已用于以Covid-19为主题的网络钓鱼活动。运行该文件导致下载了一个用Node.js编写的,未检测到的新恶意软件样本。该木马被称为“ QNodeService”。

对于编写商品恶意软件的恶意软件作者来说,使用Node.js是不寻常的选择,因为它主要是为Web服务器开发而设计的,并且不会预先安装在可能成为目标的机器上。但是,使用不常见的平台可能有助于逃避防病毒软件的检测。

该恶意软件具有使其能够下载/上传/执行文件,从Chrome / Firefox浏览器窃取凭据以及执行文件管理等功能。它针对Windows系统,但是其设计和某些代码段表明跨平台兼容性可能是未来的目标。

感染始于Java下载器,该Java下载器除了下载Node.js外,还下载以下文件:“ wizard.js”和“ qnodejs-win32-ia32.js”或“ qnodejs-win32-x64.js”。我们分析了这些组件以了解有关它们行为的更多信息。

Java下载器分析

上面提到的样本“由于Covid-19爆发CI + PL.jar而导致的PLP_Tax公司减免”,用作Java下载程序,已被Allatori混淆器混淆了。Allatori添加垃圾代码并混淆字符串,使分析更加困难。我们对代码进行了模糊处理,以便能够开始分析。

QNodeService:通过Covid-19诱饵传播Node.js木马

图1.样本的反编译代码(被Allatori混淆器混淆)

QNodeService:通过Covid-19诱饵传播Node.js木马

图2.样本的反混淆代码

它将Node.js下载到User Profile目录。它检查系统体系结构并适当下载32位或64位版本。

QNodeService:通过Covid-19诱饵传播Node.js木马

图3.用于将Node.js下载到用户目录的代码片段

它还从URL hxxps://central.qhub.qua.one/scripts/wizard.js下载名为“ wizard.js”的文件。然后,它使用带有多个命令行参数(包括C&C服务器的URL)的Node.js运行此文件:

QNodeService:通过Covid-19诱饵传播Node.js木马

图4. Node.js运行的wizard.js

请注意,“ – group user:476 @ qhub-subscription […]”是在与C&C服务器通信期间使用的参数;用户标识符的出现和“订阅”的出现表明该恶意软件可以作为订阅服务出售。

向导分析

该Wizard.js文件是一个模糊的Javascript(Node.js)文件。它负责持久性(通过创建“运行”注册表项),并负责根据系统体系结构下载另一个有效负载。

它创建一个名为“ qnodejs- <8位十六进制数字> .cmd”的文件,其中包含用于启动该文件的参数。这由它在“ HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run”中创建的注册表项条目调用。它还检查它是否在Windows平台上运行,这表明作者可能会考虑跨平台兼容性。

QNodeService:通过Covid-19诱饵传播Node.js木马

图5. Wizard.js检查它是否在Windows上运行,并安装“运行”注册表项

QNodeService:通过Covid-19诱饵传播Node.js木马

图6.由wizard.js添加的注册表“运行”项

它从hxxps://central.qhub.qua.one/scripts/qnodejs- - .js下载文件。根据Node.js中process.platform和process.arch的可能值,我们找到服务器上托管的文件qnodejs-win32-ia32.js和qnodejs-win32-x64.js。该服务器还为每个样本包含SHA1哈希,尽管它们被命名为.sha256。这些哈希将在运行时由下载的样本下载并检查。

QNodeService:通过Covid-19诱饵传播Node.js木马

图7.使用process.platform和process.arch确定要下载的有效负载

qnodejs-win32- .js的分析

根据系统架构(操作系统是64位还是32位)下载名为qnodejs-win32-ia32.js或qnodejs-win32-x64.js的文件。

这些文件包含一个嵌入式的“ node_modules”文件夹,其中包含Node.js的库,该库在执行时提取。与Java代码本身不同,这些库是特定于体系结构的,这就是基于系统体系结构分发单独文件的原因。以下屏幕截图基于2020-04-30的“ win32-ia32”变体。

QNodeService:通过Covid-19诱饵传播Node.js木马

图8.代码内部使用的名称“ QNodeService”

恶意软件分为模块。使用名为“ v”的查找功能会混淆对这些模块的访问。一些模块仅包含对导入库的“ require”调用,而其他模块则是作者编写的自定义模块。

我们将此恶意软件命名为“ QNodeService”,因为这似乎是内部使用的名称,如验证命令行参数的代码所示。

QNodeService:通过Covid-19诱饵传播Node.js木马

图9.恶意软件使用的模块

QNodeService:通过Covid-19诱饵传播Node.js木马

图10.带有查找功能“ v”的索引引用模块

该文件中的某些模块与Wizard.js相同;特别是,这些方法重用了确定样本URL及其哈希值的代码。在此文件中,该模块用于下载和验证SHA1哈希。如果哈希失败,则恶意软件终止。

该恶意软件使用socket.io库与C&C服务器进行通信。因此,它采用反应式编程范例进行设计,并使用WebSocket与服务器进行通信。

QNodeService:通过Covid-19诱饵传播Node.js木马

图11. WebSocket握手

该恶意软件可以从Chrome和Firefox窃取密码。

QNodeService:通过Covid-19诱饵传播Node.js木马
QNodeService:通过Covid-19诱饵传播Node.js木马
图12.用于从Chrome和Firefox窃取密码的代码段

以下是恶意软件接受的命令列表:

命令 描述
控制/重装 指示Wizard.js重新下载主要有效负载。
控制/卸载 指示Wizard.js从系统中删除“运行”键条目并终止。
信息/获取IP地址 获取IP地址,位置,主机名等。
信息/获取标签 返回由“ set-label”命令设置的标签
信息/获取机器的uuid 获取由恶意软件生成的UUID。
信息/获取操作系统名称 获取系统的平台(windows)和体系结构(x32 / x64)。
信息/获取用户主页 获取用户配置文件目录(os.homedir())
信息/设置标签 设置标签
文件管理器/绝对 获取文件的完整路径
文件管理器/执行 使用命令“ start”“ / B ”执行文件
文件管理器/删除 删除系统上的一个或多个文件(使用“ rimraf”库接受glob)
文件管理器/转发访问 生成URL和令牌以用于“ http转发”命令(请参见下文)
文件管理器/列表 列出特定目录中的文件
文件管理器/ mkdirs 在系统上创建目录
文件管理器/写入 将C&C服务器发送的文件写入系统
http转发 发送到C&C上特定URL的HTTP请求被路由到受感染的计算机(请参见下文)
密码恢复/应用程序 列出可以读取密码的应用程序(Chrome和Firefox)
密码恢复/恢复 从特定应用程序(Chrome或Firefox)中恢复密码

5月5 日,该恶意软件使用三个附加命令进行了更新:

信息/获取标签 返回由“ add-tag”命令设置的标签列表
信息/添加标签 添加标签
信息/删除标签 删除标签
需要特别注意的是http-forward命令,它使攻击者无需直接连接到受害机器即可下载文件,如下图13-16所示。但是,访问计算机上的文件需要有效的请求路径和访问令牌。C&C服务器必须首先发送“ file-manager / forward-access”以生成URL和访问令牌,以便稍后用于http-forward命令。

QNodeService:通过Covid-19诱饵传播Node.js木马

图13. C&C服务器通过WebSocket发送“文件管理器/转发访问”命令

QNodeService:通过Covid-19诱饵传播Node.js木马

图14.恶意软件以图15中的cURL请求中使用的访问令牌和URL进行响应

恶意软件使用转发URL和访问令牌进行响应。然后,获得了URL和访问令牌的第三方可以向C&C服务器发送HTTP请求,以从受害机器中检索文件,而无需直接连接到该机器。

QNodeService:通过Covid-19诱饵传播Node.js木马
图15.到C&C服务器的HTTP cURL请求,请求“ C:\ foo.txt”(内容为“ bar”)

C&C服务器使用http-forward命令将HTTP请求转发到受害计算机上的恶意软件。如果访问令牌正确,则恶意软件会将文件的内容发送回C&C服务器,后者再通过HTTP响应将内容发送回攻击者,从而实现远程下载。

QNodeService:通过Covid-19诱饵传播Node.js木马

图16. C&C服务器使用“ http-forward”命令将cURL请求转发到受害计算机上的恶意软件

与wizard.js类似,作者似乎在考虑跨平台兼容性。尽管此示例是win32-ia32变体,但它包含的代码可改善Darwin(MacOS)和Linux平台上的兼容性。

QNodeService:通过Covid-19诱饵传播Node.js木马
Ots网络安全管家 - 建议

威胁行动者不断提出巧妙的方法来创建恶意软件,并确保其尽可能长时间地影响尽可能多的系统,例如,使用较少用于恶意软件创建的环境,保持持久性并为它们提供跨平台兼容性。为了抵御此类恶意软件,用户可以通过以下安全解决方案阻止他们通过可能的入口点,例如电子邮件,端点和网络。

转载ots网络社区 原文链接:http://www.ots-sec.cn/ots911/vip_doc/17252979.html