【翻译】威胁狩猎:Redline Stealer变体新的利用手法
朝闻道 发表于 湖北 二进制安全 678浏览 · 2024-04-20 14:29

翻译:https://www.mcafee.com/blogs/other-blogs/mcafee-labs/redline-stealer-a-novel-approach/
作者:Mohansundaram M 和 Neil Tyagi
在野观察到 Redline Stealer 木马的新压缩包变体,它利用 Lua 字节码执行恶意行为。


mcafee遥测数据显示,这种恶意软件非常流行,覆盖北美、南美、欧洲和亚洲,并到达澳大利亚。

感染链

GitHub 被滥用,将恶意软件文件托管在 Microsoft 官方帐户的 vcpkg 存储库中 https[:]//github[.]com/microsoft/vcpkg/files/14125503/Cheat.Lab.2.7.2.zip
Cheat.Lab.2.7.2.zip 是一个 zip 文件,哈希值为 5e37b3289054d5e774c02a6ec4915a60156d715f3a02aaceb7256cc3ebdc6610
该 zip 文件包含 MSI 安装程序。


MSI 安装程序包含 2 个 PE 文件和一个所谓的文本文件。

Compiler.exe 和 lua51.dll 是 Lua 项目的二进制文件。然而,威胁行为者会稍微修改它们以达到其目的;它们在这里与 readme.txt(其中包含 Lua 字节码)一起使用,以便在运行时编译和执行。
Lua JIT 是 Lua 编程语言的即时编译器 (JIT)。

幻数 1B 4C 4A 02 通常对应于 Lua 5.1 字节码。
上图是readme.txt,其中包含Lua字节码。这种方法具有混淆恶意攻击并避免使用易于识别的脚本(例如 wscript、JScript 或 PowerShell 脚本)的优点,从而增强了威胁行为者的隐秘和规避能力。
执行后,MSI 安装程序会显示一个用户界面。


在安装过程中,会显示一条弹窗信息,敦促用户将恶意软件安装到朋友的计算机上以获得完整的应用程序版本来传播恶意软件。

在安装过程中,我们可以观察到三个文件被写入磁盘到 C:\program Files\Cheat Lab Inc\ Cheat Lab\ path.

下面,这三个文件被放置在新路径中。


在这里,我们看到compiler.exe由msiexec.exe执行,并以readme.txt作为参数。此外,蓝色突出显示的部分显示 lua51.dll 正在加载到compiler.exe 中。 Lua51.dll 是 compiler.exe 运行的支持 DLL,因此威胁行为者已将该 DLL 与这两个文件一起发送。


在安装过程中,msiexec.exe 创建一个计划任务来执行compiler.exe,并将readme.txt 作为参数。
除了上述持久性技术外,这种恶意软件还使用第二种备用技术来确保执行。
它将三个文件复制到程序数据中的另一个文件夹,路径非常长且随机。


请注意,名称 compiler.exe 已更改为 NzUW.exe。
然后它会在 C:\Windows\Setup\Scripts\ 中放置一个文件 ErrorHandler.cmd
cmd的内容可以在这里看到。它以新名称 NzUw.exe 执行compiler.exe,并以 Lua 字节码作为参数。

执行ErrorHandler.cmd 使用system32 文件夹中的LolBin。为此,它创建另一个计划任务。


上图显示了使用 Windows 安装程序创建的新任务,它将启动 C:\Windows\system32\oobe\Setup.exe,不带任何参数。
事实证明,如果将有效负载放在 c:\WINDOWS\Setup\Scripts\ErrorHandler.cmd 中,则只要发生错误,c:\WINDOWS\system32\oobe\Setup.exe 就会加载它。

来源:将自定义脚本添加到 Windows 安装程序 |微软学习
c:\WINDOWS\system32\oobe\Setup.exe 需要一个参数。如果不提供,则会导致错误,从而导致执行ErrorHandler.cmd,后者会执行compiler.exe,从而加载恶意Lua代码。
我们可以在下面的进程树中确认这一点。

我们可以确认 c:\WINDOWS\system32\oobe\Setup.exe 以 ErrorHandler.cmd 脚本作为参数启动 cmd.exe,该脚本运行 NzUw.exe(compiler.exe)
然后它会检查正在执行的 IP,并使用 ip-API 来实现这一点。

我们可以看到来自api-api.com的网络数据包;这将作为 JSON 对象写入磁盘的 inetCache 文件夹中。

我们可以看到相同的 procmon 日志。

我们可以看到 JSON 已写入磁盘。

C2 通信和stealer 活动

与 c2 的通信通过 HTTP 进行。

我们可以看到服务器发送了OTMsOTYs的任务ID供受感染的机器执行。

返回一个 Base64 编码的字符串。

HTTP PUT 请求已通过 URL /loader/screen 发送到威胁参与者服务器。
IP 属于 redline 系列,许多引擎将其标记为恶意。

进一步检查该数据包表明它是一个位图图像文件。
该文件的名称是Screen.bmp
另请注意此放置请求中使用的唯一用户代理,即 Winter

将 Wireshark 中的位图图像资源转储到磁盘并将其作为 .bmp(位图图像)扩展名打开后,我们看到。
屏幕截图已发送到威胁行为者的服务器。

字节码文件分析

获取字节码文件的真实解混淆是具有挑战性的。
使用了许多开源反编译器,给出了略有不同的 Lua 脚本。
脚本文件没有编译成功,并且抛出了一些错误。

脚本文件根据错误进行调整,以便可以编译。
调试过程


通过将数据值传递给 2 个函数来填充一张表 (var_0_19)。
在控制台输出中,我们可以看到 base64 编码值存储在 var_0_19 中。
这些 Base64 字符串解码为更多编码数据,而不是纯字符串。


var_0_19 中的所有数据都分配给 var_0_26

同样的技术正在填充第二个表(var_0_20)
它包含编码数据的替换密钥。

上图是一个解密循环。它逐个元素地迭代 var_0_26 并解密它。
这个循环也很长并且包含很多垃圾行。
循环结束时将解密的值分配回 var_0_26。

我们将断点放置在第 1174 行并观察 var_0_26 的值。

当我们多次命中断点时,我们会在监视窗口中看到更多编码数据被解密。


我们可以看到解密的字符串,例如 Tamper Detected!在var_0_26中

加载 luajit 字节码:

在加载 luajit 字节码之前,会创建一个新状态。每个 Lua 状态都维护其全局环境、堆栈和加载的库集,从而在 Lua 代码的不同实例之间提供隔离。


它使用 Lua_openlib 函数加载库,并加载 debug、io、math、ffi 和其他支持的库,

使用 lua51 的 luaL_loadfile 导出函数加载 Lua jit 字节码。它使用fread函数读取jit字节码,然后使用memmove函数移动到分配的内存。


从自述文件中的字节码。文本随机移动,使用 memmove API 函数将字节码从一个偏移量更改为另一个偏移量。使用 memmove API 函数精确复制 Jit 字节码的200字节长度。

它获取表值并使用下面的浮点算术和异或指令对其进行处理。

它使用 memmove API 函数将字节从源缓冲区移动到目标缓冲区。

经过进一步分析,我们发现该脚本中将使用变量和参数的 c 定义。

我们已经看到了一些API定义,它使用ffi从Lua代码中直接访问Windows API函数,定义API函数的示例,


它使用 CreateMutexExW 创建名为 Winter750 的互斥锁。

它使用 ntdll.dll 中的 LdrLoaddll 函数在运行时加载 dll。使用 luajit ffi 调用该函数。

它通过使用 ffi 使用 RegQueryValueEx 函数从 Windows 注册表检索 MachineGuid。使用 RegOpenKeyExA 打开注册表项“SOFTWARE\Microsoft\Cryptography”—从打开的注册表项查询“MachineGuid”的值。

它使用 ffi 的 GetComputerNameA 函数从 Windows 注册表中检索 ComputerName。

它收集以下信息并将其发送到 C2 服务器。

它还将以下信息发送到 c2 服务器,

总结

在本博客中,我们看到了威胁行为者用来渗透用户系统并窃取其数据的各种技术。
微软已从存储库中删除了这些文件。

IOC

Cheat.Lab.2.7.2.zip 5e37b3289054d5e774c02a6ec4915a60156d715f3a02aaceb7256cc3ebdc6610
Cheat.Lab.2.7.2.zip https[:]//github[.]com/microsoft/vcpkg/files/14125503/Cheat.Lab.2.7.2.zip
lua51.dll   873aa2e88dbc2efa089e6efd1c8a5370e04c9f5749d7631f2912bcb640439997
readme.txt  751f97824cd211ae710655e60a26885cd79974f0f0a5e4e582e3b635492b4cad
compiler.exe    dfbf23697cfd9d35f263af7a455351480920a95bfc642f3254ee8452ce20655a
Redline C2  213[.]248[.]43[.]58
Trojanised Git Repo hxxps://github.com/microsoft/STL/files/14432565/Cheater.Pro.1.6.0.zip
0 条评论
某人
表情
可输入 255