组织首次针对我国重要机构定向攻击活动披露

后门攻击流程

该组织在攻破主机后,会在失陷主机上部署最新V4版本的后门程序,在内存中加载各种功能插件进行攻击活动。该后门程序的执行流程如下图所示:

具体的执行流程:

1.Skype的升级服务程序被持久驻留执行

2.Skype的升级程序加载同路径下的wtsapi32.dll执行

3.wtsapi32.dll读取注册表HKCR\Software\Appdatalow\Software\Skype下的数据,并解密执行Loader组件。

4.Loader组件读取注册表HKCR\Software\Appdatalow\Software\Skype下数据,解密执行其他的攻击插件。

各模块对应功能如下表所示:

样本

功能

Skype update serivce

Skype的升级服务程序

wtsapi32.dll(Miniloader)

Loader加载程序

Loader

插件加载程序

comti.dll

通信模块

lngwyztn.dll

磁盘文件信息记录模块

scpctr.dll

屏幕截图模块

whtnwfc.dll

磁盘文件内容记录模块

kltgtr.dll

键盘记录模块

攻击组件分析

1Skype Update Service

由于原版的Skype升级服务程序在加载wtsapi32.dll动态库时未对其合法性进行验证,被该组织作为DLL恶意荷载的白利用加载程序。

信息

编译时间

2014-12-11 18:20:55

公司名称

SkypeTechnologies

文件描述

SkypeUpdater Service

2初始加载器 - Miniloader

该组件的模块名为MiniLoader,组件通过Skype更新服务程序的加载执行,主要功能是通过解密注册表HKCU\Software\AppDataLow\Software\Skype数据,获得插件模块并加载功能插件Loader。MiniLoader文件信息如下。

信息

样本名

wtsapi32.dll

路径

%appdata%\{rand10()}\wtsapi32.dll

编译时间

2020年01月08日

在MiniLoader在首次被加载时,在对本身的文件格式进行校验之后,修改入口点代码,将功能函数地址赋值给ebx,然后跳转ebx,这样当发生如DLL卸载等事件时可以执行功能函数。

功能函数主要实现在注册表HKCU\Software\AppDataLow\Software\Skype下获取加密的数据

在获取Payload数据后,程序会使用rc4加密算法解密还原Payload

最终查找Payload即第一个插件(Loader)入口点,并通过CreateThread函数在内存中执行荷载。

3插件 - Loader

信息

编译时间

2020-01-08 19:27:20

类型

32位exe

Loader为EXE文件类型,是负责解密加载其他功能插件的核心组件。在其main函数中,首先加载序号为大于2的功能插件,然后加载序号为2的通信功能插件。

其通过递增插件序号,加载其他功能的插件执行。

最终获得插件的导出函数Start,通过CreateThread调用在内存中执行。

4插件 - 通信后门

通信组件模块名为Comti.dll,主要负责命令控制和数据传输,利用Winnet API上传其他插件模块所产生的数据,如屏幕截图,键盘记录等信息,以及负责植入后续攻击组件。攻击者会使用后门版本号加C盘VolumeSerialNumber计算设备唯一标识符,用以标记中招机器。

信息

编译时间

2020-03-05 19:07:10

类型

32位dll

导出模块名

Comti.dll

程序使用后门版本号加VolumeSerialNumber标记中招机器。

对屏幕截图,磁盘记录等插件产生的文件进行上传操作,上传之后删除数据

获取C&C下发的控制命令数据,进行植入攻击组件动作或删除攻击组件动作

攻击组件的植入有两种方式:

1.植入到注册表中,通过Loader调用CreateThread函数在内存中执行,为后门默认的插件执行方式。

2.植入到磁盘中,通过调用CreateProcess直接执行,执行方式是由C&C命令控制发起。

5插件 - 磁盘文件信息搜集

该组件模块名为lngwyztn.dll,主要负责收集中招计算机文件信息。

信息

编译时间

2018-09-11 23:32:39

类型

32位dll

导出模块名

lngwyztn.dll

该组件会遍历磁盘搜集文件信息

搜集的文件信息包括路径信息和文件大小,搜集到的信息异或加密,最终以压缩包形式保存

6插件 - 屏幕监控

该组件模块名为scpctr.dll,主要负责收集中招计算机指定屏幕截图信息。截屏的图片以bmp格式打包到zip中,再将zip数据加密为*.tbl的文件保存。

信息

编译时间

2019-03-26 21:37:38

类型

32位dll

导出模块名

scpctr.dll

调用系统API实现截屏,图片类型是bmp格式

将截屏的bmp数据添加到zip压缩包

加密zip数据,以infloc_sc*.tbl等文件名保存。

7插件 - 键盘监控

该组件模块名为kltgtr.dll,主要负责收集中招用户计算机的键盘记录信息。

信息

编译时间

2019-03-26 21:37:06

类型

32位dll

导出模块名

kltgtr.dll

功能为键盘记录,并写入文件隐藏,生成的键盘记录日志名根据格式化字符串而变化。例如:“ inf_loc_ky_%u_%02d%02d%02d%02d%02d_.tbl ”,其中%u通过 GetVolumeInformation 获取的磁盘信息生成, %02d%02d%02d%02d%02d 是记录时间。

8插件 - 磁盘文件窃取

该组件模块名为whtnwfc.dll,主要负责收集中招计算机指定文件的文件内容。

信息

编译时间

2018-09-13 21:58:54

类型

32位dll

导出模块名

whtnwfc.dll

文件内容记录组件尝试读取 rdctv.tmp , rdctv.tmp2 或 rdctv.cab 的加密配置文件,对以上文件内容进行解密后获取想要窃取的文件信息。

创建infloc_fiz.tmp,将想要获取的文件使用zip库压缩至infloc_fiz.tmp文件

读取infloc_fiz.tmp的文件内容,使用0x800个字节为一组进行加密,加密压缩后的数据后,将数据写入infloc_o_fi”VolumeSerialNumber”_0为文件名的文件中,并将加密次数写入rdctv.ind文件中

对抗手法

1填充无用数据

MiniLoader样本中填充大量的无用数据使其膨胀为超大文件以实现规避安全软件的静态扫描。

2导出函数参数

功能插件DLL全部功能是通过导出函数start实现的,接受的参数a1只是用来做判断,以实现反自动化系统分析。

关联分析

基于本次攻击行动中V4版本和StrongPity早期版本进行关联比较,主要从解密算法、代码结构、通信数据格式等关联分析。

1解密算法关联

本次攻击活动样本解密算法和早期样本的模式类似

2代码结构关联

本次攻击活动样本和早期样本的代码结构相似。如下图,左图为本次攻击活动中样本获取WinnetApi函数代码结构,右图为公开样本的代码结构。

3通信数据格式关联

本次攻击活动样本和早期样本都会使用相同FromData格式的HTTP请求上传数据。如下图,本次样本和公开样本具有相同参数的FromData字段。

本次样本中上传文件的FromData格式

4导出函数关联

本次攻击活动样本和早期样本的导出函数结构相似

附录 IOC

MD5:

d54de33412fc967fef50899ec62a41c7
4477ab2bc31cf3a2e8535967489cdc4b
5963ae6ae5510c5a04b02e18a11d5c1b
9a10108321d2aa0edaa00ebaecb6bb90
9d212f33a37df2c550a981b10c295788
adcdd7cde9e6d2e05bbf9011d50999cf
d3a7a52f1b6e8c91a16f1ed0ab360e3a

最后更新于