译者:知道创宇404翻译组
原文链接:https://blog.sonatype.com/bladabindi-njrat-rat-in-jdb.js-npm-malware

在感恩节周末,我们在npm注册表中发现了新的恶意软件:远程访问木马(RAT)。

恶意软件包为:

这两个软件包均由同一作者发布。

“jdb.js”试图模仿合法的基于NodeJS的数据库库jdb。同样,“db-json.js”的名称与正版db-json库的名称相同。

但是,“jdb.js”实际上是与名为njRAT aka Bladabindi的远程访问木马(RAT)捆绑在一起的恶意软件包。

RAT是一种恶意软件,可以使攻击者控制受感染的系统、执行任意命令、运行键盘记录程序、秘密地进行其他监视活动。

njRAT是一种信息窃取木马,已部署在广泛的攻击中,这导致微软在2014年关闭了400万个站点

近年来,njRAT/Bladabindi的变体已通过YouTube上的比特币骗局和Excel网络钓鱼电子邮件进行传播。而且,鉴于njRAT的可定制性和在暗网上的易用性,这些恶意软件也被攻击者作为勒索软件工具包的一部分。

剖析npm恶意软件“jdb.js”

上周发布的“jdb.js”是一个npm软件包(不是JavaScript文件),只有一个版本1.0.0,其中包含3个文件:

  • package.json,清单文件
  • module.js,一个模糊的脚本
  • patch.exe,包含njRAT有效负载的Windows可执行文件

安装软件包后,包含在软件包中的package.json清单文件将启动module.js。

module.js是一个高度混淆的脚本,其中包含多个无法轻易解密的base64编码的块。解码这些字符串会发生乱码,这意味着这些base64块包含二进制或加密数据。

模糊的module.js文件

该脚本会进行多种恶意的活动,例如数据收集和侦察,并最终启动patch.exe,这是一个用.NET编写的njRAT dropper。

尽管patch.exe包含一个较旧的已知njRAT链,但在我们进行分析时,VirusTotal指示此特殊样本是上周由Sonatype提交给引擎的,这意味着它至少包含一些新信息。

对可执行文件进行反编译可以揭示这一关键信息。

其中一个叫做“OK”的类构造函数,用硬编码的字符串显示了命令和控制(C2)服务器的位置、恶意软件要与之通信的端口、本地的Windows文件夹等等。

patch.exe示例中的硬编码字符串,例如C2服务器IP地址,删除的进程的名称等。

一旦运行patch.exe,它将自身复制到系统上的本地“TEMP”文件夹中,并将其自身重命名为“dchps.exe”(截图中显示的值)。C2服务器和它建立连接的端口是46.185.116.2:5552ZoomEye搜索结果)。

但是,在与C2基础设施进行通信之前,恶意可执行文件会编辑Windows防火墙规则,以确保与硬编码IP进行通信时不会出现问题。为此,它将多次发出合法的“netsh”命令,从以下位置开始:

C:\Users\admin\AppData\Local\Temp\dchps.exedchps.exe

C2服务器操作者可以远程执行的命令相当广泛。

通过使用此恶意软件感染主机,远程攻击者可以记录击键、修改注册表值、随意关闭系统或重新启动、编辑Web浏览器(IE)起始页、通过语音合成与用户对话、终止或重新启动关键系统进程(如任务管理器、系统恢复和PING)以及控制硬件设备(如CD驱动器、显示器、鼠标、键盘等)。

njRAT C2服务器可以发送的部分命令列表,以便在受感染的主机上执行木马

该恶意软件还包含一个硬编码链接https://dl.dropbox[.]com/s/p84aaz28t0hepul/Pass.exe,现已被Dropbox禁用,该链接也经常出现在其他njRAT示例中

值得注意的是,此示例与之通信的C2服务器IP 46.185.116.2(ZoomEye搜索结果)与在某些CursedGrabber二进制文件中观察到的IOC相同,这表明CursedGrabber和npm恶意软件“jdb.js”有关联。

“db-json.js”将“jdb.js”隐藏在其中

尽管“jdb.js”表现出明显的恶意迹象,但令人担忧的是“db-json.js”,因为很难被立即发现。

首先,在分析时,“db-json.js”在npm上有一个适当的README页面,称其为JsonDb——一个易于使用的模块,使数据库基于json文件。

对于如何将这个库合并到他们的应用程序中,这里为开发人员提供了详细的说明。

npm自述页面的npm包“db-json.js”

乍一看,“db-json.js”程序包看起来很干净,因为它包含了一个真正的JSON DB创建程序包所需要的功能代码。但是,它正在秘密地将恶意的“jdb.js”作为依赖项。

下面显示的是版本1.0.3和1.0.4中的清单文件,其中包含“jdb.js”作为依赖项。

此外,在1.0.4版本中,“dbmanager.js”类进一步扩展了功能,在其功能代码的末尾附加了多个空行,最后一行是:

Require('jdb.js');

包含“clean”代码的db-json.js秘密地启动了jdb.js

这意味着如果有人能够在其应用程序中使用“db-json.js”来躲避“jdb.js”,他们不仅会感染njRAT恶意软件,还会使其他开发人员面临风险:安装或使用“db-json.js”构建的应用程序。

在我们最新的软件供应链状况报告中,我们看到,OSS项目或下一代软件供应链攻击中恶意代码注入增加了430%,这不是我们第一次看到包含假冒组件的攻击。如果没有足够的保护措施,这可能会对软件供应链造成损害。

URLs and IPs:

46.185.116.2:5552(ZoomEye搜索结果

https://dl.dropbox[.]com/s/p84aaz28t0hepul/Pass.exe

Hashes:

d6c04cc24598c63e1d561768663808ff43a73d3876aee17d90e2ea01ee9540ff
86c11e56a1a3fed321e9ddc191601a318148b4d3e40c96f1764bfa05c5dbf212


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1421/