背景
Donot APT组织是一个长期针对南亚地区(主要是巴基斯坦)实施网络间谍活动的APT组织,2017年6月,360威胁情报中心首次发现和曝光了该团伙针对巴基斯坦的定向攻击活动,并详细分析了该组织使用的EHDevel恶意代码框架。2018年3月,国外安全团队ASERT继续披露了该组织新的恶意代码框架yty,并根据PDB路径中的机器用户名将该组织命名为Donot。
Donot APT组织主要针对巴基斯坦等南亚地区国家进行网络间谍活动,该组织主要针对政府机构等领域进行攻击,其中以窃取敏感信息为主。从2017年至今,该组织针对巴基斯坦至少发动了4波攻击攻击行动,攻击过程主要是以携带Office漏洞或者恶意宏的鱼叉邮件进行恶意代码的传播,并先后使用了两套独有的恶意代码框架:EHDevel和yty。
自第一次发现该组织的攻击活动以来,360威胁情报中心对该组织一直保持着持续跟踪,近期我们再次跟踪到该团伙利用较新的Office Nday漏洞发起的新的攻击活动,并对攻击中使用的yty框架最新的恶意代码进行了详细分析。
Donot活动时间线
Donot APT组织攻击活动时间节点:
来源
2018年6月下旬,360威胁情报中心在对恶意代码的跟踪过程中发现疑似定向攻击的APT样本,通过对该样本的深入分析,并利用360威胁情报中心数据平台进行关联,确认其为威胁情报中心2017年首次发现的针对巴基斯坦的APT组织最新的攻击活动。
样本分析
捕获的诱饵文档文件名为:kahsmir issue abida.doc(克什米尔问题),克什米尔地区南部属于印度管辖,北部属于巴基斯坦管辖,两国均宣称对克什米尔全境拥有主权,一直以来处于地区主权纷争当中。因此我们初步推测该攻击主要针对该地区附近的国家。
样本执行流程
整个攻击流程如下:
载荷投递(CVE-2017-8570)
发现的样本是名为kahsmir issue abida.doc的漏洞利用文档,该漏洞利用样本包含三个Objdata,其中两个为Package对象,一个为包含CVE-2017-8570漏洞的OLE2Link。样本利用RTF文档自动释放Package对象的特性,将包含的两个Package对象释放至%TMP%目录下,最后通过CVE-2017-8570触发执行释放的恶意脚本,再通过脚本执行释放的EXE文件,Objdata对象信息如下:
包含漏洞的OLE2Link对象中设置File Moniker对应的文件为_JVGHBCYYKRAE2DU.sct脚本,漏洞触发后执行,其主要功能为执行释放在%TMP%目录下的Setup.exe:
Setup.exe
释放的Setup.exe是c++编写的下载者,首先创建一个名为”toptwo”的互斥,保证系统中只有一个实例运行:
在%APPDATA%Roaming/HexRun目录下创建名为lset.txt的调试文件,输出一些运行信息:
在%APPDATA%Roaming/HexRun创建kt.bat文件,通过创建cmd.exe新进程启动该文件:
kt.bat主要功能为设置任务计划,从当前时间开始每5分钟启动一次%APPDATA%Roaming/HexRun/Setup.exe:
设置完成的任务计划如下:
设置完任务计划后,样本开始收集系统信息,获取磁盘信息:
获取MAC地址:
检测是否为虚拟机执行环境:
之后还会收集计算机名,用户名,program file下文件名,系统版本号等信息,将获取的所有信息组合成以“|||”分割的字符串:
之后从google文档:
(http://docs.google.com/uc?id=1wUaESzjGT2fSuP_hOJMpqidyzqwu15sz&export=download)获取文件内容作为C2:
获取的文件名为customer.txt,c2地址为:tes.sessions4life.pw,若获取ioc失败则使用硬编码的c2: aoc.sessions4life.pw:
拷贝自身到%AppData%/Roaming/Hexrun目录下:
随后与c2进行通信,将获取的信息经过Rijndael加密后Post到tes.sessions4life.pw/football/goal:
当c2返回为“win”时,样本将进行后续的下载,若系统中没安装.net,样本会先从tes.sessions4life.pw/jszx/jquery/3x/simple.exe下载.net 框架进行安装:
若已有安装了.net则首先将收集到的计算机名-用户名-mac地址|||work.exe经Rijndael加密后POST到tes.sessions4life.pw/football/download/3/work.exe,获取work.exe文件。计算机名-用户名-mac地址|||boothelp.exe加密后post到tes.sessions4life.pw/football/download/2 获取boothelp.exe文件。Work.exe主要功能为启动boothelp.exe:
Boothelp.exe
Boothelp.exe是采用c#编写的后门,将根据c2返回的指令执行下载插件并执行。与Setup.exe一致,boothelp的c2地址也从google获取(https://drive.google.com/uc?authuser=0&id=1BUuYXU6bLdH_k_NWQIo7n5Uo_7L-uZSu&export=download),文档名为“ip2.txt”,内容即c2为:5.135.199.0
之后收集计算机信息:磁盘序列号,计算机名,用户名,系统目录,系统版本等信息:
与c2进行通信,post收集到的信息到5.135.199.0/football/flag:
接受c2指令,根据指令下载执行插件,具体指令对于插件入下表:
指令 | 下载地址 | 功能 |
ST | 5.135.199.0/football/download/2/dspcheck.exe | 截图插件 |
KT | 5.135.199.0/football/download/2/ mdriver.exe | 键盘记录插件 |
ZT | 5.135.199.0/football/download/2/ abode.exe | 文件选择上传插件 |
TT | 5.135.199.0/football/download/2/ vstservice.exe | 文件列表插件 |
TS | 5.135.199.0/football/download/2/ mboard.exe | 系统信息插件 |
插件分析
vstservice.exe
vstservice.exe是.net程序,功能为收集文件发送到c2,与之前的文件一致,其c2也来源于google(http://docs.google.com/uc?id=1J28TUXZH0BLQZpSCOv_xMRUJVv5z7jso&export=download),文档名为goods.txt,内容为qwe.sessions4life.pw。与前面分析的样本一致,该插件中也硬编码了一个c2: mon.sessions4life.pw
获取系统磁盘
判断磁盘是固定磁盘且%appdata%/Roming/vstservice/ vstservice 目录下没有.man结尾的文件,则在改磁盘下收集文件
收集磁盘内.ppt/.doc/.pdf/.rtf等文件
将上述格式文件保存到%appdata%/Roming/vstservice/ vstservice目录下的“磁盘名.doc”中,并以文件名>文件大小>最后修改时间的格式保存
将出上述格式外的文件保存到%appdata%/Roming/vstservice/ vstservice目录下的“磁盘名.man”中
之后将文件发送到c2: mon.sessions4life.pw/panel/bigdata/file_upload
abode.exe
该文件主要功能是上传除vstservice.exe之外的其他插件生成的文件以及c2指令中的文件(vstservice.exe具有与c2通信的功能,其他插件没有),同样的,与其他yty框架中的文件相同,adode.exe的c2来源于google,且与vstservice.exe使用相同的c2.
之后定期发送其他插件生成的文件到c2,并根据c2返回指令发送指定文件
获取插件生成文件
之后将“计算机名-用户名-MAC地址”经加密后发送到mon.sessions4life.pw/panel/bigdata/orderfile获取指定文件名。
上传指定文件到mon.sessions4life.pw/panel/bigdata/file_upload
mdriver.exe
mdriver.exe插件是c++编写的键盘记录器,该插件主要功能记录键盘输入,并保存到%user%/LanConfig/ mdriver/mdriver目录下
保存的键盘输入格式如下
dspcheck.exe
截图插件,每五分钟截屏一次,并以文件名格式为”日 月 年 时 分 秒”保存到” %user%/LanConfig/dspcheck/dspcheck.exe”下
mboard.exe
mboard.exe利用upx加壳,脱壳后,根据字符串相关信息可知是go语言编写的程序,该插件创建多个cmd进程执行命令,获取系统相关信息,并将获取的信息保存到” %user%/LanConfig/ mboard/ mboard下,并以.qr结尾。获取系统中的doc,pdf,msg文件保存到” %user%/LanConfig/ mboard/ mboard目录下
相关cmd命令如下表
命令 | 功能 |
dir /a /s 磁盘名:/; | 获取磁盘相关文件 |
systeminfo | 获取系统信息 |
Ipconfig /all | Ip相关信息 |
net view | 当前域的计算机列表 |
tasklist | 进程列表 |
溯源与关联
通过对此次攻击中使用的PDB路径、域名/IP关联分析,以及使用360威胁情报中心分析平台对相关样本和网络基础设施进行拓展,我们确认此次攻击的幕后团伙为威胁情报中心2017年首次发现的针对巴基斯坦的APT组织xxxx。
PDB关联
在分析的Setup.exe中我们发现一个特殊的PDB路径:
根据其PDB路径特征确定该样本使用的是yty恶意框架,其与ASERT披露的dspcheck.exe插件PDB路径一致(详见参考[3]):
域名关联
通过360威胁情报中心数据平台对域名tes.sessions4lif4.pw进行搜索,左下角可见我们已收录了相关报告。
而该报告引用了360威胁情报中心在2017年6月发布的一篇名为《针对巴基斯坦的某APT活动事件分析》的文章:
可以看到本次事件中使用的域名 tes.session4life.pw在17年时就已经被该APT组织使用:
紧接着我们发现Setup.exe中有一个经过base64编码的目录football/download2:
我们尝试在tes.session4life.pw/football/download2目录下获取文件,并成下载了一个名为helpdll.dll的文件,该文件采用c#编写,经分析该文件与ASERT披露的boothelp.exe文件结构基本一致:
且在helpdll.dll 的getGoogle方法中,我们同样的发现了一个google文档下载地址(https://drive.google.com/uc?authuser=0&id=1BUuYXU6bLdH_k_NWQIo7n5Uo_7L-uZSu&export=download),下载回来的文件名为ip2.txt,内容为一个ip地址:5.135.199.0。
通过360威胁情报中心数据平台对ip进行查询,成功关联到Donot APT组织(2018年5月被ASERT命名的APT组织)
总结
自2017年首次发现Donot组织以来,该组织从EHDevel框架到如今的yty框架一直在不断进行更新,以躲避安全分析人员检测。
本次捕获的样本框架较三个月前,功能虽然一致,但其字符串全部经倒叙后再经base64加密,且在数据传输中,不再采用明文传输的方式,而是将获取的系统信息等经Rijndael加密后进行发送。种种迹象表明,Donot从未停止自己的活动,或许近期会再次发动针对南亚的网络间谍活动。
IOC
C&C |
tes.sessions4life.pw |
aoc.sessions4lif4.pw |
qwe.sessions4life.pw |
mon.sesions4life.pw |
5.135.199.0 |
文件MD5 |
f422bc9c0d0b9d80d09ee1fc7aed3682 |
3fca54599f30f248246f69290c07696e |
e534cf9606a1b9f9a05c6c5514603f77 |
ff630e55e7278aab1683c7fdc23e9aa9 |
56e2df3cd980763b2a81e83a452383ff |
1278dbbcb4b7e6696c3c4bddc899001e |
4c2e7108aecafc0dec046a0365ce4471 |
7075cd558285d7477486c2d4558616a9 |
603286d46d1909e0c18d6664576f6259 |
6afdc230df3b88232eeafa96abb18190 |
c3b46c33b58d11fce800a5ec497fdd7a |
1d5e98fc11a1fc4e166010ba78ef907d |
004d7a567705f9d780e52db6531ee7de |
317bbfaf910403152b8d05fc97648944 |
136f84e3fc794e99df35a3ab56b7998b |
86828e3b5bf5daf35988339815b5991e |
3d2fa81fb093136655e046b80cdb4242 |
52ac6664478a32b5cabdaa54278b4229 |
c82bb37071e2db07c128042f9b22af0f |
PDB路径 |
D:/Soft/DevelopedCode_Last/yty2.0/Release/C++/Setup.pdb |
c:/users/803/documents/visualstudio2010/Projects/helpdll/Release/helpdll.pdb |
参考
[1]. https://ti.360.net/blog/articles/pakistan-targeted-apt-campaign/
[2].https://labs.bitdefender.com/wp-content/uploads/downloads/ehdevel-the-story-of-a-continuously-improving-advanced-threat-creation-toolkit/
[3].https://asert.arbornetworks.com/donot-team-leverages-new-modular-malware-framework-south-asia/