APT团伙(APT-C-01)新利用漏洞样本分析及关联挖掘
信息安全公益宣传,信息安全知识启蒙。
加微信群回复公众号:微信群;QQ群:16004488
加微信群或QQ群可免费索取:学习教程
教程列表见微信公众号底部菜单
APT-C-01组织是一个长期针对国内国防、政府、科技和教育领域的重要机构实施网络间谍攻击活动的APT团伙,其最早的攻击活动可以追溯到2007年,团伙擅长对目标实施鱼叉攻击和水坑攻击,植入修改后的ZXShell、Poison Ivy、XRAT商业木马,并使用动态域名作为其控制基础设施。
360威胁情报中心对日常的在野恶意代码跟踪流程中发现疑似针对性的APT攻击样本,通过对恶意代码的深入分析,利用威胁情报中心数据平台,确认其与内部长期跟踪的APT-C-01团伙存在关联,并且结合威胁情报数据挖掘到了该团伙更多的定向攻击活动。
木马分析
基于开源威胁情报,360威胁情报中心发现http://*****einfo.servegame.org域名地址托管了多个攻击恶意代码和恶意HTA文件,其用于攻击载荷的下载和分发。
Dropper分析
通过结合对此恶意代码分发域名上的恶意载荷分析,推测其应该使用CVE-2017-8759漏洞文档来投放第二阶段的攻击载荷,由于目前暂未关联到实际用于攻击活动的漏洞文档文件,结合该团伙过去的攻击特点,其应该是用于邮件鱼叉攻击。
并且进一步下载恶意的HTA文件,其执行PowerShell指令下载Loader程序,保存为officeupdate.exe并执行。
Loader分析
根据Loader程序中包含的字符串信息,制作者将其命名为SCLoaderByWeb,版本信息为1.0版,从字面意思为从Web获取的Shellcode Loader程序。其用来下载执行shellcode代码。
Loader程序首先会尝试连接www.baidu.com判断网络联通性,如果没有联网,会每隔5秒尝试连接一次,直至能联网。
然后从http://*****einfo.servegame.org/tiny1detvghrt.tmp下载payload,如图:
接着判断文件是否下载成功,如果没有下载成功会休眠1秒后,然后再次尝试下载payload:
下载成功后,把下载的文件内容按每个字节分别和0xac,0x5c,0xdd异或解密(本质上就是直接每个字节异或0x2d),如图:
之后把解密完的shellcode在新创建的线程中执行,如图:
Shellcode分析
分发域名地址托管的.tmp文件均为逐字节异或的shellcode,如下图为从分发域名下载的tinyq1detvghrt.tmp文件,该文件是和0x2d异或加密的数据。
解密后发现是Poison Ivy生成的shellcode,标志如下:
通过分析测试Poison Ivy木马生成的shellcode格式与该攻击载荷中使用的shellcode格式比较,得到每个配置字段在shellcode中的位置和含义。
其shellcode配置字段的格式详细如下:
在分析Poison Ivy中获取kernel32基址的代码逻辑时,发现其不兼容Windows 7版本系统,因为在Windows 7下InitializationOrderModule的第2个模块是KernelBase.dll,所以其获取的实际是KernelBase的基址。
由于Poison Ivy已经停止更新,所以攻击团伙为了使shellcode能够执行在后续版本的Windows系统,其采用了代码Patch对获取kernel32基址的代码做了改进。
其改进方法如下:
在原有获取kernel32基址代码前增加跳转指令跳转到shellcode尾部,其patch代码增加在尾部;
patch代码首先获取InitializationOrderModule的第2个模块的基址(WinXP下为kernel32.dll,WIN7为kernelbase.dll);
然后获取InitializationOrderModule的第二个模块的LoadLibraryExA的地址(WinXP下的kernel32.dll和WIN7下的kernelbase.dll都有这个导出函数)
最后通过调用LoadLibraryExA函数获取kernel32的基址。
攻击者针对shellcode的patch,使得其可以在不同的Windows系统版本通用。
该shellcode的功能主要是远控木马的控制模块,和C2通信并实现远程控制。这里我们在Win7系统下模拟该木马的上线过程。
对控制域名上托管的其他shellcode文件进行解密,获得样本的上线信息统计如下:
行动ID | 上线域名 | 端口 | 上线密码 | 互斥体 |
2017 | *****e.*o.dyndns.org | 5566 | !@#3432!@#@! | )!VoqA.I4 |
bing | *****1789.dynssl.com | 8088 | zxc5566 | )!VoqA.I4 |
ding1 | *****ftword.serveuser.com | 53 | 1wd3wa$RFGHY^%$ | )!VoqA.I4 |
ding2 | *****il163.sendsmtp.com | 53 | 1wd3wa$RFGHY^%$ | )!VoqA.I4 |
geiwoaaa | *****aaa.qpoe.com | 443 | wyaaa8 | )!VoqA.I4 |
jin_1 | *****opin.mynumber.org | 80 | HK#mq6!Z+. | )!VoqA.I4 |
jin_2 | *****ngonly.rebatesrule.net | 53 | ~@FA<9p2c* | )!VoqA.I4 |
justdied | www.ser*****.*****died.com | 80 | ppt.168@ | )!VoqA.I4 |
pouhui | *****hui. *****tation.org | 53 | index#help | )!VoqA.I4 |
tina_1 | *****date.ocry.com | 80 | 168168 | )!VoqA.I4 |
tina_2 | *****prp.ezua.com | 53 | 116688 | )!VoqA.I4 |
tony_1 | *****update.dynamic-dns.net | 80 | 0A@2q60#21 | )!VoqA.I4 |
tony_2 | *****patch.dnset.com | 53 | aZ!@2q6U0# | )!VoqA.I4 |
关联分析
通过进一步分析攻击载荷的回连C&C域名,发现大部分域名都是ChangeIP动态域名,从子域名的命名,攻击者更喜欢采用和Office,系统更新,163邮箱和招聘网相关的命名关键词。
1.结合360威胁情报平台对C&C域名进行关联分析。这里我们对该团伙这次行动中(ding2.exe)使用的C&C域名*****il163.sendsmtp.com进行分析,其当前解析IP为*****.*****.171.209。
2.通过进一步查询IP历史映射域名,发现域名pps.*****usic.com对应内部发现的APT-C-01组织历史使用的域名。
3.通过搜索pps.*****usic.com这个域名,得到关联样本。
该样本为该组织早期的攻击恶意代码。
4.查询该域名历史解析IP。
5.对域名历史映射的IP地址***.***.114.161进行查询,发现*****e165.zyns.com域名,这个域名同样也是ChangeIP动态域名,并且曾经用于CVE-2017-0199的漏洞文档。
该漏洞文档是一个关于十九大的PPT,其最后修改时间为2017年12月12日。根据文档文件中的元数据,可以推测攻击者从网上检索到了“杨建华”制作的学习十八大党章的PPT文档,由名字为"steusr"的用户最后修改该文档内容制作为诱导文档。
该漏洞文档会下载执行一个HTA文件。
总结整体关联展示如下图所示:
总结
基于我们对该APT团伙的长期跟踪,结合本次攻击Campaign的细节我们对团伙的攻击战术技术如下:
攻击团伙名称 | APT-C-01 |
攻击入口 | 鱼叉攻击投放漏洞文档 |
受影响应用 | Windows系统 |
使用漏洞 | CVE-2017-8759、CVE-2017-0199 |
恶意代码及工具 | Poison Ivy |
控制基础设施资源 | 动态域名,主要为ChangeIP动态域名 |
主要攻击战术技术特征分析 | 1.使用鱼叉邮件投放漏洞文档,其用于下载执行恶意的HTA文件; 2.使用PowerShell下载执行第一阶段载荷; 3.修改Poison Ivy生成的shellcode作为命令控制模块; 4.使用动态域名进行命令控制,并且子域名通常伪装成Office,系统更新,163邮箱和招聘网相关内容; |
攻击者通过使用动态域名和公开的木马来隐藏自身更多的标记信息,增加了追溯的难度,并且更加容易与普通的木马攻击事件相混淆。但从本次攻击活动的分析我们也可以发现对于攻击团伙和其拥有的资源丰富程度,其通常并非拥有无限的控制基础设施资源,所以当持续积累了足够的基础设施相关数据,并结合威胁情报的持续运营,往往可以将看似独立的事件关联到一起并确定指向。