DarkPink近期攻击活动分析报告

1 概述
安天CERT近期监测到多起APT组织DarkPink针对印度尼西亚外交部门及菲律宾军事部门的攻击活动。DarkPink(又称saaiwc)组织最早在2021年年中开始活跃,其主要攻击目标为柬埔寨、印度尼西亚、马来西亚、菲律宾、越南、波斯尼亚和黑塞哥维那等国家的外交、军事等部门及行业。
本次发现的攻击活动的初始样本均为打包的ISO文件,按照攻击流程可分为两类:一类是采用DLL侧加载的方式,释放包含恶意XML文件载荷并通过修改注册表实现持久化。恶意DLL还会创建计划任务定时注销登录用户,在登录Windows用户时,通过调用MSBuild.exe(Microsoft 生成引擎)启动恶意载荷KamiKakaBot[1],实现远程控制功能;另一类采用DLL侧加载攻击的方式进行初始攻击,恶意DLL解密出PE文件并在内存中加载执行,内存中的PE文件会将启动代码添加至注册表中实现持久化,启动代码用于解密并启动恶意载荷TelePowerBot[1],实现远程控制功能。
2 样本分析
2.1 使用KamiKakaBot的攻击活动
2.1.1 诱饵信息
攻击者使用名为“~MSTIP ROTCU Roster of Cadets and List of Training Staff_emb.doc”(意为“MSTIP ROTCU学员名册和培训人员名单”)的诱饵文档,用来伪装成菲律宾马卡蒂科学技术学院预备役军官训练团的学员名册和培训人员名单。

攻击者使用名为“Availability of HPA Parade Ground.pdf”(意为“HPA 阅兵场的可用性”)的诱饵文档,用来伪装成菲律宾首都地区社区防御集团请求使用HPA 阅兵场的文档。

攻击者使用名为“~Concept Note Strategic Dialog Version 30.1.docx”(意为“概念说明战略对话版本 30.1”)的诱饵文档,用于伪装成印尼-德国战略会话内容相关的诱饵。

攻击者使用名为“009 -Visit of Norwegian senior diplomats to Jakarta 6-9 February.pdf”(意为“009-挪威高级外交官于2月6日至9日访问雅加达”)的诱饵文档,用来伪装成挪威皇家大使馆发送关于外交官访问雅加达的诱饵,根据诱饵文件内容猜测,攻击目标为印度尼西亚共和国外交部或相关人士。

攻击者使用名为“~Concept note - A Sustainable Forum - Building the Online Resources of the EAMF 16 Dec 2022_emb.doc”(意为“概念说明-可持续论坛-建设EAMF的研究能力2022年12月16日”)的诱饵文档,用来伪装成发件人MA. THERESA P. LAZARO(菲律宾外交部负责双边关系和东盟事务的副部长)的身份,诱饵内容与“澳大利亚关于扩大东盟海事论坛提案的修订概念说明”相关,根据其内容及收件人猜测其攻击目标为东盟高管会的领导人或相关人士。


2.1.2 攻击流程
DarkPink组织构造包含恶意代码及诱饵文件的ISO镜像,通过鱼叉式钓鱼等方式投递到目标机器,诱导用户打开镜像中伪装成文档的exe文件,以DLL侧加载的形式加载恶意模块。恶意模块运行后会读取诱饵文档尾部的数据,解密出XML格式的文件,并建立持久化机制,每当用户登陆时,调用PowerShell打开MSBuild.exe文件执行恶意XML文件,将XML文件中存放的数据解密后加载到内存中执行。解密后的数据为KamiKakaBot[1],用于与Telegram通信并实现浏览器数据窃取、命令执行等功能。

2.1.3 样本标签
表 2‑1 ISO中包含的恶意模块MSVCR100.dll

该组织采用DLL侧加载的形式加载恶意模块以规避检测,加载的恶意模块伪装成MSVCR100.dll(Visual Studio 2010的一个动态链接库文件)。

恶意模块加载后,查找当前目录下的满足以下条件的文件:
① 含有隐藏、只读、系统属性;
② 文件名中包含“.doc”和“~”;
③ 文件名中不包含“$”。

恶意模块从诱饵文件尾部读取数据并进行十六进制异或0xCA的操作,直至遇到0x00停止。

恶意模块将处理后的数据写入到%temp%目录下的wct1FDA.tmp文件中,该文件的内容如下图所示。

文件生成后通过cmd命令打开诱饵文档,用以假扮正常的文档打开操作。

恶意模块新建环境变量MS、TMPT、PSS,后续设置到注册表中的PowerShell代码会使用到环境变量的值。

恶意模块通过创建计划任务,感染机器于每周星期三、星期五的13:15强制注销,使用户需要重新登录,执行PowerShell指令。

恶意模块设置注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell的值,在登录Windows用户时启动恶意代码。

PowerShell调用MSBuild.exe加载XML文件。首先解码base64数据,并将每个字节xor十进制248,解密后得到KamiKakaBot[1]的修改版本。而后通过GetExportedTypes与InvokeMember方法匹配到程序中的PRLiSNFR方法执行。

KamiKakaBot[1]执行后,首先收集当前设备名、用户名以及部分字符串,而后获取与Telegram通信的API KEY和CHAT ID。

KamiKakaBot[1]样本内部存在字符串解密函数,解密函数通过FNV算法进行hash处理调用该函数的函数名,而后进行移位操作并同设定好的数值相加获取到字符串在数组中的位置,进而获取解密后的字符串。

KamiKakaBot[1]通过Telegram回传数据。

KamiKakaBot[1]判断%LOCALAPPDATA%\desktop.ini.dat文件是否存在。若不存在,创建该文件并以“main.APIKEY中的第15字节后15个字节长度的字符串”+“:0”的形式写入到文件中,并将该文件设置为隐藏属性。若存在,读取文件内“:”前面的内容并与main.APIKEY中的第15个字节后15个字节长度的字符串进行比较,相同则返回“:”后面的内容,不同则修改该文件的内容,以“main.APIKEY中的第15个字节后15个字节长度的字符串”+“:0”的形式存储,并将其设为隐藏属性。

KamiKakaBot[1]通过requestMessageID函数的返回值来判断当前机器是否首次感染当前版本的KamiKakaBot,将是否首次感染的信息与Chrome、Edge、Firefox浏览器的数据发送至Telegram,等待回传至受害机的数据。

KamiKakaBot[1] 接收从Telegram回传的数据,并对数据进行解析判断以实现对应的功能,下表为KamiKakaBot中的指令及对应功能:
表 2‑2 指令及对应功能

2.2 使用TelePowerBot的攻击活动
2.2.1 诱饵信息
诱饵文档名为“20220410_Microsoft Security Update.pdf”。该文档为仿冒微软安全更新主题的文档,从诱饵文档的正文内容可以看出此次攻击活动为针对菲律宾军事领域的攻击活动。

2.2.2 攻击流程
DarkPink组织构造包含恶意代码及诱饵文件的ISO镜像,通过鱼叉式钓鱼等方式投递到目标机器,诱导用户打开镜像中伪装成文档的exe文件,以DLL侧加载的形式加载恶意模块。恶意模块运行后会读取诱饵文档尾部的数据,解密出PE文件并在内存中加载执行,内存PE文件负责打开诱饵文档以及将启动代码添加至注册表实现持久化。在每次开机后启动代码均会执行,解密出TelePowerBot[1]恶意载荷实现收集信息、命令执行功能。

2.2.3 样本标签
表 2‑3 ISO中包含的恶意模块MSVCR100.dll

攻击者同样采用DLL侧加载的方式规避检测,加载的恶意模块将会从诱饵文件尾部读取数据并进行解密操作。

解密后的数据为PE文件,在内存中加载PE文件并执行。

加载到内存中的PE文件执行后首先会创建互斥量,而后通过cmd命令打开诱饵文档掩饰恶意行为。

修改注册表,设置后续脚本运行所需读取的环境变量,并通过设置UserInitMprLogonScript键值实现持久化。为.abcd后缀的文件添加文件关联,从而每次系统启动时链接到启动代码,启动代码主要通过SyncAppvPublishingServer.vbs运行PowerShell代码,异或解密base64编码的数据并执行。

在系统每次启动后执行该命令,base64数据解码后进行异或解密。

脚本经过解混淆后,对存放的base64数据解码并解压缩,最终执行的载荷为TelePowerBot[1]。脚本运行后首先会判断与api.telegram.org的连接状态,而后将收集受害机的基本信息并传回Telegram。之后每隔一分钟循环同Telegram通信,接收命令并将命令结果回传至Telegram。

3 关联分析
结合DarkPink组织以往攻击活动样本分析,在攻击流程和使用的攻击组件方面均具有高度相似性,但细节上存在一定程度变化。
本次攻击活动中的XML文件和先前版本的内容及功能大致相同,但在解码base64的后续载荷数据后,又多进行一次异或操作。

.NET载荷功能基本相同,但同比先前版本增加了字符串加密函数,提高分析难度。

4 威胁框架映射
DarkPink组织相关攻击活动的行为技术点的ATT&CK框架图谱如下所示:

本次活动共涉及ATT&CK框架中9个阶段的16个技术点,具体行为描述如下表:

5 总结
DarkPink组织自2021年年中以来,一直处于活跃状态,持续针对东南亚地区进行攻击,且目前使用到的工具几乎均为其自研工具。在近期发现的攻击活动中,攻击者通过DLL侧加载的形式释放后续载荷并实现持久化操作,利用受信的开发工具MSBuild.exe或者直接利用加密的PowerShell脚本启动恶意载荷,且到目前为止,发现受感染的主机与攻击者之间均是基于Telegram API进行通信。在近期发现的攻击活动中存在两类攻击载荷,PowerShell载荷TelePowerBot[1]与.NET载荷KamiKakaBot[1]。本次发现的KamiKakaBot和先前版本相比,功能基本相同,但新增了字符串加密函数以隐藏部分特征。从上述内容可以看出,该组织在按照其原有的攻击模式进行攻击的同时也会对其自研工具做出调整,以便适应不同的攻击目标,进行更加隐蔽、持久的间谍活动。
参考资料:
[1] Group-IB:Dark Pink
https://www.group-ib.com/blog/dark-pink-apt/