首页
社区
课程
招聘
[原创]APT32组织攻击样本分析报告系列-第一篇
发表于: 2020-5-18 17:12 6844

[原创]APT32组织攻击样本分析报告系列-第一篇

2020-5-18 17:12
6844


      很久前分析的APT32组织相关的样本,稍微整理下分析相关的材料(包括IDA7.0的idb文件、提取的宏文件、解混淆后的宏文件、调试shellcode代码),发出来给朋友们参考参考。希望能给大家一点点帮助!

      链接: https://pan.baidu.com/s/1OYGdZ9jbH_65LTwDtpiczQ 提取码: ak4q


目 录

1 基本信息

2 攻击流程图

3 病毒母体分析

4 RASTLS.DLL 分析

4.1 白签名利用

4.2 劫持宿主进程控制权

4.3 OUTLFLTR.DAT文件解析

4.4 加载DLL外壳模块

4.5 {92BA1818-0119-4F79-874E-E3BF79C355B8}.DLL分析

4.6 {A96B020F-0000-466F-A96D-A91BBF8EAC96}.DLL 行为分析

4.7 后门通信分析

4.8 后门功能分析

5 技术特点总结

6 IOC


样本MD5

877ecaa43243f6b57745f72278965467

样本名

WinWord.exe

样本文件大小

2,395,648字节

样本类型

后门

样本描述

伪装图标为winword程序,诱骗用户执行后释放并执行白签名利用木马后门。

分析时间

2018年11月

 

图 样本攻击流程图

此病毒常可能被伪装为WinWord.doc.exe,因windows系统默认不显示后缀名,导致实际显示的后缀名为WinWord.doc,达到欺骗用户的目的。

病毒母体WinWord.exe被执行,首先会在%temp%目录释放执行伪造的欺骗文档WinWord.doc,并且还在C:\Program Files\UsbCeip_3410992958\”目录下释放拥有赛门铁克签名的正常文件UsbCeip.exe、后门木马rastls.dll、被加密的shellcode文件OUTLFLTR.DAT,随后创建名称为“UsbCeip”的计划任务,使后门木马rastls.dll常驻用户电脑,并根据云控指令伺机窃取机密信息或进行下一阶段攻击。                                            

图:病毒母体运行流程图

图:欺骗文档WinWord.doc

UsbCeip.exe 为携带Symantec(赛门铁克)签名的正常exe文件,原始名为dot1xtra.exe,这是典型的白加黑利用技术,带有效签名的exe运行后会自动加载木马文件rastls.dll。

图:签名信息

图:文件详细信息

rastls.dll模块被加载后,会将宿主exe即UsbCeip.exe 0×401000(默认基址为0×400000)开始的一大片代码修改为无实际作用的滑板指令,并在宿主exe代码段尾部嵌入HOOK指令,使之程序执行流从宿主exe转到rastls.dll模块。

图:无实际作用的滑板指令

图:劫持宿主进程控制权

本次攻击中使用的关键模块文件都加入了大量混淆、花指令,主要是为了干扰分析人员分析其核心代码,例如加解密函数被加混淆、花指令代码膨胀后高达2000多行,被干扰后无法进行静态分析,极大的增加了工作量。且此技术可对抗杀毒引擎的分析检测,具有一定免杀效果。

花指令代码如下所示:

图:花指令

正常代码一般为线性的执行代码,混淆之后的代码则是上跳下跳,使分析人员无法正常进行分析。

混淆后的代码如下所示:

图:代码混淆

rastls.dll会在获取执行权限后加载OUTLFLTR.DAT文件,进行两次解密后得到一段shellcode,随后便跳转到这段的shellcode首部开始执行。

图:读入OUTLFLTR.DAT文件

图:第一次解密密钥

图:第一次解密算法截图

图:第二次解密关键代码

OUTLFLTR.DAT中的shellcode被执行后,会自加载shellcode中存储的一个名为{92BA1818-0119-4F79-874E-E3BF79C355B8}.dll模块,接着执行此dll的导出函数DllEntry。

图:OUTLFLTR.DAT文件解密出的shellcode代码

 

该dll的主要功能为加载后续的攻击载荷{ A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll,主要的功能并不在此模块之中。此dll模块会从资源中解密出{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll文件,并在内存中自加载此dll,随后执行此dll的导出函数DllEntry。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-5-18 19:28 被AYZRxx编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (5)
雪    币: 300
活跃值: (2452)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
mark
2020-5-18 20:28
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mark
2020-5-19 06:51
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark
2020-5-28 22:39
0
雪    币: 883
活跃值: (884)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
mark
2020-5-28 23:40
0
雪    币: 20
活跃值: (27)
能力值: ( LV2,RANK:12 )
在线值:
发帖
回帖
粉丝
6
Hi,请教一下后面解密出的C2那一块的DLL,是怎么静态分析的,我只能在OD运行,DUMP后IDA的代码反汇编的很烂
2020-5-29 11:42
0
游客
登录 | 注册 方可回帖
返回
//