如何辨别恶意Office文件?

admin 2022年6月19日13:54:27评论48 views字数 6247阅读20分49秒阅读模式

如何辨别恶意Office文件?

如何辨别恶意Office文件?

Intezer Analyze 支持所有可用于传播恶意代码的最常见文件类型,包括 Microsoft Office 文件。

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

如何辨别恶意Office文件? 在事件响应期间处理恶意 Microsoft Office 文件

在处理安全漏洞时,事件响应团队将从受攻击的终端收集可疑文件和证据,以调查事件。IR 团队面临的挑战之一是找到攻击中使用的所有恶意文件,并将它们归类到相关的恶意软件家族中。

二进制文件通常是主要的可疑文件,我们知道已经执行了恶意代码,所以我们搜索包含此代码的可疑二进制文件(例如,查找最近安装的程序)。像Microsoft Office文档这样的非二进制文件也应该仔细检查,因为它们可能是导致恶意软件开始执行的攻击的第一阶段。

攻击者广泛使用 Office 文档来传播恶意软件。通常,该文件附加到一封经过精心设计的电子邮件,看起来像是合法的通信。攻击者使用社会工程技术诱使受害者打开恶意附件。

在本文中,我们将解释不同类型的 Microsoft Office 文件格式以及攻击者如何滥用这些文件来传播恶意软件。你还将看到可以帮助你更好地识别和分类恶意 Microsoft Office 文件的工具和技术。

如何辨别恶意Office文件? Microsoft Office 文件格式的类型

当收集可能与某个事件相关的文件时,你可能会注意到许多文件包含不同的扩展名(.txt、.dotm、.zip、.docx、.pdf),它们属于不同的应用程序。在本文中,我们将重点关注Microsoft Office中的三种主要文件格式:Word、Excel和PowerPoint。首先,让我们解释这些文件的结构以及它们之间的区别。

如何辨别恶意Office文件? 对象链接和嵌入 (OLE)

OLE2 格式用于 Microsoft Word 97–2003 文档和其他 Microsoft 产品,例如 Outlook 邮件。众所周知的文件扩展名 .doc、.xls 和 .ppt 都是基于 OLE 格式的文件类型。OLE 文件是一个复合文件,它被构造为文件中的文件系统。OLE 文件被格式化为 ZIP,并且可以使用 oledir 实用程序查看文件的内容(这是 oletools 的一部分,稍后解释)。

OLE 文件包含:

  • 每个流程都有一个名称的数据流程,一个文件必须至少包含一个流程。例如,对于 Word 文档,必须包含一个名为 WordDocument 的流程,它是包含文档文本的主流程;

  • 包含流程或其他存储的存储;

属性是包含文档信息的流程,例如作者、标题、创建和修改日期,属性流程始终以 x05 开头。

如何辨别恶意Office文件?

由oldedir实用程序显示的OLE文件的布局,显示宏存储、主流和属性

如何辨别恶意Office文件? Office Open XML (OOXML)

此文件格式已被合并到 Microsoft Office 2003 中。它是一种基于 XML 的压缩格式,由 Microsoft 开发并用于所有 Microsoft Office 文件。相关的扩展名包括 .docx、.xlsx 和 .pptx。OOXML 文件的结构与 OLE 文件类似,但它们之间存在一些差异:

  • OOXML 文件中的每个目录都包含一个 .xml 文件,可以在下面的屏幕截图中看到。

  • 名为 [Content_Types].xml 的文件必须位于压缩的根目录中,它包含压缩中包含的所有内容类型。

  • OOXML 文件不能包含 VBA 宏(我们将在下一节中详细说明)。

  • OOXML 文件包含任何对象,包括图像、OLE 对象、PE 文件、媒体文件等。

  • 对象之间的关系在扩展名为 .rels 的文件中进行了描述。

如何辨别恶意Office文件?

OOXML 文件的布局

如何辨别恶意Office文件? 富文本格式 (RTF)

RTF 是 Microsoft 开发的另一种文档格式。RTF 文件以一种可以在应用程序之间共享文件的方式对文本和图形进行编码。过去,如果没有 Microsoft Office 甚至 Windows PC,打开 .doc 文件会更加困难,因此使用 RTF 成为一种方便的解决方案。

与我们之前讨论的格式不同,RTF 文件由未格式化的文本、控制字、组、反斜杠和分隔符组成。与 OOXML 一样,RTF 文件不支持宏。

如何辨别恶意Office文件?

用于 RTF 文件的 oleid 实用程序的输出

有关 OLE、OOXML 和 RTF 文件的详细信息,请参阅 Microsoft 的文档。

通常,你永远不应该信任文件的后缀,因为攻击者会故意更改后缀以诱骗受害者打开它们。始终验证你正在分析的文件类型。你可以使用文件命令 (Linux/Mac) 或来自 Didier Stevens 开发的 oletools 的 oleid 实用程序。此实用程序显示有关文件的有用且重要的信息,包括文件类型和加密。

如何辨别恶意Office文件? 为什么文档文件可能是危险的以及如何分析它们

可以通过多种方式使用恶意软件将文档武器化并用于发起攻击。

Office Macros

该技术在MITRE ATT&CK® T1137中有记录。

宏允许用户自动执行一系列可由不同操作触发的命令,从而节省用户时间。通常,宏是用 Visual Basic for Applications (VBA) 编写的,这是一种由 Microsoft 开发并受所有 Microsoft Office 产品支持的语言。创建宏的另一种方法是在 Microsoft Office 应用程序中记录它。宏是一个强大的工具,它为用户提供对本地系统资源的访问和权限。攻击者使用宏来修改系统上的文件并执行下一阶段的攻击。

默认情况下,OOXML 文件(.docx、.xlsx、.pptx)不能用于存储宏。只有具有启用宏的特定文件才能用于包含 VBA 宏。目标是更容易检测具有宏的文件并降低使用宏进行攻击的风险。启用宏的文件在扩展名末尾使用字母 m,例如 .dotm、.docm、.xlsm 和 .pptm。

由于宏存在巨大的安全风险,Microsoft增加了一些安全措施来限制宏的执行。保护系统的最有效方法是完全禁用宏,但这并不总是可能的,因为宏对许多组织来说是一个方便的工具。另一种选择是手动启用宏,并对文档的来源和完整性实施限制。当用户打开包含宏的文件(包括.doc等OLM文件)时,Microsoft Office应用程序将显示一条警告消息。另一种解决方案是在保护视图中打开文件。从本质上讲,该文件只能用于读取,以防止攻击者执行命令和操作用户或文件。有关详细信息,请查看 Microsoft 的网站。

在卡巴斯基实验室最近记录的一次攻击中,攻击者发送鱼叉式网络钓鱼电子邮件,引诱受害者打开恶意 Microsoft Excel 文件。该文件使用 Excel 4.0 宏,这是用于在Excel中自动化任务的宏的旧版本。这些宏隐藏在空的单元格和电子表格中,这样当文件被打开时,恶意软件就会被下载并执行。

另一种攻击方法是基于远程.dotm模板文件注入,如果攻击者创建了一个.docx文件,并诱导受害者打开该文件并按下启用内容,该文件将从一个执行恶意软件的远程位置加载一个恶意模板文件。虽然.docx本身不包含宏代码,但文件的内容会导致宏的执行。

如何辨别恶意Office文件? 如何检测和分析恶意的Office宏?

我们分析一下这个doc文件:MD5: 167949ba90da85c8b56878d95be19c1a。

首先,我们可以像前一节中描述的那样运行oleid工具。一旦我们确定文件包含一个VBA宏,我们可以使用olevba实用程序来获得关于VBA的更多信息,并查看宏的代码。

如何辨别恶意Office文件?

OLE 文件的 Oleid 输出

如何辨别恶意Office文件?

olevba 的部分输出

现在,我们需要分析宏的代码,以了解该文件是否是恶意的(宏也可以用于合法的原因)。要获取文件中包含VBA宏代码的流程,你可以解压缩文档文件并打开包含宏的文件(olevba 标识文件名),或使用 oledump。

恶意 Microsoft Office 文件中的 VBA 代码经常被混淆,它可能类似于下图。攻击者将混淆宏的代码,使防病毒和恶意软件分析师更难了解代码的真正意图。攻击者使用的技术包括:

  • 加密字符串和 API 调用(通常使用 Base64);

  • 添加随机字符以混淆字符串和 API 函数;

  • 修改函数和变量的名称;

  • 使用shellcode执行恶意功能;

  • 动态定义函数;

  • VBA stomping。

如何辨别恶意Office文件?

olevba 输出中显示的模糊 VBA 宏

有两种方法可以对代码进行反混淆:

  • 静态方法:手动解析混淆代码,你可以在 olevba 中使用 –decode 参数,它将尝试解码 VBA 代码;

  • 动态方法:在沙箱或模拟器(如 ViperMonkey)中运行代码;

虽然静态恶意软件分析的主要缺点是耗时,但动态分析有时可能无法检测某些技术和恶意 Office 文档。

对代码进行反混淆后,你就可以更好地了解攻击者试图实现的目标。通常,他们启动 PowerShell 并运行命令以收集有关系统的信息,并从远程主机下载恶意负载以开始下一阶段的攻击。

如何辨别恶意Office文件? 滥用 Windows 动态数据交换 (DDE)

该技术被记录在MITRE ATT&CK® T1559中。

DDE 是一种用于在 Microsoft Office 应用程序之间共享数据的协议。对象链接和嵌入 (OLE),即在文档之间共享数据的功能,是使用该协议实现的。该协议使攻击者能够执行不同的命令,包括能够下载额外的恶意负载。此方法可用于 OLE 和 OOXML 文件。

当文档尝试执行 DDE 命令时,较新版本的 Office 应用程序会提醒用户。此后,攻击者制作了他们的网络钓鱼电子邮件,以诱骗受害者忽略这些警报,从而允许执行恶意代码。这种方法被包括 APT28 和 FIN7 在内的攻击者广泛使用。

如何辨别恶意Office文件? 如何检测和分析使用动态数据交换的 Windows 文件

要检测使用 DDE 的文件,你可以扫描文件的字符串并查找关键字,例如 DDEAUTO 或 DDE。这可能很耗时,并且可能会丢失一些字符串。为了使这个过程更简单,你可以使用YARA规则,该规则旨在识别DDE使用的关键字和特性。使用 zipdump 实用程序还可以让你运行 YARA 规则来检查 ZIP 文件的内容。

另一个可以用来检测使用DDE的文件的工具是来自oletools的msodde。使用此感染方法的文件将具有类似于下图的输出。

如何辨别恶意Office文件?

msodde 的输出

在此示例中,恶意 Office 文档将从远程服务器下载 HTML (.hta) 文件。恶意 Microsoft Office 文件通常会下载此类文件,它们通常包含 JavaScript 代码,这些代码将为攻击的下一阶段下载有效负载。

滥用 .rels:模板注入

该技术在 MITRE ATT&CK® T1221 中有描述。

OOXML 文件是由 XML (.rels) 文件组成的压缩文件,其中包含定义文档构造方式的属性。属性可以引用存储在压缩文件中、本地计算机上或通过 URL 存储在远程资源上的部分。攻击者可以使用此功能通过将恶意代码存储在远程服务器上来隐藏恶意代码,并避免被标准 EDR 检测到,因为 Office 文档本身不包含恶意代码。可以使用许多类型的属性,其中之一就是模板。

来自Proofpoint的一份报告解释了一种使用RTF模板注入的新技术,该技术正被几个高级持久威胁(APT)组利用。RTF 文件将它们的属性包含为纯文本字符串。攻击者可以修改诱饵 RTF 文件中 *template 属性的位置,以引用打开 RTF 文件后加载的恶意脚本。

如何辨别恶意Office文件? 使用模板注入检测和分析文件

运行 oleid 可以帮助你将注意力集中在文档中可能使用的某种技术上。我们来分析一下这个.docx文件:MD5: 8d1ce6280d2f66ff3e4fe1644bf24247

如何辨别恶意Office文件?

oleid的输出

使用oleobj工具,你可以获得本文档中使用的引用。命令显示如下:

如何辨别恶意Office文件?

oleobj 的输出

本文档从属于名为 Gamaredon 的 APT 组的域下载一个 Temple 文件 (.dot)。通过分析这些文件,你可以明确归属,并且你还有更多 IoC(包括域和有效负载)来进一步调查。

如何辨别恶意Office文件? 已知漏洞

微软一直在修补Office产品的已知漏洞。然而,许多组织仍然没有修补他们的软件,这使得攻击者有可能利用几年前的漏洞。CISA 和 FBI 发布了安全警报,描述了与微软 OLE 技术相关的三个漏洞,这些漏洞仍然被攻击者利用。这些漏洞是 CVE-2017-11882、CVE-2017-0199 和 CVE-2015-1641。

惠普研究人员发现,2020 年最常被利用的漏洞是 CVE-2017-11882。成功利用后,攻击者可以在用户打开包含该漏洞的文档后执行任意代码。

如何辨别恶意Office文件? 检测和分析 Microsoft Office 中的漏洞

当涉及利用漏洞的文件时,很难识别和分析有效负载以确定文件是否是恶意的以及它潜藏的威胁。

例如,CVE-2017-11882 在 Microsoft 公式编辑器中包含一个缓冲区溢出漏洞,一旦受害者打开特制文档,攻击者就可以执行任意代码。你应该寻找一个包含 shellcode 的 OLE 方程对象并彻底检查它。但即使存在可疑的有效载荷,也需要在沙箱中执行,以确定 shellcode 的作用。

如何辨别恶意Office文件? 分析恶意 Microsoft Office 文件的一站式商店

我们已经介绍了几种可用于分析 Office 文件的工具和实用程序。不同的文件类型和有效负载有时需要不同的工具。在其他情况下,需要打开文件以允许执行命令和 shellcode,以便调查人员了解文件中传播了哪些恶意软件或威胁。此外,一些攻击包含几个阶段。每个阶段将交付另一个武器化文件。最重要的是,分析恶意的Microsoft Office文件可能很耗时,需要经验和对不同格式的理解。

幸运的是,Intezer的恶意软件分析平台可以帮助你加快文件分类和分析的过程。首先,将任何类型的Microsoft Office文档上传到该平台。分析将为你提供可信或恶意的判断。如果文件是恶意的,Intezer也会告诉你它属于什么恶意软件家族。分析报告中提供的信息使调查人员能够立即了解他们正在处理的威胁类型、其功能以及威胁情报团队的相关IOC。

让我们分析我们之前检查过的包含 VBA 宏的文件。该分析报告提供了一个恶意判断,并将恶意软件分类为AsyncRAT,而不是花时间破解这些模糊的代码。

如何辨别恶意Office文件?

Intezer 分析包含 VBA 宏的文档分析

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

如何辨别恶意Office文件?

对TTP 选项卡的分析

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

如何辨别恶意Office文件?

IoC 显示恶意软件使用的 IP 地址和域以及 Word 文档下载的文件的哈希值

上述行为为这种威胁提供了更深层次的功能。你可以看到文件的内容。在某些情况下,这可以帮助你了解谁是目标终端用户,以及什么操作导致了代码的执行。下面是一个进程树,从打开 Microsoft Word 文件开始并导致恶意软件执行。这使你可以全面了解此威胁使用的程序和进程。接下来,你可以查看恶意软件使用的文件和注册表项的列表。此数据可用于进一步调查受感染的终端并寻找类似的威胁。

如何辨别恶意Office文件? 总结

攻击者使用 Microsoft Office 文件将恶意软件传送到终端。攻击者正在利用 Office 产品中的不同文件格式和漏洞来启动最终会导致恶意软件的恶意命令。通常,恶意功能被隐藏或混淆,使分析更加困难和冗长。

参考及来源:https://www.intezer.com/blog/malware-analysis/analyze-malicious-microsoft-office-files/

如何辨别恶意Office文件?

如何辨别恶意Office文件?

原文始发于微信公众号(嘶吼专业版):如何辨别恶意Office文件?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月19日13:54:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何辨别恶意Office文件?https://cn-sec.com/archives/1128261.html

发表评论

匿名网友 填写信息