共同撰写hasherezade.JérômeSegura.

在本博客文章中,我们将介绍最近版本的多功能中微子机器人(AKA KASIDET),它讽刺地被同名套件分发。今年早些时候,我们已经描述过通过垃圾邮件来的中微子机器人所以我们不会再次超过这些细节,而是将专注于一个有趣的装载机。

抗VM检测由隐藏实际核心的多个层互补,这使得提取最终有效载荷的一些挑战。

分配方法

这个样本是通过利用中微子开发工具包在美国的一个恶意广告活动收集的。感染流程从虚拟化、网络流量捕获和杀毒软件的指纹检查开始。如果发现任何感染(即不是真正的受害者),则不会发生感染。这个检查是通过在登陆前页面的严重混淆的JavaScript代码完成的,而不是在Flash利用本身,就像过去一样

一旦初始检查已通过,下一步就是启动一个特制的闪存文件,其中包含一系列用于Internet Explorer和Flash播放器的漏洞(类似于所描述的内容这里)。最后一步是通过WScript.exe下载和执行RC4编码有效载荷以绕过代理。

整体感染流程总结在下图中(点击放大):

一种脚本来自Maciej Kotowicz用于从Flash文件中提取伪影。

分析样品

行为分析

样品受到良好的保护,防止在受控环境中部署。当它检测到它在VM / SANDBOX中运行时,它只是删除本身:

如果环境传递了检查,它将其副本丢弃为:%appdata%/ y1viuvzzzxqxx / .exe(在测试期间,我们观察到以下名称:abgrcnq.exe.Uu.exe.):

隐藏文件夹和样本。

持久性通过任务计划程序实现:

恶意软件添加和修改多个注册表项。它添加了一些基本设置,包括安装日期:

它修改了一些密钥,以便在系统中保持隐藏。隐/super功能允许其丢弃的副本保留用户不受注意。它通过修改以下注册表项来禁用查看此类文件:

软件\ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced \隐藏软件\ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced \ showeuperhidden

它还将自身添加到防火墙的白名单中:

cmd.exe“/ a / c netsh advfirewall防火墙添加规则名称=”y1viuvzzxqxx“dir = in操作=允许程序= [full_executable_path]

同样,将恶意软件的路径添加到Windows Defender的排除中:

它禁用向Microsoft的云服务(Spynet)的报告事件(spynet):

HKLM \ Software \ Microsoft \ Windows Defender \ Spynet \ SpynetReporting

它修改终端服务的设置,将MaxDisconnectionTime和MaxIdletletime设置为0.修改键:

HKLM \软件\策略\ Microsoft \ Windows NT \终端服务\ MaxDisconnectiontime HKLM \ Software \ Policies \ Microsoft \ Windows NT \终端服务\ MaxIdletime

如果完整的安装过程成功,它终于加载了恶意核心,我们可以看到中微子机器人典型的流量。您可以在BeAgon“Enter”下方,响应“成功”,在Base64中编码。响应被发送为检索到的空白HTML页面中的注释,以避免被注意到:

在下一个请求中,机器人发送有关自身的信息,并且响应CNC给出了要执行的命令。请求和响应也是Base64编码。解码后示例:

req:

CMD&9BC67713-9390-4BCD-9811-36457B704C9C&TestMachine&Windows%207%20(32位)&0&N%2FA&5.2和22.02.2017&无

resp:

14630200665161699#屏幕截图#1469100096882000#1481642022438251#率15#

第一个命令是拍摄屏幕截图,确实很快,我们可以在我们看到的机器人以JPG格式发送屏幕截图之后:

从我们可以得出结论的发送版号码,机器人的版本为5.2(类似于活动)。

里面

第一层是一个抑制器的短截线,其通过加载器的图像覆盖存储器中的初始PE。在此视频中展示了解压缩它:https://www.youtube.com/watch?v=m_xh33m_cro.

第二层是可防止在受控环境中运行核心机器的加载器(即在VM上或在调试器下)。这个元素可能是新的(到目前为止在以前的Neturino Bot活动中观察到它,即描述这里)。我们发现装载机在其保护任务中非常有效。在测试期间使用的大多数沙箱和测试VM都未能提供任何有用的结果。

最终有效载荷具有典型的Neutrino Bot家族的特点。

装载器代码表明,它是全中微中微子机Bot包的一个组成部分 - 尚未通过独立抑制剂添加的另一层。两者都是有效载荷和加载器用C ++写入,使用类似的功能并包含重叠字符串。将在本文后面详细说明它。它们都有非常密切的编译时间戳:有效载荷:2017-02-16 17:15:43,装载机:2017-02-16 17:15:52

可以查看加载器的修补版本,禁用环境检查这里

装载机

混淆技巧

代码内部包含一些级别的混淆。几个字符串可见:

  • 目录名称
  • 一些功能
  • 与将被禁用的Windows安全功能相关的注册表项
  • 用于添加新的预定任务的字符串。

但是,这并非全部。大多数字符串都在运行时解密。以下是加载加密字符串的示例:

首先,将混淆的字符串用专用函数写入动态加载的内存。然后,使用简单的XOR为基于XOR的算法解密:

def解码(数据):maxlen = len(data)解码= bytearray()在范围内(0,maxlen):dec = data [i] ^ 1 decoded.append(dec)返回解码

解密后的相同字符串:

大多数API调用也是动态解决的。例子:

跟踪API调用有助于了解程序的功能。因此,此恶意软件文件的作者在不使用API​​调用的情况下实现了一些功能。在下面的示例中,您可以看到该功能getlasterror()通过阅读低级结构来实现:线程环境块(TEB)

功能

为了防止不止一次地执行,加载程序将创建一个互斥锁,其中名称是二进制中的硬件:1viuvzzzxqxx.

加载器的主要任务是检查环境,以确保未被观看执行。但是,与大多数恶意软件相反,检查不仅仅是一次。部署了专用线程:

它在永无止境的循环中运行检查:

如果在任何时候,加载器会检测到某些已部署的黑名单流程,终止执行。

执行的检查示例:

1.通过运行进程列表枚举(使用动态加载的函数createToolhelp32snapshot.-process32first.-process32next.)。计算每个检索到的过程名称的校验和,并将其与内置黑名单进行比较:

黑名单校验和:

0x6169078A
0 x47000343
0xC608982D.
0x46ee4f10.
0xF6EC4B30.
0xb1cbc652;vboxservice.exe.
0x6d3e6fdd;vboxtray.exe.
0x583eb7e8.
0xc03eaa65.

搜索黑名单进程的函数的实现 - 正如我们所看到的那样,在相应的校验和的帮助下动态加载每个功能:

2.在当前过程中搜索黑名单模块(使用动态加载的函数createToolhelp32snapshot.-模块32First.-module32next.)。同样,它可以从每个检索到的过程名称计算校验和,并将其与内置黑名单进行比较。

校验和计算算法(执行):

黑名单校验和:

0x1c669d6a.
0xC2F56A18.
0xc106e17b.
0x5608BCC4.
0x6512f9d0.
0xC604D52A;snxhk.dll.
0x4d0651a5.
0xac12b9fb;sbiedll.dll.
0x5B747561
0x53309C85.
0xe53ed522

3,检查该过程是否在调试器下,使用:isdebuggerpresentCheckRemoteDebuggerPresent.

4.使用时间测量检测单步阶梯,使用gettickcount - 睡眠 - gettickcount

5.借助检测黑名单设备 - 使用querydosdevices.即vboxjuest.

6.使用他们的类搜索和隐藏黑色窗户 - 使用enumwindows.-getClassName.(IE。Procexpl.

黑名单校验和:

0xFe9ea0d5.
0x6689BB92.
0x3C5FF312;Procexpl.
0x9b5a88d9;procmon_window_class.
0x4b4576b5.
0xAED304FC.
0x225fd98f.
0x6d3fa1ca.
0xcf388e01.
0xD486D951.
0x39177889

在另一个线程中,恶意软件执行与机器人安装相关的操作 - 将任务添加到Windows调度程序,向防火墙添加排除等。

最后,它会解开最终有效载荷并在运行PE方法的帮助下运行它。首先,它创建了自己的另一个例子:

然后,它将在此位置映射一个新的PE文件:

有效载荷

加载的有效载荷是一个中微子机器人,具有非常相似的特征,以便我们描述的一个前一篇文章。但是,我们可以在加载器中找到一些类似的元素,例如匹配字符串:

结论

Neutrino Bot一直在市场上几年。它具有丰富的功能,但其内部结构从未令人印象深刻。此时,恶意软件作者也没有对主要机器人的结构进行任何重大改进。然而,他们添加了一个更多的保护层,这在指纹环境的任务中是非常一致的,而不是允许发现的机器人。