使用卷序列号作为加密密钥:APT恶意软件LOWKEY分析

概述

在2019年8月,FireEye发布了有关最新发现的威胁组织——APT41的“Double Dragon”报告。APT41是一个与亚洲某国家联系紧密的双重间谍组织,聚焦于财务领域,该恶意组织主要针对游戏、医疗保健、高科技、高等教育、电信和旅游服务等行业。

本文主要分析了我们发现的一个复杂、被动型后门,在关于APT41的报告中曾经提到,并且在最近的FireEye Cyber Defense Summit会议上与大家进行了分享。我们观察到,LOWKEY被用于一些针对性非常强的实际攻击之中,并利用仅能在特定系统上运行的Payload。文章中还使用了其他恶意软件家族名称,并进行了简要描述。有关APT41使用的恶意软件的完整概述,请参阅APT41报告中的技术附录部分。

本文主要分为三个部分:第一部分描述了我们如何分析加密的Payload;第二部分主要描述了我们在多个样本的不同位置中发现的加载器,该加载器经过一层混淆;最后一部分分析LOWKEY后门,该后门有两个变种,分别是针对IIS的被动TCP监听器和被动HTTP监听器。

使用卷序列号作为加密密钥:APT恶意软件LOWKEY分析

DEADEYE – RC5

我们持续跟踪过去几个月中的APT41恶意活动,观察到有多个样本都具有两个独特之处:(1)使用不常见的RC5加密算法;(2)包含唯一的字符串“f@Ukd!rCto R$.”。基于此,我们将这些样本命名为DEADEYE。

DEADEYE有多个变种:

(1)DEADEYE.DOWN可以下载其他Payload;
(2)DEADEYE.APPEND附加了其他Payload;

(3)DEADEYE.EXT可以加载系统上已经存在的Payload。

接下来,我们分别对这些变种进行详细分析。

(1)DEADEYE.DOWN

通过对一个DEADEYE.DOWN样本(MD5:5322816c2567198ad3dfc53d99567d6e)进行分析,我们发现它在首次执行恶意软件时,会下载两个文件。

第一个文件是从hxxp://checkin.travelsanignacio[.]com/static/20170730.jpg下载的。奇热首先恶意软件会使用密钥“wsprintfA”对RC5的命令和控制(C2)服务器进行解密,随后使用其他密钥对RC5进行加密,并将其以<MODULE_NAME>.mui的形式写入磁盘中。

RC5密钥是基于C盘驱动器的卷序列号构造的。卷序列号是一个长度为4字节的值,通常基于系统安装时间生成。卷序列号与硬编码后的常量“f@Ukd!rCto R$.”进行异或,然后转换为十六进制,生成最长为28个字节的密钥。如果异或后的值包含嵌入式的零字节,则秘钥长度可能会有所不同,因为lstrlenA API调用会确定密钥的长度。请注意,在将结果转换为十六进制之前,就会先进行lstrlenA API调用。如果字节模4的索引为0,则十六进制转换为大写表示。下面展示了密钥派生的过程。

卷C驱动器的序列号,我们以0xAABBCCDD为例

F ^ 0xAA = 0xCC 大写
@ ^ 0xBB = 0xFB 小写
U ^ 0xCC = 0x99 小写
k ^ 0xDD = 0xB6 小写
d ^ 0xAA = 0xCE 大写
! ^ 0xBB = 0x9A 小写
r ^ 0xCC = 0xBE 小写
C ^ 0xDD = 0x9E 小写
t ^ 0xAA = 0xDE 大写
o ^ 0xBB = 0xD4 小写
(0x20) ^ 0xCC = 0xEC 小写
R ^ 0xDD = 0x8F 小写
$ ^ 0xAA = 0x8E 大写
. ^ 0xBB = 0x95 小写

最终得到密钥:CCfb99b6CE9abe9eDEd4ec8f8E95。

第二个文件是从hxxp://checkin.travelsanignacio[.]com/static/20160204.jpg下载的。在将C2的响应保存到C:\Windows\System32\wcnapi.mui之前,首先使用密钥“wsprintfA”进行RC5解密,然后将其与0x74进行异或。

使用卷序列号作为加密密钥:APT恶意软件LOWKEY分析

随后,该样本确定其自己的模块名称,将扩展名mui附加到其后面,并尝试使用RC5算法对改文件解密。这样一来,此前下载并存储在系统上的恶意软件文件就已经被有效解密。由于已经使用基于卷序列号的密钥对文件进行了加密,因此只能在下载了该文件的系统上,或者是具有相同卷序列号的系统上执行该文件,后者的可能性非常小。

我们的样本mui文件,MD5值为e58d4072c56a5dd3cc5cf768b8f37e5e。在十六进制编辑器中查看加密的文件,我们发现显示的熵(Entropy)非常高(7.999779/8)。RC5在默认情况下会使用电子密码本(ECB)模式,也就意味着相同的明文块始终会产生相同的密文,而与其在二进制文件中的位置无关。该文件总计792933字节,但几乎没有重复的密码块,这意味着数据可能有额外的加密层。

如果没有正确的卷序列号,或者如果没有任何关于明文的线索,那么我们无法仅凭借样本来解密Payload(e58d4072c56a5dd3cc5cf768b8f37e5e)。

(2)DEADEYE.APPEND

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值