深入分析Spark后门的多个版本,逐步揭秘Molerats恶意组织活动轨迹

来源:岁月联盟 编辑:猪蛋儿 时间:2020-03-16
“CallieVK”字段解码后的数据中包含一个名称为“JaseN”的JSON数组,其中包含一个或多个对象,这些对象的字段名称为“Lawrence”,其中包含收到的任务编号,例如{“JaseN”:[{“Lawrence”:5}]}。该确认信息将发送到C2服务器,如下图所示:

确认收到命令后,Payload期望C2使用JSON对象进行响应,并将“Allier”字段设置为数字,例如{“Allier” : 7}。我们并不确定这一次通信的目的,也不确定Payload将如何利用这一数字进行操作,下图展示了包含“Allier”字段的Base64编码后密文。
提供Allier JSON对象的C2服务器:

在收到“Allier”JSON对象后,Payload会将已执行命令的结果发送到C2服务器。Payload将创建一个带有名为“Zeke”的数组的JSON对象,该数组中包含JSON对象,这些对象具有一个用于存储命令结果的“FrederickT”字段、一个用于表示任务标识符的“ReesefP”字段以及一个以布尔型表示命令是否执行成功的“KaileeXws”字段。当C2发出的“whoami”命令的执行结果为“test-system/
{“Zeke”:[{“FrederickT”:”5yUu16Ae8WKt  ”,”KaileeXws”:true,”ReesefP”:5}]}
Payload将对这个数据进行Base64编码,并将其放在出站JSON对象的“CallieVK”字段中,另一个“ReeceWNM”字段被设置为“Winston”以表示通信类型,如下所示:
{“CallieVK”:”eyJaZWtlIjpbeyJGcmVkZXJpY2tUIjoiNXlVdTE2QWU4V0t0aX  0iLCJLYWlsZWVYd3MiOnRydWUsIlJlZXNlZlAiOjV9XX0=”,”ReeceWNM”:”Winston”}
随后,Payload将对这个JSON对象进行加密,并将其发送到C2服务器,以获取命令执行的结果。下图展示了HTTP POST请求,其中包含加密的JSON对象,该对象包含“Winston”通信类型。
Payload将发出命令的结果发送到C2服务器:

发送初始命令的结果后,Payload期望C2使用JSON对象进行答复,该JSON对象的“Garrison”字段被设置为数字,例如{“Garrison” : 8}。下图展示了C2服务器使用带有“Garrison”字段的JSON对象的密文进行响应的过程。
C2服务器将Garrison JSON对象发送到Payload:

到此,C2的报到和初始命令执行部分已经结束。Payload将进入一个循环,连续发送HTTP请求以获取其他命令,并使用与之前相同的JSON对象序列运行,这个过程从使用“JoslynKe”通信类型将系统信息发送到C2之后开始。取而代之的是,在每一次循环中,都使用“VanessaFM”通信类型,如下所示:
{“CallieVK”:”eyJBZGVsaW5lUkQiOiJ2Y0picTZuemdKaz0iLCJBdmVyaXp0IjoiMSIsIkJyYW5kZW50bEsiOjEsIk1hdGhpYXNOYm8iOlt7IkFkYWx5bm5nUyI6MSwiQ29sbGluc1BNIjoiS1Q2TloyMVNGTVQ5WHFuZVM3MjJmZkVucG1FUFVZcDBqcDFFTXRaVEtyUmNNWkVFWG56QnZnPT0iLCJOZXZhZWgiOnRydWV9XX0=”,”ReeceWNM”:”VanessaFM”}
“CallieVK”字段中的数据在解码后是具有多个字段的JSON对象,其中一个是名为“MathiasNbo”的数组,该数组包含JSON对象,其中名为“CollinsPM”的字段中包含受感染主机的UUID,该值已经在此前的“JoslynKe”通信类型中由“ZaydenlnL”字段进行传输。
JSON对象中还包含“”字段,该字段包含Base64编码的昵称或恶意活动系列标识符值密文。我们已经整理了已知Spark Payload的恶意活动代码列表,这些代码已经包含在附录中。生成的JSON对象如下所示:
{“AdelineRD”:”vcJbq6nzgJk=”,”Averizt”:”1″,”BrandentlK”:1,”MathiasNbo”:[{“AdalynngS”:1,”CollinsPM”:””  ”,”Nevaeh”:true}]}
如下图所示,这个JSON进行了加密和Base64编码,然后发送到C2服务器,Payload将在主循环的每一次循环中使用相同的JSON,并期望C2提供相同的响应,其中包含的“Jordanlzw”、“Allier”和“Garrison”字段可以接收其他命令。
向C2服务器发出HTTP POST请求其他命令的Payload:

十、2019年与2020年恶意活动的对比
在收集其他Spark恶意样本的同时,我们找到了2019年恶意活动中使用过的样本,以及2020年1月在Spark恶意活动中使用的较新样本。这些恶意活动中使用的投递文件和Spark Payload与我们在2019年10月和2019年11月的攻击中所观察到的投递文件有所不同。我们发现,2019年1月的投递文档是独立的,因为其中嵌入了Payload,而2019年10月、11月和2020年1月的投递文档则需要与远程服务器进行交互。2019年10月和2020年1月的文档有所不同,前者试图下载VBScript,该VBScript从威胁参与者控制的服务器上下载Payload,而2020年1月的文档视图从Google Drive加载远程模板,宏试图从Google Drive下载Payload。每个投递文档中安装的Spark Payload也有所不同,我们将与本文前面所分析的11月攻击中所使用的已知Payload进行比较。

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页