海莲花组织(Oceanlotus)近期疫情攻击样本分析

海莲花(OceanLotus),又称 APT32,2012 年 4 月至今,该*组织对中国*、科研院所、海事机构、海域建设、航运企业等相关重要领域展开了有组织、有计划、有针对性的长时间、不间断的攻击。

随着疫情在全球范围内爆发,越来越多的 APT 组织以疫情内容为诱饵发动攻击,国际上有 Kimsuky、Hades、APT28 等组织,国内在 2 月发现白象组织以疫情文件发起攻击,近期,我们又发现了海莲花以疫情内容作为诱饵攻击国内。

样本信息文件名:

“冠状病毒实时更新:中国正在追踪来自湖北的旅行者.docx”

“湖南省家禽 H5N1 亚型高致病性禽流感疫情情况.docx”

海莲花组织(Oceanlotus)近期疫情攻击样本分析

海莲花组织(Oceanlotus)近期疫情攻击样本分析

详细分析

该样本使用了海莲花组织常用的白加黑攻击模式,白加黑组合是利用 WPS 加载 krpt.dll。WPS 为国内的文本编辑软件,可见这批样本的目标明确,但该恶意 dll 的导出函数并不是正确的导出函数,在真正的 krpt.dll 中并没有_force_link_krpt 这个导出函数。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

首先在 DLL 的入口函数 DllEntryPoint 中,修改了宿主的代码,即修改 WPS.exe 的跳转,从而能够跳转执行恶意的导出函数_force_link_krpt。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

在_force_link_krpt 中,首先从资源中获取二进制代码进行解密,该 Dll 包含两个资源,分别为 101、102,其中 101 为后续恶意功能的 shellcode,102 为诱饵文档。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

首先解密出 102 的诱饵文档,将文档保存在临时目录%Temp%下,然后启动诱饵文档,然后就展现了开头的诱饵文档。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

然后从 101 资源中读取 shellcode 并执行。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

Shellcode 使用异或解密后续的代码,解***为 0x4b196670 与每轮解密出的一个 DWORD 相加之和

海莲花组织(Oceanlotus)近期疫情攻击样本分析然后尝试连接连接服务器,尝试从该服务器上下载一个 png 文件,同时将部分系统信息作为请求部分。下载地址为 https://libjs.inquirerjs.com/script/x.png?CH=[机器名]&UN=[用户名]&C=[系统版本号]

海莲花组织(Oceanlotus)近期疫情攻击样本分析

接收服务器的响应,如果服务器给与响应,就读取服务器响应数据,修改内存属性并执行服务器发送过来的 shellcode,根据以往经验,海莲花很喜欢下载 Cobalt StrikeBeacon 后门。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

不管是否下载成功,都会执行后续加载 PE 部分,将自身的内存进行解密,申请内存空间展开为一个 PE 文件,这个 PE 为{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll,从名字上看这个是海莲花组织常用的 Denis 后门。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

这种使用双重载荷的方法在 19 年末被发现使用,曾预测会在 20 年被频繁使用,这样做执行模式效率更高了。

接下来 shellcode 就直接调用{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll 的导出函数,Denis 会读取资源文件,然后将资源进行解密。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

由解密内容可知,主要包括 Unicode 字符串”ghijklmnopz”、注册表键值”software\app\appX70162486c7554f7f80f481985d67586d\applicationz”,”software\app\appX70162486c7554f7f80f481985d67586d\DefaultIcon”。注册表键值用作存储第一次发包时从服务器获取的 UUID,解密内容还包括用于通信的C2 域名。之后发送上线信息,如果是首次连接,C&C 会返回 1 个 UUID 作为 Session ID,并保存到注册表项中。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

然后,将随机数、系统时间、需要发送的系统信息,以及 UUID 整合到一起,经过加密后发送回 C&C 服务器。

海莲花组织(Oceanlotus)近期疫情攻击样本分析

如果接收到 C&C 指令,进入木马执行阶段,该木马主要具备以下功能:

MainCmd  Meaning

0  收集系统信息

1  设置会话 ID

2  以 pipe 方式创建进程

3  设置重连计数器

4  推迟轮询时间

5  读取文件或注册表键值,并计算哈希

6  创建进程

7  创建文件或注册表项

8  写注册表

9  查询注册表

10  查询指定文件

11  移动文件

12  删除文件

13  列出磁盘

14  创建目录

15  删除目录

16  从指定位置读文件

17  调用 httpprov 通信

18  未知

19  查询键值或执行文件

20  设置环境变量

21  执行 shellcode

22  获取环境变量

 

至此简单总结,这种执行双重载荷的方法已经被熟练应用到海莲花的工具中,这次的样本相比于 19 年末有了些许的变化,说明组织一直在更新其工具。据以往经验,这类样本在今年还会多次发现。

而且,海莲花组织也紧随热点,将疫情文件作为诱饵发起攻击,所以,受到和疫情相关的邮件,特别是邮件为疫情、救灾、国家政策等主题并带有附件或链接的需要特别注意,谨防黑客攻击。