Cofense最近发现了一项 络钓鱼活动,该活动将Kutaki恶意软件隐藏在合法应用程序中,以绕过电子邮件 关并获取用户凭据。
作为数据窃取器,Kutaki利用老派技术检测沙箱和调试,但是不要小瞧Kutaki——它在未硬化的虚拟机和其他分析设备上运行良好。通过对合法应用程序进行后期处理,它可以欺骗不成熟的检测方法。
全部细节
Cofense Intelligence最近发现了一个小规模的 络钓鱼活动,分发隐藏在合法的Visual Basic应用程序中的Kutaki信息窃取器和键盘记录程序样本,并由恶意Office文档分发Kutaki。
Kutaki使用了一系列反虚拟化和反分析技术,这些技术表面上是从一系列可追溯到2010-2011的博客中逐字复制的。数据窃取器Kutaki能够直接从键盘、鼠标、剪贴板、麦克风和屏幕(以屏幕截图的形式)收集数据。Cofense Intelligence还发现Kutaki 通过删除并执行Windows的cURL副本来检索SecurityXploded的BrowserPasswordDump实用程序的副本。
混淆
Kutaki的变体使用源代码作为Visual Basic培训应用程序来隐藏其恶意内容,它试图通过回溯一个表面上简单的培训应用程序利用任何潜在的白名单或直接绕过静态签名。
项目细分
项目中的代码部分
即使对于非程序员来说,某些程序名称似乎也错位了。实际上,我们可以看到表单(GUI元素)与支持它们的程序密切(但不完全)相关。下图反映了这种映射。
与其程序(代码)对应的表单元素
检查程序可以发现该应用程序已被后门的最终证据。下图显示了合法程序与被注入程序之间的对比。
左边是原始程序,右边是被注入的程序
我们不仅看到命名约定之间存在差异—-大多数合法程序都以“frm”开头—-也可以给被注入的程序随机分配名称。此外,在注入的过程中找到的函数的名称不可解析,因此它们是由反编译器分配的。
添加一些注入代码会产生更多的混淆,使用rtcStrReverse函数反转并解码二进制内的字符串。下图是这种混淆的一个例子。
利用类似的字符串混淆技术来屏蔽可疑的API调用。下图显示了Sleep和ShellExecuteA字符串的混淆。
这些字符串是DllFunctionCall使用的小结构的一部分—-这是Visual Basic应用程序从特定DLL检索函数地址的方法。
对DLLFunctionCall的所有调用都包含在相同的片段中,如下图所示。
仔细分析后,研究人员发现以这种方式对18个高价值API调用进行了模糊处理。细节如下图所示。
反虚拟化
Kutaki采用了一些基本的检查和比较来确定它是否在虚拟化环境中执行。首先读取HKLMSystemCurrentControlSetServicesDiskEnum注册表项,并将返回的字符串与“不良”字符串列表进行比较。下图详细介绍了此注册表项的读取。
此注册表项包含计算机磁盘的信息。第一个磁盘存储在名为“0”的值中,第二个磁盘存储在名为“1”的值中,依此类推。下图是在值0中观察到的数据。
带有蓝色底纹的文本表明磁盘属于VirtualBox VM。图1和2是两种不同的字符串比较,试图识别不同类型的虚拟机。图3是Kutaki会比较的所有字符串。
图1:检查字符串中的注册表值是否包含“VIRTUAL”
图2:检查字符串中的注册表值是否包含“VBOX”
反虚拟化字符串
图2中显示的字符串比较将与注册表值中的数据匹配。尽管匹配,Kutaki不会立即退出,而是继续进行其他虚拟化检查。只有在所有检查完成后,它才会确定是否继续执行。下图显示了该概念的执行流程。
一旦处理完所有检查,Kutaki就会解析结果,以确定其主循环是结束还是继续执行。检查程序解析每个结果的非零“返回码”(即检测到某些东西),如果发现这样的返回码,则主循环结束。
解析其中一个反分析检查的结果
行为
一旦Kutaki确定它没有被监控,它将继续进行数据窃取。在此过程中,Kutaki从其资源中提取图像,将其放到用户的临时目录中,然后使用ShellExecuteA
(cmd.exe/cC:UsersadminAppDataLocalTemp images1.png)启动它。这其中包含一个诱饵图像,以欺骗用户,让他们相信他们点击的OLE包只是一个图像。
该文件是发票模板,而且这个诱饵文档很少使用,因为在谷歌上搜索“税务详细信息发票”第二张图片就是它。
显示文档后,Kutaki会根据硬编码字符串“hyuder”检查当前的可执行文件名称,如果不匹配,则继续使用新名称删除自身副本。
下图显了Kutaki构建文件路径,删除自身副本副本。通过drop启动文件夹,Kutaki具有持久性。
Kutaki执行dropped代码并继续执行其主要恶意功能。其余的代码没有分析价值,主要是因为几乎所有的恶意行为都发生在二进制文件本身之外。
Kutaki还捆绑了一个cURL—-一个移植到Windows的Linux应用程序,允许命令行访问互联 资源。它使用cURL从远程主机检索有效负载,但研究人员还不清除这么做的原因—-因为它有能力联系远程服务器。下图记录了cURL与远程主机建立连接,检索次级有效负载。
Kutaki使用cURL下载并执行次级有效负载
在这里,检索到的有效负载是SecurityXploded的BrowserPasswordDump的副本。此实用程序旨在从以下浏览器的vault中检索密码:
Firefox
Google Chrome
MicrosoftEdge
InternetExplorer
UC Browser
Torch Browser
ChromeCanary/SXS Cool
Novo Browser
Opera Browser
Apple Safari
旧并不意味着没用
Kutaki使用一些老式的、记录良好的技术来检测沙箱和调试,这对于unhardened虚拟机和其他分析设备仍然有效。此外,通过对合法应用程序进行后门处理,不成熟的检测方法很可能无法检测到恶意软件。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!