要点:
深度本能威胁实验室发现了针对阿塞拜疆目标的新行动
该操作至少有两个不同的初始访问向量
该行动与已知的威胁行为者无关;该操作之所以被命名是因为他们用 Rust 编程语言编写了新颖的恶意软件
此次行动中使用的诱饵之一是 Storm-0978 组织使用的一份修改过的文件。这可能是故意的“假旗”
图 1:攻击流程
LNK 载体:
Deep Instinct Threat Lab 观察到一个检测率较低的恶意 LNK 文件,名为“1.KARABAKH.jpg.lnk”。
该文件具有双重扩展名,旨在引诱受害者点击与纳戈尔诺-卡拉巴赫军事事件有关的图像。
LNK 下载并执行由 DropBox 托管的 MSI 安装程序:
图 2:LNK 参数
图 3:来自 Dropbox 的有关 MSI 上传者的 OSINT 信息
MSI 文件会释放一个用 Rust 编写的植入程序、一个用于执行植入程序的计划任务的 xml 文件以及一个诱饵图像文件:
图 4:诱饵图像文件
该图像文件包含阿塞拜疆 MOD符号的水印。
Office False Flag Vector:
一旦我们识别出 LNK 活动,深度本能威胁实验室就会尝试识别其他相关文件。
Deep Instinct Threat Lab 很快发现了 DropBox 上托管的另一个 MSI 文件,该文件会释放同一 Rust 植入程序的不同变体;然而,确定该活动的初始访问向量更为棘手。
DropBox URL 被 URL 缩短器 (hxxps://t[.]]ly/8CYQW) 屏蔽,证据表明该 URL 是通过利用 Microsoft 公式编辑器 CVE-2017-11882 来调用的。
Deep Instinct Threat Lab 发现了一个名为“Overview_of_UWCs_UkraineInNATO_campaign.docx”的文件,该文件正在调用对此缩短 URL 的请求;然而,已知该文件名及其内容与利用 CVE-2023-36884的 Storm-0978活动相关。
识别出的文件甚至在 VirusTotal 上有一条评论,称它与 Storm-0978 活动有关:
图5:VT评论
经过进一步调查后发现,这是一个不同的文件,与 Storm-0978 活动无关。嵌入的“afchunk.rtf”文件已被替换,并且未使用 CVE-2023-36884。相反,CVE-2017-11882 用于下载和安装 MSI 文件。
这一行动看起来像是一次故意的虚假标记,试图将此次攻击归咎于 Storm-0978。
图 6:有关 Office 矢量 MSI 上传器的 OSINT 信息
尽管最初的诱饵是 Office 文件,但交付的 MSI 文件也会打开一个诱饵文件,这次是 PDF 发票:
图 7:Office 矢量投放的 PDF 诱饵
微星分析:
虽然初始向量不同,但执行过程是相同的,都是通过使用 DropBox 的 URL 调用 msiexec 来完成的。
使用Linux文件命令或msitools,MSI文件似乎是由“MSI Wrapper” https://www.exemsi.com/创建的,威胁行为者经常使用它来删除恶意文件。
MSI 安装程序正在删除并执行 Rust 植入以及计划任务的诱饵文件和 xml 文件。
图 8:MSI 元数据
Rust Implant分析:
每次攻击都有其独特的文件名和元数据。Rust Implants 中名为“WinDefenderHealth.exe”的文件之一是用 Rust 编写的。预计它会收集信息并将其发送到攻击者服务器,该服务器在本研究时仍处于活动状态。
图 9:Rust 恶意软件的元数据
图 10:Rust 编译器
Rust 在恶意软件作者中越来越受欢迎。安全产品尚未准确检测 Rust 恶意软件,并且逆向工程过程更加复杂。Rust 标准库对于 IDA 和 Ghidra 等工具来说并不熟悉。这会导致大部分代码被标记为未知,并且很难区分标准库的代码和恶意软件的代码。为了解决这个问题,使用了插件GhidRust,但它没有检测标准库的功能。另外,还使用了BinDiff。编译了一个简单的 Rust 二进制文件并将其与恶意软件进行了比较,但共享的代码很少。恶意软件中使用了 Rust 的一些开放项目,例如 Tokio(一个使用 Rust 编程语言编写可靠、异步和精简应用程序的运行时),hyper(Rust 的快速且正确的 HTTP 实现)和 Serde JSON(一种用于高效且通用地序列化和反序列化 Rust 数据结构的框架)。在这部分之后,我们继续进行动态分析。
文件执行后,它会休眠 12 分钟。这是避免安全研究人员和沙箱轻易分析的已知方法。
图 11:“休眠”12 分钟
然后它开始收集有关受感染机器的信息:
图12:“收集”信息
图 13:收集有关 PC 信息的进程
然后,恶意软件通过将 StdOut 重定向到命名管道来读取上述执行的输出。值得注意的是,StdIn、StdOut 和 StdErr 的值与命名管道的进程句柄相匹配。
图14:“读取”收集到的信息
利用以下模板收集信息:
图 15:加密前收集的信息示例
然后,上述信息被加密并使用不常见的硬编码端口35667发送到攻击者服务器:
图 16:发送到服务器的加密信息
我们构建了一个脚本来解密恶意软件发送的信息,这些信息可以在我们的Git中找到。
上述所有分析文件当时在 VT 上的检出率均较低。第一次看到的检测为零,大多数检测都是通用的。
图 17:VT 中 RUST 植入的检测。所有检测都是通用的。
而另一个 Rust 植入物的检测率仍然为零:
图 18:第二次 Rust 植入 VT 检测
结论:
深度本能威胁实验室无法将这些攻击归因于任何已知的威胁参与者。这些文件有可能是红队演习的一部分。
不管上面的说法如何,两个 Rust 植入程序在首次上传到 VirusTotal 时检测为零的事实表明,用深奥的语言编写恶意软件可以绕过许多安全解决方案。
MITRE:
IOCs
78.135.73[.]140
转载来源: https://www.deepinstinct.com/blog/operation-rusty-flag-a-malicious-campaign-against-azerbaijanian-targets
图片来源网络侵权可联系删除