概述
近期,Proofpoint研究人员发现TA800威胁组织进行的一个有趣的电子邮件活动。该组织自2020年4月以来,主要利用BazaLoader进行攻击。但在2021年2月3日,该组织分发了一种新的名为NimzaLoader的恶意软件。NimzaLoader是基于Nim语言编写的,这在恶意软件中并不常见。研究人员猜测攻击者之所以选择使用一种罕见的编程语言来开发恶意代码,可能是为了规避防病毒工具和沙箱检测。
活动详情
2021年2月3日,Proofpoint研究人员观察到TA800组织在攻击活动中分发NimzaLoader。与之前的攻击活动一致,该组织在诱饵文档中依旧标明了详细信息,其中包括收件人的姓名和公司的名称。消息中包含指向PDF预览的链接地址(某些活动中使用短链接),点击后将跳转到GetResponse电子邮件营销服务的登录页面。该登录页面中包含指向"PDF"的链接,但其实际上是托管在Slack的NimzaLoader可执行文件,该文件还使用了伪造的Adobe图标以欺骗用户。
图1. 诱饵文档
图2. 包含NimzaLoader下载地址的GetResponse登录页面
恶意软件分析
研究人员进行逆向分析的NimzaLoader样本的哈希值为:
540c91d46a1aa2bb306f9cc15b93bdab6c4784047d64b95561cf2759368d3d1d。
研究时,该样本的C2服务器已经关闭,因此研究人员还对上传到VirusTotal的PCAP文件进行了分析。
Nim编程语言
从可执行文件中各种与nim相关的字符串可以看出,NimzaLoader是基于Nim编程语言开发的,如图3所示:
图3:与Nim相关的字符串示例
字符串加密
恶意软件使用的大多数字符串在存储时,都使用基于XOR的算法和单个的字符串密钥进行加密。以下是对NimzaLoader样本字符串进行解密后得到的列表:
-
1612963255.0039535
-
1OcYomEX0BsbkWCzLHRggQ==
-
;
-
;rn
-
=
-
APISID
-
CV54fakIvNL14Br0vFqSiw==
-
Cookie:
-
GET
-
JSESSIONID
-
SID
-
WMCIf52ORF4UAztWoqpcAtAdZeysf2lWi0FvUE/L7Uc=
-
rn
-
about
-
e8cbd40fda2500cd496b55df43402d8ed077b8cd965701a205c17f2b0389fce1
-
hYLuwpX6qTSHW4zqip3prQ==
-
hxxps://centralbancshares.com
-
hxxps://gariloy.com
-
hxxps://liqui-technik.com
-
job_id_header
-
path_adj
-
path_noun
-
seq_num
-
seq_total
-
server_public_key
-
user_agent
其中的一些字符串(主要是命令名称)是以堆栈字符串的形式存储。
失效日期
其中的一个加密字符串是Unix纪元时间戳,被用作恶意软件的失效日期。在此次分析的样本中,失效日期被设置为"1612963255.0039535"(即格林尼治标准时间2021年2月10日星期三1:20:55.003 PM),该恶意软件在到达该日期和时间后将不再运行。
配置信息
C2地址以加密字符串的形式存储在样本中,对其进行解密后得到以下内容:
-
hxxps://centralbancshares.com
-
hxxps://gariloy.com
-
hxxps://liqui-technik.com
样本中还有一个包含命令请求中使用的C2地址路径组件的加密的字符串,该组件的名称为“about”。
命令与控制
C2是基于HTTPS的,初始信标被恶意软件称为“handshake”,如图4所示:
图4. handshake请求和响应示例
加密
handshake被用于与C2服务器进行X2551密钥交换并检索一些配置项。“Cookie”标头请求中的“SID”值使用base64进行编码。解码后,将得到恶意软件生成的用于密钥交换的公钥和一些其他数据,这些数据被用来解密来自C2服务器的handshake响应。
通过使用该数据以及恶意软件中的一些加密字符串和Monocypher加密库中的一些原语,可以对C2响应进行解密。解密后,响应将包含一个JSON对象,如图5所示:
图5. handshake响应JSON对象示例
恶意软件和C2服务器之间共享的密钥,会在将来的C2通信中使用。
将来的C2地址是由上述配置项,以及接收到的“path_adj”和“path_noun”组件构成的,如以下所示:
hxxp://liqui-technik.com/about/disassociation/better-known
更新的“path_adj”和“path_noun”组件通过先前设置的“path_noun”响应标头在连续的C2响应中发送,如图6和图7的红色标注所示。
一旦handshake完成,剩下的C2通信就是命令请求和命令响应,命令请求如图6所示:
图6. 命令请求示例
在命令请求中,Cookie标头的“SID”值被更改为机器人标识符。响应使用共享密钥进行加密,解密后将得到一个JSON对象,该对象包含以下字段:
-
job_id - identifier
-
job – base64 encoded job details
解码后,“job”包含另一个JSON对象,其中包含:
-
type – command
-
args - command arguments
命令响应示例如下所示:
图7. 命令响应示例
命令响应与命令请求类似,其中包含命令输出或错误消息。
命令
NimzaLoader样本中可以识别出以下命令:
-
cmd - 执行cmd命令
-
powershell - 执行powershell命令
-
handshake - 重新handshake
-
shellcode - 将shellcode注入到进程中
-
sc - 十六进制编码和被压缩的shellcode
-
prog - 进行shellcode注入的进程
-
heartbeat - 用于更新内存中恶意软件的失效日期
-
heartbeat - 新失效时间
-
sig - 被用于带有加密字符串的签名检查
研究时,已知的NimzaLoader所拥有的C2都已关闭,但是一个公共恶意软件沙盒似乎还在运行,该沙盒接收到了一个"powershell''命令,该命令最终投递了Cobalt Strike。虽然该发现无法被证实,但其与TA800组织过去使用的TTP一致。
总结
NimzaLoader是由TA800威胁组织分发和使用的新的初始访问恶意软件。研究人员观察到TA800自2020年以来开始间歇性的分发Buerloader,并从2020年4月开始一致地分发Bazaloader。社区研究表明,NimzaLoader是BazaLoader家族的一种变体,但基于二者之间存在的重大差异,Proofpoint研究人员将其作为一个新的恶意软件家族进行跟踪。
END
本文始发于微信公众号(SecTr安全团队):【黑客攻击】TA800组织使用Nim语言开发的加载器进行攻击
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论