难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

本文是无文件恶意软件系列的一部分。 该系列的所有其他部分:

我是该网站的粉丝 混合分析 (混合分析,以下简称 HA)。 这是一种恶意软件动物园,您可以在安全距离内安全地观察野生“捕食者”而不会受到攻击。 HA 在安全环境中运行恶意软件,记录系统调用、生成的文件和互联网流量,并为您提供它分析的每个样本的所有这些结果。 这样,您就可以不用浪费时间和精力自己解决混淆代码,而是立即了解黑客的所有意图。

引起我注意的 HA 示例使用编码的 JavaScript 或 Visual Basic for Applications (VBA) 脚本,这些脚本作为宏嵌入到 Word 或 Excel 文档中并附加到网络钓鱼电子邮件中。 打开后,这些宏会在受害者的计算机上启动一个 PowerShell 会话。 黑客通常会向 PowerShell 发送 Base64 编码的命令流。 这样做是为了让响应某些关键字的 Web 过滤器和防病毒软件难以检测到攻击。
幸运的是,HA 会自动解码 Base64 并立即以可读的形式显示所有内容。 本质上,您不必关注这些脚本是如何工作的,因为您将能够在相应的 HA 部分中看到运行进程的命令的完整输出。 请参见下面的示例:

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

混合解析拦截发送到 PowerShell 的 Base64 编码命令:

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

...然后为您解码。 #神奇地

В 上一篇 我创建了自己的稍微混淆的 JavaScript 容器来运行 PowerShell 会话。 然后,我的脚本就像许多基于 PowerShell 的恶意软件一样,从远程网站下载以下 PowerShell 脚本。 然后,作为示例,我下载了一个无害的 PS,它在屏幕上打印了一条消息。 但是时代在变,现在我建议使情况复杂化。

PowerShell Empire 和反向 Shell

此练习的目的之一是展示黑客绕过经典边界防御和防病毒软件有多(相对)容易。 如果像我这样没有编程技能的 IT 博主,在几个晚上可以 创建无法检测的恶意软件 (完全未被发现,FUD),想象一下感兴趣的年轻黑客的可能性!

如果您是一名 IT 安全人员,但您的经理不了解这些威胁的潜在影响,只需向他们展示这篇文章即可。

黑客梦想直接访问受害者的笔记本电脑或服务器。 这很容易做到:黑客所需要做的就是获取 CEO 笔记本电脑上的一些机密文件。

不知何故我已经 关于后期制作的 PowerShell Empire 运行时。 让我们记住它是什么。

它本质上是一个基于 PowerShell 的渗透测试工具,除许多其他功能外,还可以轻松运行反向 shell。 您可以在以下位置更详细地探索它 PSE 主页.

让我们做一个小实验。 我在 Amazon Web Services 云中为恶意软件测试设置了一个安全环境。 您可以按照我的示例快速安全地展示此漏洞的工作示例(并且不会因在企业范围内运行病毒而被解雇)。

如果您运行 PowerShell Empire 控制台,您将看到如下内容:

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

首先,你在你的黑客机器上启动监听器进程。 输入“listener”命令,并使用“set Host”指定系统的 IP 地址。 然后使用“执行”命令(如下)启动侦听器进程。 因此,在您这边,您将开始等待来自远程 shell 的网络连接:

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

另一方面,您需要通过输入“launcher”命令来生成代理代码(见下文)。 这将为远程代理生成 PowerShell 代码。 请注意,它是 Base64 编码的,代表有效载荷的第二阶段。 换句话说,我的 JavaScript 代码现在将拉动此代理来运行 PowerShell,而不是在屏幕上无害地显示文本并连接到我们的远程 PSE 服务器以运行反向 shell。

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本
反转壳魔法。 这个编码的 PowerShell 命令将连接到我的侦听器并启动远程 shell。

为了向您展示这个实验,我扮演了一个无辜受害者的角色,打开了 Evil.doc,从而运行了我们的 JavaScript。 还记得第一部分吗? PowerShell 已配置为不弹出,因此受害者不会注意到任何异常情况。 但是,如果你打开 Windows 任务管理器,你会看到一个后台 PowerShell 进程,这对大多数人来说仍然不会引起任何警报。 因为它是常规的 PowerShell,不是吗?

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

现在,当您运行 Evil.doc 时,一个隐藏的后台进程将连接到运行 PowerShell Empire 的服务器。 戴上渗透测试黑客的白帽,我返回到 PowerShell Empire 控制台,现在我看到一条消息,表明我的远程代理处于活动状态。

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

然后我输入“交互”命令以在 PSE 中打开一个 shell - 我就在这里! 总之,我黑进了前段时间自己架设的Taco服务器。

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本

我刚才演示的内容不需要您做那么多工作。 您可以在午休时间轻松完成这一切,花一到两个小时来提高您的信息安全知识。 这也是了解黑客如何绕过外部安全边界防御并潜入您的系统的好方法。

那些认为他们已经建立了针对任何类型的入侵的牢不可破防御的 IT 经理可能会发现它也很有教育意义——当然,如果你能说服他们坐在你身边足够长的时间。

回到现实

正如我所料,普通用户看不到的真正黑客只是我刚才描述的变体。 为了收集下一次发布的材料,我开始寻找 HA 示例,它的工作方式与我发明的示例相同。 而且我不需要找很长时间——网站上有很多这种攻击技术的选择。

我最终在 HA 上发现的恶意软件是嵌入在 Word 文档中的 VBA 脚本。 也就是说,我什至不需要伪造 doc 扩展名,这个恶意软件真的是最普通的 Microsoft Word 文档。 如果您想知道,我选择了这个名为 询价文件.

我很快了解到,您通常无法直接从文档中提取恶意 VBA 脚本。 黑客将它们压缩并隐藏起来,它们在 Word 内置的宏工具中是不可见的。 您将需要一个特殊的工具来提取它。 幸运的是我遇到了一个扫描仪 办公室恶意扫描器 弗兰克·鲍德温。 谢谢弗兰克。

使用这个工具,我能够提取出高度混淆的 VBA 代码。 它看起来像这样:

难以捉摸的恶意软件冒险第二部分:隐藏的 VBA 脚本
混淆是由他们领域的专业人士完成的。 令我印象深刻!

攻击者非常擅长混淆代码,不像我在创建 Evil.doc 时所做的那样。 好的,在下一部分中,我们将使用 VBA 调试器,更深入地研究这段代码,并将我们的分析与 HA 结果进行比较。

来源: habr.com

添加评论