什么是Office宏?

image-20210720150905948

宏是一种特殊用途的程序,用于在较大的应用程序或软件中实现过程自动化。宏通常由一系列命令和操作组成,这些命令和操作是用专用的宏语言或标准编程语言编写的。当某个触发器发生时,应用程序将自动执行这些命令。

宏在 Office 套件中得到广泛实现,以实现常见任务和过程的自动化。不同的套件使用不同的宏语言,但值得注意的是 Visual Basic for Applications (MS Office)、 LibreOffice Basic (LibreOffice)和 OpenOffice Basic (OpenOffice Basic)。

大多数 Office 宏语言具有相当广泛的特性,可以访问各种资源。例如,MS Office 宏(用 VBA 编写)可以运行可执行文件并使用网络功能。

为什么这是一个问题?

正如任何允许在后台执行可定制脚本的程序一样,攻击者可以利用 Office 套件运行恶意代码并危害受害者。通常宏恶意软件在感染链中扮演加载程序的角色,在终止之前会下载并执行另一个有效载荷。这个恶意软件会被植入到——你猜对了——一个 Office 文件中,然后被植入到某个地方,让受害者可以访问它,比如说一个共享文件或者通过电子邮件。一旦文件被打开,恶意软件将被执行。这被称为鱼叉式钓鱼攻击 ,它已经流行了很长一段时间。

宏恶意软件的一个令人难忘的例子是 Melissa 病毒,它最早出现在1999年。这个恶意软件嵌入在一个微软 Word 文件中,一旦打开,就会自动发送电子邮件给受害者通讯录中的前50个联系人。虽然它没有对个人用户造成多大伤害(除了意外地给 DDOS 造成了几个邮件服务) ,但造成的损失总值估计为8000万美元,攻击者被判处在联邦监狱服刑20个月。

鱼叉式网络钓鱼方法也被各种团体用于复杂的 APT 攻击,包括一些被认为与间谍机构有联系的团体。在一些更复杂的攻击中,合法的办公文件被恶意的、看起来完全相同的文件替代。那么,为什么世界各地的黑客,包括高级黑客组织,会选择使用一种自90年代以来没有太大变化的攻击机制呢?

用户执行

在当今不断发展的国防环境中,鱼叉式网络钓鱼攻击依赖于一个独特的漏洞,这个漏洞很难完全缓解人为错误。攻击者等待受害者采取某些行动(比如,打开一个文件)来获得执行,而不是依赖于受害者机器的漏洞。

此外,MS Office 宏执行通常是默认启用的,或者在打开恶意文件时单击鼠标即可执行。这为用户的错误创造了很大的余地,并增加了攻击成功的可能性。

依靠用户执行还允许攻击者专门针对非技术用户进行攻击和引诱,从而损害整个企业的利益。但是,正如我们将在下面看到的,通过实现适当的端点防御机制和教育用户,缓解仍然是可能的。

以下是微软威胁情报中心在2016年夏天收集的一个常见的微软 Office 宏诱饵的例子:

测试

这里用Cobalt Strike生成恶意的宏代码,并以此创建一个恶意的word文件。当受害者有意或无意打开此文件且启用宏,攻击者就可以通过提前设置好的监听器连接到受害者的机器,从而进一步地利用。

前提:因不能免杀,遇到杀毒软件直接gg,故测试过程中关闭了所有杀毒软件。(火绒yyds!)

image-20210720162518210

1.创建监听器

image-20210720153514707

2.生成宏代码

image-20210720154150695

3.新建word文档

选择视图–>宏–>设置宏名–>创建

image-20210720154704861

删除原有内容,把前面复制的宏代码粘贴进去,然后保存。

image-20210720154946944

回退到office页面,注意:“保存类型”选择“启用宏的Word文档(*.docm)”

image-20210720155243514

4.快乐上线

当目标点击此word文档且启用宏后,就可以快乐上线CS了。

image-20210720160739658

通过CS后续利用~

image-20210720160021211

防御措施

监督宏执行

鱼叉式钓鱼的尝试依赖于用户执行和人为错误来实现。因此,降低风险的最有效策略之一就是在整个组织中限制使用宏。

如果一个组织不使用宏,它们也可能被完全禁用。但事实并非总是如此。当宏必须使用时,应该设置策略以尽量减少受到攻击的可能性(在 Windows 上,这可以通过组策略编辑器完成)。这可以通过两种互补的形式来实现:

  • App Policy 应用程序政策 。宏应该只在它们实际使用的应用程序中启用——不管是 Excel、 Word、 PowerPoint 等。此外,组织可以选择只从受信任位置启用宏、经过数字签名的宏等
  • User Policy 用户政策 。在企业环境中,应该只为实际使用该功能的用户启用宏

减少攻击面

攻击面是敌方可能危害设备或网络的方式或地点的总数。在宏恶意软件的背景下,可以修改 VBA 宏访问的功能、资源和 COM 对象,以减少攻击面。

通过限制对恶意软件运行所必需的资源的访问,积极地减少端点的攻击面。在这些规则和限制中,下面是一些专门针对 Office 宏攻击的规则和限制:

  • 阻止 Office 应用程序创建可执行代码
  • 阻止来自 Office 宏的 Win32调用
  • 阻止Office 应用程序创建子进程
  • 阻止 Office 应用程序向其他进程注入代码

参考