恶意软件NanoCore利用MS Word传播

就在前几天,Fortinet FortiGuard实验室在野捕获了一个恶意MS Word文档,其中包含可自动执行的恶意VBA代码,可以在受害者的Windows系统上传播和安装NanoCore RAT软件。NanoCore RAT是在.Net框架中开发的,最新版本是“1.2.2.0”。2018年年初,其作者“Taylor Huddleston”被联邦调查局抓获,现于监狱服刑。研究人员捕获的样本使用NanoCore在受害者的系统上执行恶意行为。

恶意Word文档

恶意软件NanoCore利用MS Word传播

打开恶意Word文档

捕获的恶意Word文档的名称是“eml _-_ PO20180921.doc”。当它在MS Word中打开时,我们会看到如上图所示的内容,窗口顶部有一条黄色警告消息。

一旦受害者点击黄色按钮“启用内容”,恶意VBA代码就会在后台运行。VBA代码在“Document_Open”函数中自动执行,其代码经过混淆,如下图所示。

恶意软件NanoCore利用MS Word传播

部分混淆的VBA代码

从上图中的API函数名称和调试输出信息,可以看到VBA代码做了一件事:它从URL “hxxp://www.wwpdubai.com/wp-content/plugins/jav/inv.exe”下载EXE文件并将其保存到“%temp% \CUVJN.exe”。然后在下载完成后执行此EXE文件。

恶意软件NanoCore利用MS Word传播

CUVJN.exe文件信息

CUVJN.exe是一个.Net框架程序,其初始名称是“icce.exe”。上图中的屏幕截图显示了详细信息。但是,这不是真正的NanoCore RAT,真正的NanoCore RAT是后来在运行CUVJN.exe时提取的。

运行下载的CUVJN.exe

研究人员用.Net调试器dnSpy.加载了CUVJN.exe。跟踪其主要功能,发现它从其资源部分加载了大量数据块,然后将它们放在一起并对它们进行解密。

从下图可以看到CUVJN.exe通过“9”资源文件夹中的名称重复加载资源块。然后将所有数据放在一起形成本地数组变量“array10”,然后解密数据以获得新的PE文件。

恶意软件NanoCore利用MS Word传播

从CUVJN.exe资源部分加载数据

恶意软件NanoCore利用MS Word传播

解密资源数据以获取PE文件

解密的PE文件是另一个.Net框架程序,其原始名称是“dll.exe”。此时,尚未调用其“主要”函数。下面是函数“МđыдĐäѦГБуѦ”的代码片段,它通过“invoke”调用“主要”函数。这意味着解密的“dll.exe”将在CUVJN.exe进程内运行。

恶意软件NanoCore利用MS Word传播

根据研究人员的分析,解密的.Net程序是守护进程。首先,它创建一个Mutex并检查该进程是否存在,以确保该程序只有一个进程正在运行。接下来,它通过检测是否加载了“snxhk.dll”模块来检查Avast有没有在受害者的系统上运行。如果正在运行,它会一直等到它被卸载。Avast是一款防病毒软件,“snxhk.dll”是其中一个模块。

恶意软件NanoCore利用MS Word传播

它执行的活动与CUVJN.exe上面所做的类似,以从其资源部分(gzip 存档)加载数据,然后执行以下函数解压缩gzip存档并获取PE文件。这才是真正的NanoCore RAT客户端。

恶意软件NanoCore利用MS Word传播

在运行真正的NanoCore客户端之前,它会执行一些检查。检查当前进程的完整路径是否为“%AppData%\Microsoft\Windows\ScreenToGif\netprotocol.exe”。当然结果是“否”,其完整路径为“%temp%\CUVJN.exe”。然后它会暂时停止运行并采取分支将CUVJN.exe文件复制到文件夹“%AppData%\Microsoft\Windows\ScreenToGif\”中,将其重命名为“netprotocol.exe”。之后使用新文件创建一个新的“Process”对象,并调用“Process”对象的“Start()”函数来运行它。最后调用“ProjectData.EndApp()”来终止CUVJN.exe进程。

下图显示了将恶意软件复制到新路径、运行恶意软件,然后退出CUVJN.exe的代码段。

恶意软件NanoCore利用MS Word传播

由于“netprotocol.exe”正在运行,而且是“CUVJN.exe”的副本,所以可以认为它与上面回顾的CUVJN.exe完全相同。他们是:

1.从资源部分加载数据,然后解密数据以获取“dll.exe”;

2.在“netprotocol.exe”内运行“dll.exe”主函数;

3.在“dll.exe”的资源中解压NanoCore;

4.检查当前进程的完整路径是否为“%AppData%\Microsoft\Windows\ScreenToGif\netprotocol.exe”。这次答案是“是”。

守护进程不能被中断

通过研究人员的分析,“dll.exe”是一个守护进程。它启动另一个“netprotocol.exe”,将解压的NanoCore注入其内存然后运行。“dll.exe”的一个任务是让NanoCore在第二个“netprotocol.exe”中作为守护进程保持良好运行。它带有 “ProtectMe.Protect()”函数,以防止被查杀。当研究人员第一次在测试环境中测试这个恶意软件时,发现根本无法阻止进程“netprotocol.exe”,它既不是系统服务,拥有的特权也不高。做了一些研究之后,研究人员发现了这个功能,如下所示。

恶意软件NanoCore利用MS Word传播

事实证明它使用来自NTDLL.dll的未记录的函数ZwSetInformationProcess。这个函数可以修改进程的状态,这就是研究人员无法阻止进程的原因。下图是当研究人员尝试通过命令“taskkill”阻止“netprotocol.exe”时的屏幕截图,守护进程“netprotocol.exe”(PID 3428)无法被中断。

恶意软件NanoCore利用MS Word传播

有一个名为“RunPE.doIt()”的函数用于运行和保护NanoCore RAT客户端。它调用API CreateProcessA来启动一个新的“netprotocol.exe”,然后暂停。它还在新的“netprotocol.exe”中分配内存,并使用API​​ WriteProcessMemory将整个NanoCore放入新分配的内存中。最后,它将线程内容的入口点修改为NanoCore的入口点,并通过调用API ResumeThread恢复在第二个“netprotocol.exe”内运行的NanoCore。

NanoCore RAT客户端

NanoCore是于2013年首次发现的RAT(远程访问特洛伊木马)。它能够在受害者的计算机上执行许多恶意操作,例如注册表编辑、进程控制、升级、文件传输、键盘记录、密码窃取等。

NanoCore是一个.Net框架程序,它的代码被完全混淆,如下图所示。

恶意软件NanoCore利用MS Word传播

混淆了的NanoCore客户端代码

一旦NanoCore在第二个“netprotocol.exe”中运行,它就会在“%AppData%”文件夹下创建一个新文件夹作为其主文件夹。新文件夹在研究人员的测试环境中命名为“AA401429-5100-45C4-9496-689224150CC3”。它还会创建许多子文件夹,例如“DHCP Manager”和“Logs”,然后将“netprotocol.exe”复制到“DHCP Manager”并将其重命名为“dhcpmgr.exe”。然后,它在Windows注册表中创建一个自动运行项,其值为“DHCP Manager”,其数据是“dhcpmgr.exe”的完整路径。下图显示了该关键项的详细信息。

恶意软件NanoCore利用MS Word传播

“Logs”子文件夹包含从受害者系统收集的不同子文件夹中的数据,其名称是不同登录用户的当前登录用户名。

如何删除此恶意软件

1.从系统注册表“HKCU\Software\Microsoft\Windows\CurrentVersion\Run”或“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”中删除值“DHCP Manager”(取决于Windows系统版本)和保存值的数据供以后使用,例如“%AppData%\[Random string]\DHCP Manager\dhcpmgr.exe”。

2.重新启动Windows系统。

3.删除文件夹“%AppData%\Microsoft\Windows\ScreenToGif”。

4.删除在步骤1过程中保存的文件夹。

原创文章,作者:Gump,如若转载,请注明出处:http://www.mottoin.com/tech/134216.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code