TA505 是 Proofpoint 所追踪的最多产的黑客组织之一。从 2014 年开始,该组织发起了数百起 Dridex 活动,并在 2016 年和 2017 年期间发起了大规模的 Locky 活动,其中许多活动都涉及到在全球范围内传播数亿条恶意信息。最近,该组织一直在分发各种远程访问木马( RAT ),以及其他信息窃取、加载和侦察工具,包括一个被我们称为“ tRat ”的之前未被报道过的恶意软件。 tRat 是一种采用 Delphi 编写的模块化 RAT ,于今年 9 月和 10 月出现在各种活动中( TA505 是参与者之一)。在这篇博文中,我们讨论这些活动,并对该恶意软件进行简要分析。
活动分析2018 年 9 月 27 日, Proofpoint 发现了一起垃圾电子邮件活动,其中的恶意 Microsoft Word 文档使用宏下载了一种此前未被报道过的 RAT 。这些文件滥用了诺顿( Norton )的品牌,文档的名称和内嵌的图像都想要体现出它们受到了安全产品的保护。电子邮件的主题行强化了社会工程,声明“我已经安全地与您共享了文件”,而启用内嵌的宏就会导致 tRat 被安装。这起活动是由一个未知黑客组织发起的,而在 9 月 29 日再次出现了一起与之明显存在关联的活动,滥用了猫途鹰( TripAdvisor )的品牌(图 2 )。
图 1 :来自 2018 年 9 月 27 日活动的诱饵文档,滥用品牌和社会工程来诱骗收件人启用恶意宏
图 2 :在 2018 年 9 月 29 日活动中使用的 TripAdvisor 诱饵文档,再次滥用品牌和社会工程诱骗用户启用宏
在 10 月 11 日,我们观察了另一起分发 tRAT 的垃圾电子邮件活动,它的发起者是 TA505 。这起活动更加复杂,使用了 Microsoft Word 和 Microsoft Publisher 文件,以及不同的主题行和发件人,似乎针对的是商业银行机构的用户。
在这起活动中,携带恶意 Microsoft Publisher 文档的电子邮件声称与 “ 发票 ” 有关,并涉及到各种发件地址。电子邮件的主题行采用了 “Inovice ( sic ) [ 随机数字 ] [ 随机数字 ]” 这样的格式,并且携带了名为 “inv-399503-03948.pub” 的附件。在另一种情况下,携带恶意 Microsoft Word 附件的电子邮件声称来自 “Vanessa Brito” ,同样涉及到各种发件地址。附件在这些电子邮件中被命名为 “Report.doc” ,电子邮件主题行采用了“ Call Notification -[ 随机数字 ] [ 随机数字 ] ”这样的格式。图 3 展示了其中一封电子邮件样本:
图 3 : 2018 年 10 月 11 日活动的电子邮件样本
对于所有电子邮件而言,附件都包含宏,当启用时,会下载 tRat 。
图 4 : 2018 年 10 月 11 日的诱饵文档样本
tRat分析在我们继续分析该恶意软件的同时,我们也明确了它的一些功能。在我们所分析的样本中, tRat 通过将二进制文件复制到以下位置来实现持久性:
C:\Users\<user>\AppData\Roaming\Adobe\Flash Player\Services\Frame Host\fhost.exe接下来, tRat 会在 Startup 目录下创建一个 LNK 文件,用于在启动时执行二进制文件:
C:\Users\<user>\AppData\Roaming\Microsoft\windows\Start Menu\Programs\Startup\bfhost.lnktRat 的大多数重要字符串都是在经过十六进制编码和加密后存储的。在我们的 Github 页面上,有一个 python 脚本可用来解密这些字符串。
tRat 使用 TCP 端口 80 来进行命令和控制( C & C )通信, 数据同样在经过十六进制编码和加密后进行传输。为了生成解密密钥, tRat 连接到三个字符串,而结果是大写的十六进制编码。在我们所分析样本中的字符串如下所示:
1. “Fx@%gJ_2oK”
2. “AC8FFF33D07229BF84E7A429CADC33BFEAE7AC4A87AE33ACEAAC8192A68C55A6”
3. “&LmcF#7R2m”
目前尚不清楚这些字符串是否因样本不同而存在差异。除了生成密钥之外, tRat 还在解密过程中使用了一个 1536 字节的表。在撰写本文时,我们无法确定表中所有元素的含义,也无法确定其是否会发生更改。但是,我们能够确定的是,解密过程涉及到使用被加密的数据与表中的值进行异或运算。来自分析样本的表和 Python 脚本都可以我们的 Github 页面上找到,可用于解密通信。
tRat 的初始 phone-home network 请求称为 “AUTH_INF” 。解密后的样本如下所示:
MfB5aV1dybxQNLfg:D29A79D6CD2F47389A66BB5F2891D64C8A87F05AE3E1C6C5CBA4A79AA5ECA29F8E8C8FFCA6A2892B8B6E这个字符串由一个 “ : ” 分隔为两个子字符串。第一个子字符串是是作为加密字符串存储的硬编码标识符。第二个子字符串包含加密的系统数据,如下所示:
FASHYEOHAL/nXAiDQWdGwORzt:3A176D130C266A4D这些数据包含受感染主机的计算机名称、系统用户名和 tRat bot ID ,但我们尚未确定 bot ID 是如何生成的。
对于 phone-home network 请求, C & C 将使用 “” 或命令列表进行响应。如果 tRat 收到 “” ,它将 “[G]” 作为响应。虽然这看起来像命令轮询,但命令列表、命令和模块数据的准确格式是未知的。目前,我们认为 loader 中唯一支持的命令是 “MODULE” ,它至少包含一个模块名和导出名。为了接收模块, tRat 需要执行以下步骤: l 发送 “[GET_MODULE]” l 如果收到 “[WAIT_FOR_AUTH_INF]” ,则发送 AUTH_INF 数据 l 如果收到 “[WAIT_FOR_MODULE_NAME]” ,则发送模块名l 响应可能是以下之一:
l “[ERR_MODULE_NOT_FOUND]” l “[[ACCESS_DENIED]]”l 模块长度
l 如果收到的是模块长度,则发送一个 “[READY]”l 接收模块
l 模块本身的加密方式与 C & C 通信类似,但似乎使用了随模块一起发送的不同密钥
l 解密后,模块将作为 DLL 加载,并使用收到的导出名执行
目前我们还没有观察到 C & C 提供的任何模块,因此我们不确定它们可能会添加哪些功能。
总结 鉴于 TA505 所发起活动的数量、频率和复杂程度,该组织往往会在电子邮件威胁领域掀起波澜。对于该组织而言,开始测试新的恶意软件并不是什么稀罕事,因为他们在过去的活动中已经使用了 BackNet 、 Cobalt Strike 、 Marap 、 Dreamsmasher 和 Bart 。另外,他们也曾使用过类似