Konni APT组织据悉由特定政府提供支持,自2014年以来一直持续活动。该组织经常使用鱼叉式网络钓鱼攻击手法,且经常使用与朝鲜相关的主题或社会热点作为诱饵,吸引用户查看并执行附件。
微步情报局近期通过威胁狩猎系统捕获到Konni APT组织利用朝鲜局势相关话题针对俄罗斯方向的攻击活动,分析有如下发现:
攻击者以“关于制裁对朝鲜局势的影响”和“解决朝鲜危机的建议”等相关热点话题为诱饵进行鱼叉攻击。
所投递恶意文档语言均为俄语,但部分文档编辑环境为朝鲜语,结合该组织的地缘因素分析,研判主要攻击目标为俄罗斯方向相关组织机构。
文档中携带的恶意模块将会从服务器下载多阶段恶意载荷,最终加载执行后门远控模块,实现对目标主机的远程控制。
根据多维度关联信息显示,本次攻击活动延续了该组织以往的攻击手法。
微步在线通过对相关样本、IP和域名的溯源分析,提取多条相关IOC,可用于威胁情报检测。微步在线威胁感知平台TDP、本地威胁情报管理平台TIP、威胁情报云API、互联网安全接入服务OneDNS等均已支持对此次攻击事件和团伙的检测。
在攻击者投递的恶意文档中,可以看到有文档的创建作者为SmallPig,这与攻击者所使用的C2服务器中的关键字“dragon-pig”、“little-dragon”等类似,表示攻击者做了一定准备工作,并且疑似有统一的行动策划,两个文档的最后修改者均为PILOT,且有文档的代码页语言为朝鲜语。
文档名称 | MD5 | 作者信息 | 代码页 |
О влиянии санкций на ситуацию в КНДР.doc (关于制裁对朝鲜局势的影响) | 7b13aa205a32cccb8d149e72cadeaeb2 | PILOT | 俄语 |
Предложения по урегулированию Корейского кризиса.doc (解决朝鲜危机的建议) | 61594306ad5492e1d61f4f42387066a7 | SmallPig、PILOT | 朝鲜语 |
将文档文字颜色设置为难以阅读的灰色是该组织的特点之一,一旦用户启用宏后,会在携带的恶意宏中将文档的文字颜色设置为易于阅读的黑色,以迷惑用户。Konni一直在使用这种方法,可见对于诱导用户启用宏非常有效果。
图1.启用宏前后对比
图2.执行流程图
在其中一份文档携带的恶意宏中,仅有3行脚本代码,主要功能为从自身文档文件中定位到js脚本代码写入到主机目录,之后再通过系统程序wscript来调用执行zx.js,同时在VBA中会将文档的文字颜色设置为黑色。
图3.文档中的恶意宏
在文档文件的尾部,可以看到以“try”关键字起始的脚本代码,这些代码将会通过VBA写入到主机目录%USERPROFILE%\zx.js,主要功能为从服务器下载脚本代码,使用eval函数来执行。
URL:http://dragon-pig.onlinewebshop.net/KB2999379.txt
图4.文档中嵌入的脚本代码
在KB2999379.txt中,根据当前主机系统x86或x64分别从服务器下载对应版本的木马,保存到文件zx.tmp,再使用expand命令来解压,之后调用执行解压出来的zx.bat。
图5. KB2999379.txt中的代码片段
接着在zw.bat中,执行解压出来的mslwer.dll用来绕过UAC,并调用执行install.bat。
图6. zw.bat中的脚本代码片段
install.bat得到执行后,负责木马模块的持久化,其将木马模块mssvps.dll和木马配置文件mssvps.ini移动到系统目录%windir%\System32,在主机上安装名为“ComSysApp”的服务来启动木马模块mssvps.dll,实现持久化。
图7. install.bat中的脚本代码片段
木马模块mssvps.dll中的字符串普遍为加密方式存储,以服务方式启动后,将会获取主机名称加密后作为感染ID。
注册表中HKEY_CURRENT_USER\Console中的MaxElapsed项表示木马更新C2配置的最大间隔时间,默认为2个小时,而MinElapsed项表示木马首次启动或者由于断网需要等待连接的时间,如果没有找到对应项,则会按照最小60秒来等待,等待结束后将会检查网络是否可连通,如果非连通状态将会继续等待。
图8.检查网络连通性反汇编代码片段
等待结束后,将会分两种方式从配置文件中取出C2地址。
从dat文件中直接取出C2地址;
如果未能从dat文件中取到C2地址,则将会从ini文件取出地址,与“/KB3000061.dat”拼接,下载之后从该dat文件中取出C2地址。
图9.使用UrlDownloadToFile从服务器下载文件KB3000061.dat
成功取出C2地址后,木马会先后两次调用cmd命令systeminfo和tasklisk来获取系统信息和主机进程列表,之后分别将上述数据以文件形式上传至C2服务器,以供攻击者进行环境侦察。
图10.在WireShark中拦截到的上传系统信息数据包
在上传函数中,木马会判断上传文件类型,如果是以cab、zip、rar结尾的文件将会直接上传,否则将会使用cmd命令makecab来将目标文件压缩为cab文件再上传,两种方式均将文件转存为temp文件加密后再进行上传。
图11.上传函数中使用makecab命令压缩文件
此外,木马每次进行网络访问前,将会清除C2服务器相关的缓存。
图12. 清除C2服务器相关缓存
将主机信息上传至C2服务器后,以参数值prefix =cc {index}为标识(index从0开始),依次循环从服务器取出攻击者所预设的远程指令来执行,直到将所有指令执行完毕。
host | little-dragon.mypressonline.com | C2域名 |
path | dn.php | 指令路径 |
参数1 | client_id | 主机ID(加密的主机名) |
参数2 | prefix | cc {index},index从0起始 |
之后再每隔10秒从服务器取出远程指令执行,截至分析时C2服务器已经无法正常连接。
host | little-dragon.mypressonline.com | C2域名 |
path | dn.php | 指令路径 |
参数1 | client_id | 主机ID(加密的主机名) |
参数2 | prefix | tt(固定值) |
该后门木马与以往Konni组织所使用的木马类似,可响应C2服务器远程指令包括CmdShell、文件上传/下载、更新C2配置文件、创建指定进程等,指令执行完毕后将会把结果暂存到主机temp目录,以文件形式加密上传至C2服务器,最终实现对目标计算机的远程控制。
图13.响应远程指令反汇编代码片段
在另一个样本携带的恶意宏中,将Donwloader模块释放到主机目录%USERPROFILE%\pp.exe,执行时传入参数“bALWAoNAuAAkAV0A2mLpAX1A9zLjAXvAMzLtAXRA2zLfAXhAbNLCAXRA9mLCAX0A4zLWAXzAcNLYAX8A9zADAXRAcNLWAA==”,该参数为经过加密的C2服务器地址http://baboivan.scienceontheweb.net。
图14. 文档中携带的恶意宏
与上面样本执行流程类似,同样通过判断系统32位或64位来下载指定版本木马,保存到目录% USERPROFILE%,之后再执行解压,最后执行解压出来的pp.bat,遗憾的是,分析时服务器已经无法正常连接,导致未能捕获到下阶段样本,但根据上下文信息,可以推断与上面样本使用的木马应该为同一类型。
攻击者在此次攻击活动中使用的C2服务器均为动态域名,该组织经常使用此类域名作为C2服务器。
图15. 攻击者使用的C2服务器
经过与该组织以往的攻击样本对比,发现此次攻击者在此次攻击活动中基本延续了以往的攻击手法,例如基本一致的字符串解密函数(左边为以往攻击活动,右边为本次攻击活动)。
图16. 字符串解密函数对比
以及Downloader模块中如出一辙的执行流程。
图17. 执行流程对比
由此,我们判断此次攻击活动为Konni APT组织以往攻击活动的延续,其一直在对俄罗斯相关组织机构进行有针对性的攻击活动,并且在最近的攻击活动中复用了以往的攻击手法。
Konni组织惯用朝鲜相关热点话题为诱饵进行攻击活动,利用社会工程学技术针对特定组织机构实施各种APT攻击,且极具针对性,微步情报局将持续跟踪并分析该组织动向。
dragon-pig.onlinewebshop.net
little-dragon.mypressonline.com
baboivan.scienceontheweb.net
879b5fca0f4e3d1769e37e738f3b89ba6de81d0f5f34b8bba6267f905b85318a
b89e79ee9c4834177cbabba9b265910a6a55c7defd2863cc1699753dbfa342b8
ComSysApp
%windir%\System32\mssvps.dll
%windir%\System32\mssvps.ini
策略 | ID | 技术名称 |
初始访问 | T1566.001 | 鱼叉式附件 |
执行 | T1059.003 T1059.007 T1569.002 T1204.002 | 命令和脚本解释器:cmd命令 命令和脚本解释器:JavaScript/Jscript 系统服务:服务执行 用户执行:恶意文档 |
持久化 | T1543.003 | 创建或修改系统过程:创建系统服务 |
防御逃避 | T1055.001 T1140 T1027.001 T1202 | 进程注入:动态链接库注入 解码文件或信息 混淆的文件或信息:二进制填充 间接命令执行 |
发现 | T1082 T1033 | 系统信息发现 系统网络连接发现 |
命令和控制 | T1071.001 T1132.002 T1573.001 | 应用层协议:web协议 数据编码:非标准编码 加密通道:对称密码学 |
渗出 | T1041 | 通过C2通道进行渗透 |
https://blog.alyac.co.kr/2474