Emotet是一款臭名昭著的基于邮件的恶意软件,是多起受僵尸网络推动的垃圾邮件和勒索软件攻击的幕后黑手。它包含一个缺陷,可使网络安全研究员激活 kill-switch 并阻止它在6个月内感染系统。

Binary Defense 公司的研究员 James Quinn 表示,“我们见到的多数漏洞和 expoit 对于攻击者而言是好消息,对于其余人是坏消息。然而,需要注意的是,恶意软件也是软件,因而也包含缺陷。就像攻击者能够利用合法软件中的缺陷造成损害一样,防御人员也能够逆向分析恶意软件发现其中的漏洞并利用它,打败恶意软件。”

该 kill-switch 活跃于2020年2月6日至2020年8月6日,共182天。之后恶意软件的作者修复。

自从2014年被发现以来,Emotet 已从最开始的银行恶意软件转变为“瑞士军刀”,可用作下载器、信息窃取器以及垃圾邮件僵尸。今年2月初,它开发了一种新特征,可以利用已感染的设备识别并攻陷和附近 WiFi 网络相连的受害者。同时它还推出新的持久机制,“能够生成文件名,将恶意软件保存在所有受害者系统中,使用源自 system32 目录中随机选择的 exe 或 dll 系统文件名”。这种变化很直接:它通过 XOR 密钥加密文件名称,随后保存在被设为受害者卷序列号的 Windows 注册表键值中。

Binary Defense 公司开发的首个 kill-switch 存活了37个小时,之后 Emotet 做出了上述更改,利用一个 PowerShell 脚本为每个受害者生成注册表键值并将每个值的数据设为 null。

这样,当该恶意软件检查注册表的文件名称时,它会加载空的 exe “.exe”,阻止恶意软件在目标系统上运行。Quinn 表示,“但恶意软件试图执行‘.exe’时,它将无法运行,因为在很多操作系统中,’.’转化为当前的工作目录。”

EmoCrash 阻击 Emotet

事情并未到此结束。在kill-switch 的新版本 EmoCrash 中,Quinn 利用了 Emotet 安装例程中的一个缓冲溢出漏洞,导致 Emotet 在安装过程中崩溃,因此有效地阻止了它对受害者的感染。

该脚本并未重置注册表键值,而是识别出系统架构,为用户的卷序列号生成安装注册表键值,将其保存为大小为832字节的缓冲区。

Quinn 表示,“单是这个小小的数据缓冲区就能使 Emotet 崩溃,甚至可以在感染之前(像疫苗一样)或者在感染过程中(像 killstwitch 一样)部署。之后将出现事件ID为 1000 和 1001 的崩溃日志,部署 killswitch 并重启电脑后,它们可用于识别Emotet二进制被禁用和不起作用的端点。”

为了不让威胁行动者发现并修复,Binary Defense 公司表示和 CERTs 和Team Cymru 协作,向疑受影响的组织机构分发 EmoCrash 利用脚本。

尽管 Emotet 在四月中旬就取消了基于注册表键的安装方法,但直到8月6日,才完全更新恶意软件加载器并删除易受攻击的注册表键值代码。

Quinn 表示,“在2016年7月17日,Emotet 最终在长达几个月的开发期限后再次发动垃圾邮件攻击。在完全归来之前,EmoCrash 仍然活跃,直到8月6日之前,EmoCrash 仍然能够完全抵御 Emotet。”

Quinn认为,“对于一个832字节的缓冲区而言,效果不错!”

原文链接

https://thehackernews.com/2020/08/emotet-botnet-malware.html

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。