漏洞管理和修复是安全管理面临的一个难题,尽管目前防御者设计了多种解决方案、监视列表和警告,以确保公司和终端用户针对已知的安全漏洞修补其软件。
不幸的是,即使有可用的工具和用最新的信息预先警告团队,通过旧有漏洞发起的攻击也常常存在。这通常是由于软件没有及时更新,安全防御团队疏忽或缺乏能力,而攻击者就是利用组织中存在的这些弱点,经常攻击得手。修复漏洞通常是单调乏味的工作。那些没有及时修复、修复不完全或修复马虎的组织经常会成为受害者,因为它们为寻找可利用的立足点的攻击者提供了一个突破口。
例如,CVE-2017-0199和CVE-2017-11882已经出现了将近5年,但它们仍在被利用。更糟糕的是,这两个漏洞都有官方补丁。CVE-2017-0199是一个Microsoft Word漏洞,危害等级为超危 ,发布时间为2017年4月,它允许攻击者执行恶意的Visual Basic脚本。 CVE-2017-0199漏洞是一个逻辑错误引起的,并且能够绕过大多数安全防御措施。在执行恶意脚本后,攻击者能下载并执行恶意的有效载荷,同时向使用者显示诱饵文件。CVE-2017-11882属于缓冲区溢出类型漏洞,产生漏洞原因于EQNEDT32.EXE(微软office自带公式编辑器)进程在读入包含MathType的ole数据时,在拷贝公式字体名称(Font Name数据)时没有对名称长度进行校验,导致缓冲区溢出。通过覆盖函数的返回地址,可执行任意代码。2017年11月14号,微软推送了常规的安全更新,其中,关于CVE-2017-11882的安全更新引起了圈里的关注,随之而来的,便是针对此漏洞的POC攻击代码被逐渐公开。
今年7月,一个名为Amadey的信息窃取恶意软件正在通过SmokeLoader传播。Amadey是一个僵尸网络,于2018年10月左右首次出现在俄罗斯地下论坛上,售价600美元。它能够虹吸凭据、捕获屏幕截图、系统元数据,甚至可以获取有关防病毒引擎和安装在受感染计算机上的其他恶意软件的信息。
今年2月,Kraken版本是经由后门程序SmokeLoader下载RAR SFX档到Windows PC,再解封包安装。而利用SmokeLoader后门传播,使攻击者每次转换到新的C&C服务器时,就能快速感染数百台计算机。
去年年底,Tardigrade 通过网络钓鱼电子邮件或受感染的 USB 驱动器传播,是SmokeLoader的高级分支。
我们会在本文中介绍SmokeLoader的最新攻击示例,这是一个恶意软件变体,在其部署链中利用了CVE-2017-0199和CVE-2017-11882。自2011年以来,SmokeLoader(也被称为Dofoil)就不断以这样或那样的形式出现。它的主要目的是支持其他恶意软件家族的传播,比如Trickbot。这款最新的样本会释放zgRAT,与SmokeLoader通常提供的载荷相比,这是一种罕见的有效负载。
· 受影响的平台:Windows
· 受影响的用户:Windows 用户
· 影响:可能会出于其他目的部署其他恶意软件
· 严重性级别:中等
接下来,我们将介绍每个攻击环节,包括初始电子邮件、附件和可执行文件。
网络钓鱼电子邮件
和许多钓鱼攻击一样,攻击都是从一个诱饵开始的,敦促收件人查看采购订单,并检查与发货时间相关的日期,以确保它们是正确的。这封电子邮件是寄往台湾一家大型电信公司的网络邮箱地址。钓鱼邮件的发送者也使用了这项服务,因此无法追踪邮件的确切来源。奇怪的是,也许这是一个网络钓鱼尝试,发件人欺骗了收件人的地址并将其用作发送地址。
正文由中文和英文混合而成,并在一定程度上煞费苦心地使其看起来尽可能合法,显示了完整的签名和联系方式。
网络钓鱼电子邮件
钓鱼邮件翻译成英文
如图1所示,邮件中附有“Purchase Order FG-20220629.xlsx”文件。打开这个文件感染就正式开启了。
采购订单FG-20220629.xlsx
向收件人显示的电子表格
打开后,收件人会看到一个相当标准的像素图像,以及关于查看受保护内容的虚假微软说明。
由于没有任何宏,因此需要仔细查看电子表格的内部结构。表2的锁定图标显示可能存在加密或受保护的工作表。像 Didier Stevens开发的 oledump 这样的工具可以在这种情况下提供帮助。oledump.py是一个用于分析OLE文件(复合文件二进制格式)的程序,我们可以使用它提取文档中的宏代码。
显示加密流的Oledump输出
运行oledump之后,很明显,文件中有一个加密流,其中很可能包含一些感兴趣的细节。Didier Stevens 的另一个工具msoffcrypto-crack.py 可以检查明显且使用良好的密码。
Msoffcrypto-crack.py输出显示文件的密码
在这个例子中,给出了“VelvetSweatshop”的返回值。这很有趣,因为这实际上是Excel识别的默认文档密码。它允许对数据进行加密,但不会提示用户输入密码来访问文件。
通过使用管道(“|”)组合上述两个工具,提供了相关 OLE 流的完整解密范围,并显示了下一阶段攻击的目标。这个阶段使用了这次攻击中涉及的两个漏洞中的第一个,CVE-2017-0199。它还包括一个嵌入式链接,该链接将尝试从 192[.]227[.]129[.]26 下载文件“receipt.doc”。
利用CVE-2017-0199后的电子表格的最终目标
从 Exif 数据中可以看出文件中的异常情况
对" receipt.doc "的初步分析发现了一些有趣的怪事。如上图所示,Exiftool(一个检查文件元数据的工具)在运行“receive .doc”时返回一个错误。打开文件并直接查看它会显示正在尝试的内容的范围。
任何查看它的人都会看到“receipt.doc”
很明显,这个文件不是Microsoft Word文档。相反,它是一个富文本文件(RTF)。该文件旨在利用上述两个漏洞中的第二个漏洞CVE-2017-11882,这是Microsoft Equation Editor中的一个堆栈溢出漏洞,可以在有漏洞的系统上远程执行代码。
利用CVE-2017-11882之后的电子表格的最终目标
“receipt.doc”文件再次到达 192[.]227[.]129[.]26 并下载 vbc.exe,这就是 SmokeLoader。
vbc.exe
从开头的“vb . c.exe”开始,查看操作系统所看到的详细信息,该文件将自己显示为Microsoft .NET可执行文件。
“vbc.exe”的基本可执行细节
查看该文件的元数据可以发现基本的错误。
Exif 数据显示“vbc.exe”混淆了其真实目的
该文件被描述为“WinRAR”(合法的文件压缩和压缩软件)。此外,原始文件名和当前文件名不匹配,考虑到目前的情况,这是非常可疑的。
在 .NET 调试器或 IDE 中查看可执行文件可提供有关程序尝试执行的操作和方式的更明确的详细信息。
“vbc.exe”的最终目标
将尝试连接到 URL “sorathlions[.]com/wp-content/Vymxn_Zfbgctbp[.]jpg”。
数据包捕获显示在很短的时间内有多个连接
如果无法建立连接,将会进行多次重试。然而,它们以非常快的速度(每分钟几次)完成,因为要连接到这个位置的非典型的和不断的尝试,这将提供一个检测机会。
如果“vbc.exe”成功连接到C2,它将执行上述命令
连接成功将从远程位置拉取文件“Vymxn_Zfbgctbp.jpg”,并执行上图中的命令。
Vymxn_Zfbgctbp.jpg
图 12 和 14 中的代码表明“Vymxn_Zfbgctbp.jpg”可能不是所声称的图像文件。
Exif 数据确认“Vymxn_Zfbgctbp.jpg”不是图像
查看该文件的元数据可以发现它似乎是一个压缩的GZip压缩文件。图12似乎证明了这一点,其中包含解压缩内存中文件的代码。如果没有,可以使用 7Zip 等常用工具手动解压缩文件。
“Vymxn_Zfbgctbp.jpg”可以手动解压
最后要删除的文件是一个DLL文件
如上图所示,被删除的文件是一个 .NET DLL,将由“vbc.exe”执行。
DLL
DLL 被严重混淆。但是,仍然可以选择主要的命名空间、类和入口函数。
主要的命名空间
基于这个 DLL 中的一些非混淆字符串,FortiGuard Labs 认为这个样本是 zgRAT。 zgRAT 的样本可以追溯到 2021 年。与其他更成熟的产品线相比,它是一种罕见的恶意软件变体。
总结
虽然CVE-2017-0199和CVE-2017-11882在2017年被发现,但它们仍在被积极利用。这表明,恶意软件的开发者仍然通过依赖老化的漏洞(通常是在曝光数年后)来实现他们的目标。
本文翻译自:https://www.fortinet.com/blog/threat-research/smokeloader-using-old-vulnerabilities如若转载,请注明原文地址