对于 Lazarus组织来说,经济利益是主要动机之一,尤其是加密货币业务。随着加密货币价格的飙升,以及不可替代的代币(NFT)和去中心化金融(DeFi)业务的普及,Lazarus组织的金融行业目标也在不断发展。
研究人员最近发现了一个木马化的 DeFi 应用程序,该应用程序于 2021 年 11 月被编译。该应用程序包含一个名为 DeFi Wallet 的合法程序,该程序可以保存和管理加密货币钱包,但在执行时还会植入恶意文件。该恶意软件是一个功能齐全的后门,包含很多的功能来控制受攻击的受害者。在研究了这个后门的功能后,研究人员发现与 Lazarus 组织使用的其他工具有许多重叠之处。
恶意软件运营商专门使用位于韩国的受攻击 Web 服务器发动此次攻击。为了接管服务器,研究人员与 KrCERT 密切合作,调查 Lazarus 组织的 C2 服务器。研究发现,攻击者配置了这个基础设施,且服务器设置为多个阶段。第一阶段是后门的来源,而第二阶段服务器的目标是与植入程序进行通信。这是 Lazarus 基础设施中常见的攻击途径。
2021 年 12 月中旬,研究人员注意到一个可疑文件上传到 VirusTotal。乍一看,它似乎是一个与去中心化金融(DeFi)相关的合法应用;然而,仔细观察,研究人员发现它启动了一个攻击计划。执行时,该应用程序会删除恶意文件和合法应用程序的安装程序,并使用创建的木马化安装程序路径启动恶意软件。然后,生成的恶意软件会用木马应用程序覆盖合法应用程序。通过这个过程,被木马化的应用程序将从磁盘中删除,从而可以掩盖其踪迹。
攻击时间表
初始攻击
虽然尚不清楚攻击者是如何诱使受害目标执行木马化应用程序 (0b9f4612cdfe763b3d8c8a956157474a),但研究人员怀疑他们发送了鱼叉式网络钓鱼电子邮件或通过社交媒体联系了受害者。迄今为止未知的攻击过程始于特洛伊木马应用程序。这个安装包伪装成一个 DeFi 钱包程序,其中包含一个用安装程序重新打包的合法二进制文件。
执行后,它会获取下一阶段的恶意软件路径(C:\ProgramData\Microsoft\GoogleChrome.exe)并使用一个字节的 XOR(密钥:0x5D)对其进行解密。在创建下一个恶意软件阶段的过程中,安装程序将包括“MZ”标头在内的前 8 个字节写入文件 GoogleChrome.exe,并从木马应用程序的数据部分推送剩余的 71164 个字节。接下来,恶意软件从其主体加载资源 CITRIX_MEETINGS 并将其保存到路径 C:\ProgramData\Microsoft\CM202025.exe。生成的文件是合法的 DeFi 钱包应用程序。最终,它以文件名作为参数执行先前创建的恶意软件:
C:\ProgramData\Microsoft\GoogleChrome.exe “[current file name]”
恶意软件创建过程
创建后门
上述木马化应用程序生成的恶意软件(d65509f10b432f9bbeacfc39a3506e23)伪装成谷歌Chrome浏览器的良性实例。启动后,恶意软件会检查是否提供了一个参数,然后尝试将合法应用程序“C:\ProgramData\Microsoft\CM202025.exe”复制到作为命令行参数给出的路径,这意味着覆盖原始木马化安装程序,几乎可以肯定是为了掩盖其先前的存在。接下来,恶意软件执行合法文件,通过显示其良性安装过程来欺骗受害者。当用户执行新安装的程序时,会显示使用公开源代码构建的 DeFi 钱包软件。
被攻击的应用程序的屏幕截图
接下来,恶意软件开始初始化配置信息。该配置显示了下表所示的结构,由标志、C2 服务器地址、受害者识别值和时间值组成。正如结构所表示的那样,该恶意软件最多可以保存五个 C2 地址,但在这种情况下只包含三个 C2 服务器。
恶意软件随机选择一个 C2 服务器地址并向其发送信标信号。这个信号是一个没有加密的硬编码‘0x60D49D94’DWORD;从C2返回的响应数据具有相同的值。如果收到来自 C2 服务器的预期值,恶意软件就会开始其后门操作。
在与 C2 进一步通信后,恶意软件通过预定义的方法对数据进行加密。加密是通过 RC4 和硬编码密钥 0xD5A3 完成的,然后另外使用 base64 进行编码。
该恶意软件生成带有硬编码名称的 POST 参数。请求类型 (msgID)、受害者标识值和随机生成的值合并到“jsessid”参数中。它还使用“cookie”参数来存储四个随机生成的四字节值。这些值再次使用 RC4 加密并另外进行 base64 编码。根据研究人员对 C2 脚本的调查,研究人员观察到该恶意软件不仅使用了名为“jsessid”的参数,还使用了‘jsessid’。
‘jsessid’参数的结构
以下 HTTP 请求显示恶意软件尝试使用请求类型 ‘60d49d98’ 和随机生成的 cookie 值连接到 C2。
根据 C2 的响应,恶意软件执行其指示的后门任务。它具有收集系统信息和控制受害设备的各种功能。
基础设施
Lazarus 在此次活动中仅使用了位于韩国的受攻击 Web 服务器。由于与 KrCERT 密切合作以删除其中的一些,研究人员有机会从其中一台受攻击的服务器上查看相应的 C2 脚本。本节中描述的脚本是在以下路径中发现的:
该脚本是一个 VBScript.Encode ASP 文件,Lazarus 组织在其 C2 脚本中通常使用该文件。解码后,它显示字符串'60d49d95'作为错误响应代码,而字符串'60d49d94'用作成功消息。此外,连接历史记录保存在文件“stlogo.jpg”中,下一阶段的 C2 地址存储在同一文件夹中的文件“globals.jpg”中。
C2脚本的配置
该脚本检查‘jsessid’参数中传播的值,如果长度超过24个字符,它将提取前8个字符作为msgID。根据msgID的值,它调用不同的函数。后门命令和后门命令下发的命令执行结果被存储到全局变量中。研究人员之前已经在 Bookcode群集中看到过这种方案。此脚本使用以下变量作为标志和缓冲区在后门和第二阶段 C2 服务器之间传播数据和命令:
lFlag:表示有数据要传播给后门的标志;
lBuffer:用于存储待发送到后门的数据的缓冲区;
tFlag:表示后门有响应的标志;
tBuffer:用于存储从后门传入的数据的缓冲区;
幕后组织
研究人员坚信 Lazarus 组织与该恶意软件有关,因为研究人员在 CookieTime 群集中发现了类似的恶意软件。CookieTime群集,被JPCERT称为LCPDot,是一个恶意软件群集,直到最近Lazarus团队还在大量使用它。研究人员已经看到 Lazarus 组织使用带有工作机会诱饵的 CookieTime 群集向国防工业目标发起攻击。研究人员已经向他们的客户发布了几份关于此群集的报告,并且研究人员发现了一个木马化 Citrix 应用程序 (5b831eaed711d5c4bc19d7e75fcaf46e),其代码签名与 CookieTime 恶意软件相同。最新调查中发现的后门与之前发现的木马应用程序几乎完全相同。除此之外,它们共享相同的 C2 通信方法、后门功能、随机数生成例程以及加密通信数据的相同方法。此外,Ahnlab 在一篇讨论与 CookieTime(又名 LCPDot)恶意软件相关的文章中提到了该恶意软件。
老版CookieTime 恶意软件的相同后门开关
反过来,研究人员发现 CookieTime 群集与 Manuscrypt 和 ThreatNeedle 群集有联系,这些群集也属于 Lazarus 组织。这不仅适用于后门本身,还适用于 C2 脚本,这些脚本显示出与 ThreatNeedle 群集的多个重叠部分。研究人员发现了几乎所有的函数和变量名称,这意味着运营商回收了代码库并为恶意软件生成了相应的 C2 脚本。
获取客户端 IP 地址的几乎相同的脚本
将数据保存到文件的类似脚本
总结
如上所述,Lazarus 和 BlueNoroff 组织试图在不引起人们注意的情况下传播他们的恶意软件,并且已经发展出复杂的方法来引诱其目标。 加密货币和基于区块链的行业持续增长并吸引了大量投资。 出于这个原因,研究人员坚信 Lazarus 对该行业的攻击才刚刚开始。
本文翻译自:https://securelist.com/lazarus-trojanized-defi-app/106195/如若转载,请注明原文地址