伴随着新的恶意软件系列层出不穷,其中一些逐渐没落消亡,有些只是昙花一现,而另一些则保持着持久的繁荣。为了跟上这一变化趋势,卡巴斯基依赖检测到的样本及其对僵尸网络和地下论坛的监测结果,剖析了犯罪软件世界中的最新进展。
DarkGate
2023年6月,一名恶意软件开发者在一个流行的暗网论坛上发布了一则广告,吹嘘自己自2017年以来便开发了一个加载程序,该程序目前已活跃2万多个小时,且具备如下一些主要功能:
- 隐藏的虚拟网络控制台(VNC);
- Windows Defender免疫;
- 浏览器历史记录窃取器;
- 逆向代理;
- 文件管理器;
- Discord(一款聊天软件和社区)token窃取器;
利用获得的一些样本,研究人员重构了整个感染链。结果发现,在加载最终有效载荷(即DarkGate本身)之前,要经历以下阶段:
- VBS下载器脚本:该脚本比较简单。它设置了几个环境变量来混淆后续的命令调用。然后从C2下载两个文件(exe和script.au3),并使用script.au3来执行Autoit3.exe作为一个论据。
- AutoIT V3脚本:AutoIT V3是一种类似BASIC的免费软件脚本语言,因其可以模拟击键和鼠标移动等操作而备受恶意软件开发者的青睐。执行的脚本会被混淆,但最终会为嵌入的shellcode分配内存,并最终执行shellcode。
- Shellcode:该Shellcode非常简单,它在内存中构造一个PE文件,动态解析导入并将控制传递给它。
- DarkGate执行器(由shellcode构造的PE文件):该执行器会加载脚本。将Au3文件放入内存中,并在脚本中定位加密的blob。然后对加密的blob进行解密(使用XOR密钥和final NOT操作)。这将产生一个PE文件,其导入表是动态解析的。最后的结果就是DarkGate加载器。
DarkGate加载器包含以下变量,描述了恶意软件的一些核心功能:
- 找到杀毒软件(AV)时设置的变量;
- 找到虚拟环境时设置的变量;
- 找到Xeon处理器时设置的变量;
- C2端口数;
除了多功能性之外,DarkGate的亮点是它实现了进程挖空的行为——将合法进程加载到系统上,将其用作隐藏恶意代码的“掩护”。为了实现这一目的,DarkGate还滥用了进程vbc.exe或regasm.exe。此外,DarkGate还利用用户帐户控制(UAC)绕过功能来提升其权限。
DarkGate的另一个显著特点是其人性化的“反应式”C2基础设施由真人构成。研究人员指出,这些运营者会根据收到加密钱包的新感染通知采取行动。同时,当运营者检测到任何有趣的活动时,他们会继续在被感染的机器上安装自定义远程访问工具以进行手动操作。
为了隐藏这些特殊的C2基础设施,DarkGate还对其恶意服务器进行了伪装,并通过监控通常在沙箱或虚拟机环境中发现的情况,以及检查是否存在特定的AV解决方案,来逃避检测。
LokiBot
LokiBot于2016年首次曝光,至今仍然十分活跃。它旨在窃取各种应用程序的凭据,例如浏览器、FTP客户端和其他应用程序。LokiBot的首要定位是银行木马,不过在进行攻击时,如果它的银行木马访问权限被禁止或者用户试图删除它时,它能够立马启动勒索软件模块,瞬间转变成一款勒索软件。一旦勒索软件的特性被激活,LokiBot能够破译用户所有的数据变成另一种流氓软件。
最近,研究人员发现了一起使用LokiBot瞄准货船公司的网络钓鱼活动。
在这起案例中,受害者收到了一封看似来自业务联系人的电子邮件,上面写着需要支付的港口费用。邮件的附件是一份Excel文档。正如预期的那样,在打开文档时要求用户启用宏。然而,这是一个虚假的警告,因为该文档并不包含任何宏,而是试图利用CVE-2017-0199。
该漏洞使得通过提供链接打开远程文档成为可能。这会导致下载RTF文档,从而利用另一个漏洞,即CVE-2017-11882。通过利用这个漏洞,LokiBot便得以顺利下载并执行。
一旦执行,它就会从各种来源收集凭据并保存到恶意软件内部的缓冲区中,然后将它们发送到C2。数据通过POST请求经由APLib压缩发送。发送系统信息后,恶意软件还会监听其他C2命令。这些命令可用于下载其他恶意软件、运行键盘记录程序等恶意操作。
Emotet
Emotet是一个臭名昭著的僵尸网络,尽管在2021年就已被关闭,但后来又重新复苏。研究人员发现,在最近的攻击浪潮中,它们加入了OneNote感染的行列,开始发送带有恶意OneNote文件的电子邮件。打开其中一个OneNote文件会显示一个类似于下图的页面。
【Emotet OneNote诱饵文档】
点击“查看”(view)按钮会自动执行嵌入和混淆的恶意VBScript。不过,好在反混淆(deobfuscated)代码相当简单。
【反混淆下载器脚本】
从上图可以看出有多个站点包含有效载荷。脚本会尝试每一种方法,直到成功为止,然后将有效负载(一个DLL)保存在临时目录中,并使用regsvc32.exe执行它。然后,执行的DLL从其资源部分加载一个资源(LXGUM),并使用简单的滚动XOR算法对其进行解密,具体如下所示。
【资源解密代码】
该解密的有效负载实际上是执行典型的哈希导入的shellcode。其中两个解析函数是ldrloadll和LdrGetProcedureAddress,恶意软件开发者经常使用它们来逃避对知名API(在此案例中指的是LoadLibrary和GetProcAddress)的动态分析。接下来分配内存,并将资源部分的blob (PE文件)写入分配的内存,这就是最终的Emotet有效负载。之后解析DLL依赖项,并重建导入地址表(IAT)。然后shellcode覆盖PE文件的DOS标头,以便EDR解决方案更难以检测内存中的二进制文件。最后执行Emotet。
研究人员指出,总的来说,Emotet有效载荷本身与前几波攻击相同。
结语
恶意软件仍在不断发展,而攻击者的TTP也在不断变化,检测难度只会与日俱增。此外,组织还很难决定首先防御哪种类型的恶意软件威胁。保持情报更新可以帮助组织及时有效地识别与业务相关的威胁,并强化对这些威胁的防御力度。
原文链接:
https://securelist.com/emotet-darkgate-lokibot-crimeware-report/110286/