目录导航
根据 Verizon 的2021 年数据泄露调查报告,网络钓鱼攻击是导致安全漏洞的最常见原因之一。大多数网络钓鱼攻击通过包含恶意附件的电子邮件到达。例如,看似无害的 Microsoft Word 文件可能是危险攻击的初始感染阶段,威胁者使用文档来传递恶意软件。

在事件响应期间处理恶意 Microsoft Office 文件
在处理安全漏洞时,事件响应团队将从受损端点收集可疑文件和证据,以调查事件。IR 团队面临的挑战之一是找到攻击中使用的所有恶意文件,并将它们分类为相关的恶意软件家族。
二进制文件 通常是主要嫌疑人。我们知道执行了恶意代码,因此我们搜索包含此代码的可疑二进制文件(例如,查找最近安装的程序)。 还应仔细检查 Microsoft Office 文档等非二进制文件,因为它们可能是导致恶意软件开始执行的攻击的第一阶段。
威胁参与者广泛使用 Office 文档来传播恶意软件。通常,该文件附加到一封经过精心设计的电子邮件,看起来像是合法的通信。威胁参与者使用社会工程技术说服受害者打开恶意附件。
在本文中,我们将解释不同类型的 Microsoft Office 文件格式以及攻击者如何滥用这些文件来传递恶意软件。您还将看到可以帮助您更好地识别和分类恶意 Microsoft Office 文件的工具和技术。
Microsoft Office 文件格式的类型
在收集可能与事件相关的文件时,您可能会注意到许多文件包含属于不同应用程序的各种扩展名(.txt、.dotm、.zip、.docx、.pdf)。出于本博客的目的,我们将重点介绍 Microsoft Office 中的三种主要文件格式:Word、Excel 和PowerPoint。首先,让我们解释一下这些文件的结构以及它们之间的区别。
对象链接和嵌入 (OLE)
OLE2 格式用于 Microsoft Word 97–2003 文档和其他 Microsoft 产品,例如 Outlook 邮件。众所周知的文件扩展名.doc、.xls 和 .ppt 都是基于 OLE 格式的文件类型。OLE 文件是一个复合文件,它被构造为文件中的文件系统。OLE 文件被格式化为 ZIP,并且可以使用oledir 实用程序查看文件的内容(这是oletools的一部分 ,将在本文后面进行解释)。
OLE 文件包含:
- 每个流都有一个名称的数据流。一个文件必须至少包含一个流。例如,对于 Word 文档,必须包含一个名为WordDocument的流,它是包含文档文本的主流。
- 包含流或其他存储的存储。
- 属性是包含文档信息的流,例如作者、标题、创建和修改日期。属性流始终以x05 开头。

,显示宏存储、主流和属性。
Office开放 XML (OOXML)
此文件格式已合并到 Microsoft Office 2007 中。它是由 Microsoft 开发的基于 XML 的压缩格式,用于所有 Microsoft Office 文件。相关的扩展名包括.docx、.xlsx 和 .pptx。OOXML 文件的结构与 OLE 文件类似,但它们之间存在一些差异:
- OOXML 文件中的每个目录都包含一个 .xml 文件,可以在下面的屏幕截图中看到。
- 名为[Content_Types].xml的文件 必须位于存档的根目录中。它包含存档中包含的所有内容类型。
- OOXML 文件不能包含 VBA 宏(我们将在下一节中详细说明)。
- OOXML 文件包含任何对象,包括图像、OLE 对象[1]、PE 文件、媒体文件等。
- 对象之间的关系在扩展名为 .rels 的文件中进行了描述。

Rich Text格式 (RTF)
RTF 是 Microsoft 开发的另一种文档格式。RTF 文件以一种可以在应用程序之间共享文件的方式对文本和图形进行编码。过去,如果没有 Microsoft Office 甚至 Windows PC,打开 .doc 文件会更加困难,因此使用 RTF 成为一种方便的解决方案。
与我们之前讨论的格式不同,RTF 文件由未格式化的文本、控制字、组、反斜杠和分隔符组成。与 OOXML 一样,RTF 文件不支持宏。

有关OLE、OOXML和RTF 文件的详细信息,请参阅 Microsoft 的文档。
通常,您永远不应该信任文件的后缀,因为攻击者会故意更改后缀以诱骗受害者打开它们。始终验证您正在分析的文件类型。您可以使用文件 命令 (Linux/Mac) 或 来自 Didier Stevens 开发的 oletools 的oleid实用程序。此实用程序显示有关文件的有用且重要的信息,包括文件类型和加密。
为什么文档文件可能是危险的以及如何分析它们
可以通过多种方式使用恶意软件将文档武器化并用于发起攻击。
office宏
该技术记录在 MITRE ATT&CK® T1137 中。
宏允许用户自动执行一系列可由不同操作触发的命令,从而节省用户时间。通常,宏是用Visual Basic for Applications (VBA) 编写的,这是一种由 Microsoft 开发并受所有 Microsoft Office 产品支持的语言。创建宏的另一种方法是在 Microsoft Office 应用程序中记录它。宏是一个强大的工具,它为用户提供对本地系统资源的访问和权限。攻击者使用宏来修改系统上的文件并执行下一阶段的攻击。
默认情况下,OOXML 文件(.docx、.xlsx、.pptx)不能用于存储宏。只有具有启用宏的特定文件才能用于包含 VBA 宏。目标是更容易检测具有宏的文件并降低使用宏进行攻击的风险。启用宏的文件在扩展名末尾 使用字母m ,例如 .dotm、.docm、.xlsm 和 .pptm。
由于宏的安全风险很大,微软增加了几项安全措施来限制宏的执行。保护系统最有效的方法是完全禁用宏,但这并不总是可行的,因为宏对于许多组织来说是一种方便的工具。另一种选择是手动启用宏并对文档的来源和完整性实施限制。当用户打开包含宏的文件(包括 .doc 等 OLM 文件)时,Microsoft Office 应用程序将显示警告消息。另一种解决方案是在受保护的视图中打开文件。本质上,该文件仅可用于读取,以防止攻击者执行命令和操纵用户或文件。有关详细信息,请查看Microsoft 的网站。
在卡巴斯基实验室最近记录的一次攻击中,攻击 者发送鱼叉式网络钓鱼电子邮件,引诱受害者打开恶意 Microsoft Excel 文件。该文件使用Excel 4.0 宏,这是用于在 Excel 中自动执行任务的旧版宏。宏隐藏在空单元格和电子表格中,以便在打开文件时下载并执行恶意软件。
另一种攻击方法是基于远程 .dotm模板文件注入。如果攻击者创建一个 .docx 文件并说服受害者打开文件并按下启用内容,该文件将从执行恶意软件的远程位置加载恶意模板文件。虽然 .docx 不包含宏代码本身,但文件的内容会导致宏的执行。
如何检测和分析恶意 Office 宏?
我们分析一下这个doc文件:MD5 : 167949ba90da85c8b56878d95be19c1a 。
首先,我们可以运行 上一节中描述的oleid工具。一旦我们确定文件包含 VBA 宏,我们就可以使用olevba实用程序来获取有关 VBA 的更多信息并查看宏的代码。


现在,我们需要分析宏的代码来了解文件是否是恶意的(宏也可以用于正当理由)。要获取文件中包含 VBA 宏代码的流,您可以解压缩文档文件并打开包含宏的文件(olevba 标识文件名),或使用oledump。
恶意 Microsoft Office 文件中的 VBA 代码经常被混淆,它可能类似于下图。攻击者会混淆宏的代码,使防病毒和恶意软件分析师更难、更耗时地了解代码在做什么。攻击者使用多种技术,包括:
- 加密字符串和 API 调用(通常使用 Base64)
- 添加随机字符以混淆字符串和 API 函数
- 修改函数和变量的名称
- 使用shellcode执行恶意功能
- 动态定义函数
- VBA stomping

有两种方法可以对代码进行反混淆:
- 静态 – 手动解析混淆代码。您可以在 olevba 中使用–decode参数,它将尝试解码 VBA 代码
- 动态地——在沙箱或模拟器(如ViperMonkey )中运行代码
虽然静态恶意软件分析的主要缺点是耗时,但动态分析有时可能无法检测某些技术和恶意 Office 文档。
对代码进行反混淆后,您将更好地了解攻击者试图实现的目标。通常,他们启动 PowerShell 并运行命令以收集有关系统的信息,并从远程主机下载恶意负载以开始下一阶段的攻击。
滥用 Windows 动态数据交换 (DDE)
该技术记录在 MITRE ATT&CK® T1559 中。
DDE 是一种用于在 Microsoft Office 应用程序之间共享数据的协议。对象链接和嵌入 (OLE),即在文档之间共享数据的能力,是使用该协议实现的。该协议使攻击者能够执行不同的命令,包括能够下载额外的恶意负载。此方法可用于 OLE 和 OOXML 文件。
当文档尝试执行 DDE 命令时,较新版本的 Office 应用程序会提醒用户。此后,攻击者制作了他们的网络钓鱼电子邮件,以诱骗受害者忽略这些警报,从而允许执行恶意代码。这种方法被包括APT28 和FIN7在内的威胁参与者广泛使用。
如何检测和分析使用动态数据交换的 Windows 文件
要检测使用 DDE 的文件,您可以扫描文件的字符串并查找关键字,例如DDEAUTO 或DDE。这可能很耗时,并且可能会丢失一些字符串。为了使该过程更容易,您可以使用 旨在识别 DDE 使用的关键字和功能的YARA 规则。使用zipdump 实用程序还可以让您运行 YARA 规则来检查 ZIP 文件的内容。
另一个可用于检测使用 DDE 的文件的工具是来自oletools 的 msodde。使用此感染方法的文件将具有类似于下图的输出。

在此示例中,恶意 Office 文档将从远程服务器下载 HTML (.hta) 文件。恶意 Microsoft Office 文件通常会下载此类文件,它们通常包含 JavaScript 代码,这些代码将为攻击的下一阶段下载有效负载。
滥用 .rels – 模板注入
该技术在 MITRE ATT&CK® T1221中有所描述。
OOXML 文件是由 XML (.rels) 文件组成的 ZIP 档案,其中包含定义文档构造方式的属性。属性可以引用存储在存档文件中、本地计算机上或通过 URL 存储在远程资源上的部分。攻击者可以使用此功能通过将恶意代码存储在远程服务器上来隐藏恶意代码,并避免被标准 EDR 检测到,因为 Office 文档本身不包含恶意代码。可以使用许多类型的属性,其中之一就是模板。
Proofpoint的一份报告 解释了一种使用 RTF 模板注入的新技术,该技术被多个高级持续威胁 (APT) 组织利用。RTF 文件将它们的属性包含为纯文本字符串。攻击者可以修改诱饵 RTF 文件中*template 属性的位置,以引用打开 RTF 文件后加载的恶意脚本。
使用模板注入检测和分析文件
运行 oleid 可以帮助您将注意力集中在文档中可能使用的某种技术上。让我们分析一下这个 .docx 文件:MD5 : 8d1ce6280d2f66ff3e4fe1644bf24247

使用oleobj实用程序,您可以获得本文档中使用的参考。该命令的输出如下所示:

本文档从属于名为 Gamaredon 的 APT 组的域下载一个 Temple 文件 (.dot)。通过分析这些文件,您可以明确归属,并且您还有更多 IoC(包括域和有效负载)来进一步调查。
已知漏洞
微软一直在修补Office产品的已知漏洞。然而,许多组织仍然没有修补他们的软件,这使得攻击者有可能利用几年前的漏洞。CISA 和 FBI 发布了安全警报 ,描述了与微软 OLE 技术相关的三个漏洞,这些漏洞仍然被国家资助的行为者利用。这些漏洞是CVE-2017-11882、CVE-2017-0199和CVE-2015-1641。
惠普研究人员 称,2020 年最常被利用的漏洞是CVE-2017-11882. 成功利用后,攻击者可以在用户打开包含该漏洞的文档后执行任意代码。
检测和分析 Microsoft Office 中的漏洞
当涉及利用漏洞的文件时,很难识别和分析有效负载以确定文件是否是恶意的以及它构成的威胁。
例如,CVE-2017-11882 在 Microsoft 公式编辑器中包含一个缓冲区溢出漏洞,一旦受害者打开特制文档,攻击者就可以执行任意代码。您应该寻找一个包含 shellcode 的 OLE 方程对象并彻底检查它。但即使存在可疑的有效载荷,也需要在沙箱中执行,以确定 shellcode 的作用。
分析恶意 Microsoft Office 文件的一站式商店
我们已经介绍了几种可用于分析 Office 文件的工具和实用程序。不同的文件类型和有效负载有时需要不同的工具。在其他情况下,需要打开文件以允许执行命令和 shellcode,以便调查人员了解文件中传递了哪些恶意软件或威胁。此外,一些攻击包含几个阶段。每个阶段将交付另一个武器化文件。底线是分析恶意 Microsoft Office 文件可能非常耗时,并且需要经验和对不同格式的理解。
幸运的是,Intezer 的恶意软件分析平台 可以帮助您加快文件分类和分析的过程。要开始使用,请将任何 类型的 Microsoft Office 文档上传到平台。分析将为您提供可信或恶意的判断。如果文件是恶意文件,Intezer 还会告诉您它属于哪个恶意软件家族。分析报告中提供的信息使调查人员能够立即了解他们正在处理的威胁类型、能力以及威胁情报团队的相关 IoC。
让我们分析一下我们之前检查过的包含 VBA 宏的文件。分析报告无需花费时间破解混淆代码,而是 为您提供恶意判断并将恶意软件归类为 AsyncRAT。

包含 VBA 宏的文档的分析。
单击 TTP 将显示文件使用的技术和功能以及之后执行的恶意软件。此文件能够执行脚本并自行安装以在 Windows 启动时自动运行,以及其他功能.

单击分析中的 IoC, 您将获得有关文件建立的网络连接的详细信息。网络 IoC 可用于在系统中寻找其他文件,以防威胁者入侵其他端点。

行为为这种威胁提供了更深层次的能力。你可以看到文件的内容。在某些情况下,这可以帮助您了解目标最终用户是谁以及导致代码执行的操作。下面是一个进程树,从打开 Microsoft Word 文件开始并导致恶意软件执行。这使您可以全面了解此威胁使用的程序和进程。接下来,您可以查看恶意软件使用的文件和注册表项的列表。此数据可用于进一步调查受感染的端点并寻找类似的威胁。
结论
攻击者使用 Microsoft Office 文件将恶意软件传送到端点。攻击者正在利用 Office 产品中的不同文件格式和漏洞来启动最终会导致恶意软件的恶意命令。通常,恶意功能被隐藏或混淆,使分析更加困难和冗长。
我们展示了几个开源工具,可以帮助调查人员分析 Office 文件,但在更高级的情况下,该过程仍然很耗时。为了加快对 Office 文件的调查和分类,您可以将它们上传到Intezer Analyze以立即获得完整的分析报告,包括判决和执行的恶意软件类型。
Intezer 支持所有文件类型,包括二进制文件、文档、脚本和档案。注册以每月免费分析和分类 50 个文件。
—
[1] OLE 对象是支持允许在不同文件之间共享和链接的技术的对象。例如,使用这些对象将电子表格添加到 Word 文档。
转载请注明出处及链接