朝鲜黑客组织Lazarus使用木马化的DeFi APP传播恶意软件。
Lazarus是知名的朝鲜黑客组织,经济利益是其首要目标,尤其是加密货币相关的业务。随着NFT和Defi的不断发展,Lazarus黑客组织在经济领域的攻击目标也在不断地发展。
近日,研究人员发现一款朝鲜黑客组织Lazarus使用的木马化的DeFi应用,其编译时间为2021年11月。该应用中含有一个合法的 DeFi 钱包,用于保存和管理加密货币钱包,同时在执行时会植入一个恶意文件。注入的恶意软件是一个功能齐全的后门。
背景
2021年12月,研究人员发现一个上传到VirusTotal的可以文件,看似是一个与DeFi 相关的合法应用,文件的编译时间为2021年11月,执行时,应用会释放一个恶意文件和合法应用的安装器。然后,恶意软件会用木马化的应用来覆写合法的应用。最后,木马化的应用会从磁盘移除。
图 1 感染时间轴
初始感染链
研究人员怀疑攻击者通过鱼叉式钓鱼邮件的方式诱使用户执行木马化的APP。感染流程就是从木马化的应用开始的,安装包伪装成一个 DeFi 钱包程序,但其中包含了恶意木马。
执行后,就会获取下一阶段恶意软件路径(C:ProgramDataMicrosoftGoogleChrome.exe) ,并用一字节异或解密。在创建下一阶段恶意软件的过程中,安装器会将包含MZ header的前8个字节写入GoogleChrome.exe文件。然后,恶意软件会从body加载资源CITRIX_MEETINGS,并保存到路径 C:ProgramDataMicrosoftCM202025.exe。生成的文件是一个合法的DeFi 钱包应用。最后,以之前创建的恶意软件文件名作为参数执行:
C:ProgramDataMicrosoftGoogleChrome.exe [current file name]
图2 恶意软件创建过程
后门创建
最后生成的恶意软件是一个伪装为谷歌Chrome浏览器的木马化的应用。启动后,恶意软件在尝试复制合法文件应用C:ProgramDataMicrosoftCM202025.exe到命令行参数中的路径前会检查是否提供了参数,这表示覆写原始木马化的安装器,达到隐藏之前存在性的目的。然后,恶意软件会执行合法的文件向用户展示合法安装过程以欺骗受害者。用户执行新安装的程序后,会展示一个由开源代码构建的DeFi钱包应用。
图3 应用截图
然后,恶意软件开始初始化配置信息,其中包含C2服务器地址、受害者id值、时间等。从配置结构来看,恶意软件可以配置5个C2地址。然后随机选择一个C2地址来发送beacon信号。如果C2返回了期望值,那么恶意软件就会开始后门操作。
与C2通信之后,恶意软件会通过预定义的方法加密数据。加密是通过RC4和硬编码的密钥0xD5A3实现的。
然后,恶意软件会用硬编码的名字生成POS参数。将请求类型(msgID)、受害者ID和随机生成的值融合生成jsessid参数。此外,还使用cookie参数保存4个随机生成4字节值。这些值也是用RC4加密的,并进行base64编码。根据对C2脚本的分析,研究人员发现恶意软件不仅使用jsessid参数,还使用了jcookie参数。
图4 jsessid参数结构
随后的HTTP 请求表明恶意软件尝试用请求类型60d49d98 和随机生成的cookie值连接到C2。
根据C2的响应,恶意软件会执行指令的后门任务。然后执行不同的功能来收集系统信息和控制受害者机器。
基础设施
在攻击活动中,Lazarus组织使用了位于韩国的被入侵的web服务器。研究人员从其中一个被黑的服务器中获得了对应的C2脚本,如下所示:
http://bn-cosmo[.]com/customer/board_replay[.]asp
该脚本是一个VBScript.Encode ASP 文件,这是Lazarus 组织的C2脚本中是非常常用的。解码后,可以看到一个错误码60d49d95,而字符串60d49d94 就表示成功消息。此外,连接历史被保存在文件stlogo.jpg 中,下一阶段的C2地址被保存在同一文件夹的globals.jpg 文件中。
图5 C2脚本配置
脚本会检查jcookie 参数的值,如果长度大于24个字符,就提出前8个字符作为msgID。然后根据msgID的值,调用不同的函数。后门命令和命令执行结果会保存为全局变量。该脚本使用以下变量作为flag和缓存来传递后门和第二阶段C2服务器之间的数据和命令:
lFlag: 表明有数据要传递给后门的flag
lBuffer: 保存之后要发送给后门的数据的缓存
tFlag: 表明来自后门的响应的flag
tBuffer: 保存来自后门的数据的缓存
与Lazarus有关
研究人员经过分析认为该恶意软件与Lazarus 组织有关,因为该恶意软件与之前发现的CookieTime cluster非常类似。CookieTime cluster是Lazarus 组织一直在用的一个恶意软件集合。研究人员发现该恶意软件与CookieTime cluster的后门switch结构完全相同,从客户端提取IP地址的脚本几乎相同,保存数据到文件的脚本也非常类似。
图6 相同的后门switch结构
图7 几乎相同的提取IP地址的脚本
图8 相似的保存数据到文件的脚本