剖析海莲花组织恶意文件定制化策略

admin 2022年1月13日22:07:00评论204 views字数 3159阅读10分31秒阅读模式






组织背景






海莲花(OceanLotus、APT32)APT团伙是一个高度组织化的、专业化的境外国家级黑客组织,其最早由国内安全厂商发现并披露。该组织至少自2012年4月起便针对周边地区国家政府、科研院所、海事机构、海域建设、航运企业等相关重要领域展开了有组织、有计划、有针对性的长时间不间断攻击。






加密策略






2019年开始,海莲花在相应的攻击活动中植入目标系统的后门出现定制化特点核心载荷需要特定密钥才能解密执行,该方法不仅增强了恶意软件的隐蔽性,也极大阻碍了安全人员对其攻击行为的分析与追踪。对于此种策略,目前业界遭遇的困境一致,并没有很好的办法来解决,如何最大限度获取到解密后的最终载荷也成为了安全人员不断研究探索想要突破的目标。





初次交锋






深信服安全蓝军高级威胁研究团队也一直在追踪与研究该组织的活动与攻击动向,我们在外部于2021年11月23日发现了一个恶意文件,经过研判确定是属于该组织的攻击文件,该文件的原始文件名为HWSignature.dll,存在四个导出函数“AiDisableDesktopRpcInterface”、“AiEnableDesktopRpcInterface”、“ServiceMain”、“SvchostPushServiceGlobal”。


剖析海莲花组织恶意文件定制化策略


在整个针对该恶意文件的分析过程中,我们发现程序的逻辑里并未判断当前加载的母体进程的名称,而是直接执行后续的恶意代码,所以针对该恶意 dll 文件的加载白文件,从分析的恶意代码的逻辑里暂时未知。但经过后续分析人员的深度搜索发现是属于伪装成搜狗拼音输入法的 dll 组件,于是此恶意dll文件的白文件应当是属于搜狗输入法的可执行文件。


剖析海莲花组织恶意文件定制化策略


于是可以得出结论,此次恶意文件的利用模式依然为该组织一贯的“白+黑”手法,白文件为正常的带签名的国内流行应用程序的exe文件,黑文件则为攻击者自行伪装的恶意的同名dll组件。该恶意文件的互斥量值为"1a2f7af7-cb24-4573-90d4-549327841387",已经内嵌在恶意文件内部。后续发现采用劫持入口加滑行指令执行的手法在母体进程里(也就是正常的白文件)执行后续的核心函数,如下为劫持入口。


剖析海莲花组织恶意文件定制化策略


在白文件的进程内部执行最终的核心函数,如下。


剖析海莲花组织恶意文件定制化策略


此shellcode也被内嵌在该恶意文件的资源数据区域,来到执行shellcode的入口,发现此shellcode并未像之前的攻击样本采用Shikata Ga Nai混淆器进行混淆,目前该shellcode可将其归类到第一阶段shellcode。


剖析海莲花组织恶意文件定制化策略


剖析海莲花组织恶意文件定制化策略


在后续的调试中发现会采用进程注入的方式将最终阶段的shellcode注入到svchost.exe进程中(32位)执行,如下。


剖析海莲花组织恶意文件定制化策略


同时我们发现最终的shellcode实质属于beacon,但是经过了攻击者的修改,无法解析得到相关的配置,但从实际shellcode运行过程中流量请求的流程中可以发现这与我们2021年12月10日发现的恶意文件VERSION.dll存在相同的C&C配置(见下文分析部分),从配置上看确实属于伪装了搜狗的应用程序的流量来欺骗相关的流量安全设备。


剖析海莲花组织恶意文件定制化策略




再遇阻碍




时间来到2021年12月10日,我们又在外部发现了另一例恶意文件,原始文件名为VERSION.dll,导出函数有“GetFileVersionInfoSizeW”、GetFileVersionInfoW”、“VerQueryValueW”,依据这些信息只能推测出该恶意文件大概率是伪装成微软的组件。


剖析海莲花组织恶意文件定制化策略


经过与2021年11月23日发现的恶意文件 HWSignature.dll 的代码比对发现,存在差异的部分主要是 VERSION.dll 增加了对加载母体的文件名判断的逻辑,如果 dll 在被执行的过程中检测到当前加载的母体并非为内嵌的名称,则不执行后续的恶意代码而会直接退出进程,这种逻辑一定程度上规避了自动化分析系统对恶意文件的检测。

 

剖析海莲花组织恶意文件定制化策略


从后续的调试过程可以发现,该恶意文件存在着加密解密的过程,属于该组织近些年来一贯采用的定制化策略,如若没有对应受害系统的唯一特征,则无法解密执行后续的shellcode,从而无法得到最终回连的 C&C 地址等更多价值信息。


剖析海莲花组织恶意文件定制化策略


此恶意文件提取的受害系统的唯一特征为受害机器操作系统的安装时间,恶意文件采用COM的方式执行命令"SELECT * FROM Win32_OperatingSystem",获取字段" InstallDate"对应的值,这里本地调试过程中获取的系统安装时间值为:"20190615115013.000000+480"。

 

剖析海莲花组织恶意文件定制化策略

将获取的操作系统的安装时间时间戳进行转换为正常的日期时间:"06/15/2019T11:50",如下。

 

剖析海莲花组织恶意文件定制化策略


采用 md5 哈希算法计算之前获取的安装日期值的哈希值,如下。


剖析海莲花组织恶意文件定制化策略


剖析海莲花组织恶意文件定制化策略


计算得到的哈希值为:82 03 8C 08 1A 12 8C E4 01 0F 78 CC 0D 57 70 94,经过本地手工核算一致也确认为属于 md5 哈希值。


剖析海莲花组织恶意文件定制化策略


剖析海莲花组织恶意文件定制化策略


来到后续的逻辑里,此处存在要比较的哈希值为:D1 12 79 75 0A 84 21 B8 A0 86 88 63 96 8F EC F1。


剖析海莲花组织恶意文件定制化策略


如果比较的哈希值与 D11279750A8421B8A0868863968FECF1 不相等,则后续直接退出进程。


剖析海莲花组织恶意文件定制化策略






另辟蹊径






当分析到这里,如果无法获取到实际受害机器的具体系统安装时间的话,后续是无法跟进调试分析的。一开始想到的是由于此处获取的受害系统的唯一标识是操作系统的安装时间,而时间其实是可以迭代累加的,是否可以通过暴力枚举的方式获取到正确的系统安装时间从而解密后续的shellcode呢?答案当然是可行的,经过分析人员的速度测算最坏的情况下大概需要三四天的时间即可枚举出正确的安装时间从而解密出最终的回连C&C地址信息。但是一想到需要三四天时间,还是免不了会觉得有些麻烦,最终在仔细对上述加密解密流程经过分析后发现其实可以有一种非常巧妙的方式去获取解密后的shellcode。

 

我们可以直接通过将错误的哈希值替换为正确的哈希值D11279750A8421B8A0868863968FECF1来作为后续解密的导入密钥,如下红色部分为替换后的哈希值。


剖析海莲花组织恶意文件定制化策略


最终回到解密的流程中会发现可以解密成功,如下选中的一段数据为解密后的shellcode开头部分。


剖析海莲花组织恶意文件定制化策略


之后的逻辑是会申请内存空间,创建线程执行解密成功后的最终 shellcode。


剖析海莲花组织恶意文件定制化策略


幸好最终的 shellcode 实质属于知名攻防工具 CobaltStrike的beacon 程序,且并未存在利用受害机器唯一特征标识作为密钥而解密的逻辑,所以我们可以人工解析得到相关的配置如下,从配置上看确实也属于伪装了搜狗的应用程序的流量来欺骗相关的流量安全设备。

 

剖析海莲花组织恶意文件定制化策略




回顾展望




在2021年已经捕获的该组织相关攻击文件的具体表现方面,海莲花组织植入目标系统的后门依然存在定制化的特点,要解密后续的 shellcode 需目标主机某个特征标识(比如主机名、IP地址或者MAC地址)的hash值作为密钥才能成功解密,但是除了主机名、IP地址或者MAC地址外,我们还发现存在有针对当前加载的母体进程文件名的hash作为密钥的情况,而除了上述这些特征标识外,本文中提及的是采用系统安装时间的hash值作为密钥的逻辑。一路走来,在获取到的大部分恶意文件的分析过程中无一例外都会遭遇该类定制化的困难,我们无法获取更多价值信息,阻碍了对该组织的追踪与研究进展,然而这次属于比较幸运,攻击者在加密解密的编写逻辑过程中存在疏忽,留给了我们解决困难的机会,最终获取了更多价值信息。



深信服千里目安全实验室

剖析海莲花组织恶意文件定制化策略

深信服科技旗下安全实验室,致力于网络安全攻防技术的研究和积累,深度洞察未知网络安全威胁,解读前沿安全技术。

● 扫码关注我们


原文始发于微信公众号(深信服千里目安全实验室):剖析海莲花组织恶意文件定制化策略

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月13日22:07:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   剖析海莲花组织恶意文件定制化策略https://cn-sec.com/archives/736306.html

发表评论

匿名网友 填写信息