针对Emissary Panda组织的新型后门工具分析

阅读量368267

|

发布时间 : 2018-05-23 17:03:06

x
译文声明

本文是翻译文章,文章来源:https://www.nccgroup.trust/

原文地址:https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2018/may/emissary-panda-a-potential-new-malicious-tool/

译文仅供参考,具体内容表达以及含义原文为准。

一、概述

在过去的几年中,我们监测到了许多来自俄罗斯的黑客组织的活动,这些组织始终保持着活跃。其中一个团体名为“熊猫使者”(Emissary Panda),也被称为TG-3390、APT 27和青铜联盟(Bronze Union)。这是一个具有中国血统的黑客组织,主要针对教育、能源和科技相关领域进行攻击的黑客组织。
在过去,熊猫使者使用了多种方式实现他们的攻击。其中最值得注意的,就是他们对意大利黑客公司Hacking Team泄露出来的漏洞利用方式的利用。在他们的恶意工具中,带有的Payload通常是著名的PlugX,或者是HttpBrowserRAT,这是一种被认为源于中国的工具,并且被许多中国的黑客组织所使用。
最近的研究表明,这个小组正在开发一种新工具,这种工具持续保持活跃,并且近期还在受到感染的机器中被发现。本文主要是针对我们新发现的工具进行分析。经过我们的分析,有证据推断该工具可能与“HttpBrowser”的作者有一定关联。

 

二、对幕后组织的推断

尽管这一推断过程非常困难,但根据以下信息,我们认为该新型后门背后的使用者极可能是“熊猫使者”组织:
1、部分代码与此前该组织发布的样本相似(如图1、图2所示)。
2、在该组织过去曾经感染过的主机上,发现了一些工具和使用的技术,具体如下。
(1) ChinaChopper:一个允许攻击者在被感染主机上执行命令的WebShell,需要密码才能与WebShell进行交互。我们发现的样本中,密码为“123!@ZA”。
(2) 公开发布版本的nbtscan和netview枚举工具。
(3) 修改后的Mimikatz:可以从内存中提取密码。
(4) The Hunter:一款网络应用扫描工具。
(5) DLL劫持技术:用于执行Payload,“熊猫使者”组织过去也曾经使用过这种技术。
图1,左侧为以前该组织发布的样本,右侧为此次分析的新样本:

图2,左侧为以前该组织发布的样本,右侧为此次分析的新样本:

图3,左侧为以前该组织发布的样本,右侧为此次分析的新样本:

 

三、技术分析

根据我们对受感染主机的研究和调查,我们发现了两个似乎还处于开发阶段的样本。在这两个样本中,还包含一些旧版本HttpBrowser样本的代码。两个样本都包含大量代码,但其中的一个具有更多的实际功能。
当恶意SFX文件执行时,整个恶意后门就开始执行。在可执行文件中,包含以下文件:
(1) INISafeWebSSO.exe:加载恶意DLL的合法文件;
(2) inicore_v2.3.30.dll:恶意DLL;
(3) sys.bin.url:我们找到的两个恶意Payload均以此为名称。
为了执行Payload,攻击者利用了一种名为DLL搜索顺序劫持(DLL Search Order Hijacking)的技术。加载恶意DLL之后,它将使用XOR循环解密其自身代码的一部分(如图4所示),并对合法可执行文件的入口点进行修补,然后再次跳回恶意DLL中(如图5所示)。
图4,第一个XOR解密循环:

图5,修补入口点:

在跳回DLL之后,它将会重复同样的过程,来解密其自身的一部分,并找到LoadLibrary和GetProcAddress的地址,以动态加载所有必要的函数。
最后,它将读取sys.bin.url文件,执行将转移到这里。在完成之后,它将会使用XOR的方式,解密其余的恶意Payload,并调用RtlDecompressBuffer函数对其进行解压缩。

 

四、Payload

在这里,我们将重点讨论带有附加功能的Payload。在后面,我们会描述两个样本之间的差异。在进入到Payload之后,我们发现了一些有趣的字符串,这些字符串似乎是用于调试(如图6和图7)。正因如此,我们认为该工具仍在开发之中。
图6,调试用字符串:

图7,调试用字符串:

其具体所采取的行为,会根据传递参数的数值而定。不同值所代表的不同行为如下表所述,并在后文中进行详细分析。

参数0:终止执行并自我删除 || 使用WMI执行二进制文件

当二进制文件首次执行时:
1、检查其是否从%TEMP%目录中运行,如果是,则尝试终止其自身进程。
2、检查其是否从%APPDATA%目录中运行,如果是,则生成一个新的svchost进程,并使用-k作为参数,最后将sys.bin.url注入到新进程中。
3、若上述判断都不满足,其将在%APPDATA%目录中创建一个名为systemconfig的新目录,将所有文件(可执行文件、DLL文件、sys.bin.url)移动到其中,并使用WMI从创建的目录执行二进制文件。

参数1:Svchost注入

当参数为1时,Payload将从%appdata%systemconfig目录中读取sys.bin.url文件。然后,它会产生一个新的Svchost进程C:windowssystem32svchost.exe –k,将其置为挂起状态,并注入Payload。最后,修补svchost.exe的入口点,以便其可以在ResumeThread调用之后执行恶意Payload。

参数2:持久化 && Svchost再次注入

持久化所使用的具体方法取决于访问权限的级别。如果Payload的进程是由具有管理员权限的用户运行的,那么就会创建一个新的服务。服务的名称由配置所决定,在我们的样本中其名称为“systemconfig”(系统配置),描述为“for system config”(用于系统配置)。其二进制路径是提取的安装程序的路径,使用/update作为参数。
否则,它会将二进制的路径添加到SoftwareMicrosoftWindowsCurrentVersionRun中,并使用—update作为参数。如果是以这种方式进行的持久化,或者根本就没有完成持久化工作,那么它将按照参数1中所述的方式,注入到Svchost中。

参数3:核心功能

目前,核心功能包括:将配置写入注册表、与C&C服务器进行通信。我们暂时没有发现任何恶意功能,例如上传/下载文件,或者是执行攻击者的命令。

参数4:UAC绕过

二进制文件中,包含已经公开的UAC绕过方法。由于它会退出该过程,因此这一方法是否能有效实现并不重要。这一点也再次表明了,该工具仍在开发之中,并且编写者打算继续扩展其功能。

配置

在将配置的值写入注册表之前,都会使用DES算法对配置的每个值进行加密。其会在HKEY_CURRENT_USERSoftwareClasses目录下创建一个新键,使用HARDWAREDESCRIPTIONSystemBIOS键中的SystemProductName值或硬编码的字符串“68A-D3H-B1111”作为其名称中前半部分的字符。此外,使用硬编码的字符串“HjDWr6vsJqfYb89mxxxx”作为其名称中后半部分的字符。例如:
VMware Virtual Service-HjDWr6vsJqfYb89mxxxx或
Z68A-D3H-B1111-HjDWr6vsJqfYb89mxxxx
加密算法中所使用的密钥和初始化向量(IV),基于该注册表名称的前8个字节而定,例如VMware V。
接下来,我们对加密后的子键值进行分析。一旦这些子键值被写入后,它们之中的大部分将不会从Payload中再次读取。这一点,也可能表明了作者此后将会扩展该工具的功能。我们编写了一个Python脚本,来自动识别出注册表键,并解密子键值的值。解密后的值如下表所示:
(图1)

 

五、两个样本之间的差异

如前文所述,这两个样本中有很多代码都是相同的,但二者还是存在很多差异。其中,最重要的两个差异之处是:
第一,每个样本都有不同的调试字符串。
第二,功能较少的样本需要读取并解密此前存储的注册表值,以便进行C&C通信或注入到svchost。其原因在于,配置不包含在二进制文件之中。
除此之外,我们将其他的差异总结在表格之中,如下所述:

 

六、结论

根据我们的分析,“熊猫使者”这一组织仍然活跃,并且持续将目标瞄准他们所选定类型的组织。尽管目前我们发现的样本中,不包含任何恶意功能,但我们认为该组织仍然会对这一工具持续开发,并将其用在未来的攻击之中。

 

七、参考文章

[1] https://github.com/nccgroup/Cyber-Defence/tree/master/Scripts/emissary_panda_registry
此前的研究工作:
[2] https://www.secureworks.com/research/threat-group-3390-targets-organizations-for-cyberespionage
[3] https://www.secureworks.com/research/bronze-union

 

八、IoC

C&C IP

103.59.144.183
159.65.80.157

注册表键值及其描述

HjDWr6vsJqfYb89mxxxx:SoftwareClasses中键的名称后半部分的字符串。
Z68A-D3H-B1111:SoftwareClasses中键的名称前半部分的字符串。
C:ProgramData :包含三个文件的目录。
systemconfig:检查该键是否存在于SoftwareMicrosoftWindowsCurrentVersionRun中。
Systemconfig:检查是否存在描述为“for systemconfig”的指定服务。

SHA-256

INISafeWebSSO.exe(C501203FF3335FBFC258B2729A72E82638719F60F7E6361FC1CA3C8560365A0E)
inicore_v2.3.30.dll(4D65D371A789AABE1BEADCC10B38DA1F998CD3EC87D4CC1CFBF0AF014B783822)
sys.bin.url(2B2BB4C132D808572F180FE4DB3A0A3143A37FDECE667F8E78778EE1E9717606)
sys.bin.url(3E718F39DFB2F6B8FBA366FEFA8B7C127DB1E6795F3CAAD2D4A9F3753EEA0ADC)

本文翻译自https://www.nccgroup.trust/ 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
P!chu
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66