使用 Microsoft Access Macro (.MAM) 快捷方式钓鱼的方法

前言

在此之前,我在博客中提到了创建恶意的.ACCDE Microsoft Access Database文件并将其用作网络钓鱼载体的方法。这篇文章详细介绍了使用ACCDE格式,并介绍Microsoft Access Macro(MAM)快捷方式实现通过网络钓鱼访问。MAM文件基本上是一个直接链接到Microsoft Access Macro的快捷方式。至少从Office 97开始就有了。

 

创建MAM

对于这个练习,我们将创建一个简单的弹出calc.exe的Microsoft Access Database。然而我们可以嵌入任何东西,从简单的宏payload到成熟的DOTNET2JSCRIPT payload。首先,打开MS Access并创建一个空白数据库,然后应该有这样的东西:

现在,定位到Create并选择Module。这将打开Microsoft Visual Basic for Applications编辑器。

在Microsoft Access中,我们的模块将包含我们的代码库,而宏将告诉Access运行VB代码。你很快就会明白我的意思了。

好的,我们需要一些代码。一个简单的“pop calc”就行了。我将把这个问题留给读者,或者参考我以前的博客文章。

注意我是如何将函数调用添加到代码中的。当我们创建宏时,它将查找函数调用而不是子调用。

现在,保存模块并退出代码编辑器。

保存了模块之后,就可以创建宏来调用模块了。打开“Create”并选择“Macro”。使用下拉框选择“Run Code”并选择你的宏函数。

接下来,通过单击Run选项来测试宏,Access将提示你保存宏。如果希望宏在文档打开时自动运行,请务必将其保存为Autoexec。

数据库完成后,我们就可以保存项目了。需要先保存为.accdb格式,以便以后可以修改项目。

然后,我们将再次保存我们的项目。这一次,选择Make ACCDE 选项。这将创建数据库的“execute only/只执行”版本。

如果我们想要的话可以把ACCDE作为附件添加到电子邮件或链接到它,作为我们钓鱼时payload的选项。然而,除了发送文件之外,还有更多的事情要做。我们可以创建MAM快捷方式,这个快捷方式将远程链接到ACCDE文件并在Internet上运行内容。

确保打开ACCDE文件,单击鼠标左键,将宏拖到桌面上。这将创建你可以修改的初始.MAM文件。用你最喜欢的编辑器或记事本打开它,看看我们能修改什么。


可以看到,这个快捷方式本身并没有太大的意义。我们主要关心的是更改DatabasePath变量,因为我们将远程托管EXECUTE数据库。有了这个变量,我们有几个选项。我们可以在SMB或Web上托管ACCDE文件。通过SMB承载可能具有双重用途,因为我们可以捕获凭据,并且只要允许445端口不是你的目标网络。在这本文中,我将演示如何在http上做到这一点。让我们远程托管我们的ACCDE文件并修改我们的.MAM文件。

 

Phish

在远程主机上,使用你首选的web宿主方法提供ACCDE文件。

编辑.MAM文件以指向Web服务器上的ACCDE。

现在,我们的任务是交付我们的MAM payload到我们的目标。一些提供程序阻止MAM文件,Outlook在默认情况下会阻止MAM文件,因此,在这个场景中,我们将发送一个钓鱼链接到我们的目标,并将我们的MAM文件简单地托管在我们的Web服务器上,或者可以使用Apache mod_rewrite进行一些奇怪的重定向,如@bluscreenofjeff详述的那样。

一旦我们的用户点击我们的网络钓鱼链接(在这种情况下使用边缘浏览器),他们将被提示打开或保存文件。

接下来,系统会提示他们使用安全警告再次打开该文件。

最后,向目标用户提示最后一个安全警告,并向用户显示远程托管IP地址或域名。这里要注意的关键点是,在此之后,没有显示宏或受保护的视图警告,也没有阻止此宏运行。

一旦用户单击“打开”,我们的代码将运行。

虽然有几个安全提示,但我们还是进入了我们的目标网络。

 

OPSEC

这个payload很好,因为它是一个简单的快捷文件,并且可以远程调用我们的payload。但是,运行后还剩下什么呢?让我们使用promon检查流程和文件系统活动。

第一个有趣的条目是“CreateFile”调用,它执行上面图片中的命令行。命令行审核要查找的东西是“ShellOpenMacro”字符串。

接下来,我们观察从本地机器保存并执行远程ACCDE文件。虽然我们的payload似乎是远程调用的,但它被下载到了“%APPDATA%LocalMicrosoftWindowsINetCacheContent.MSO95E62AFE.accdePopCalc.accde”。对于进攻性的交战,这个文件应该注意清理。

 

缓解措施

在Microsoft Office 2016中,你可以让GPO阻止从Internet执行宏,或者为每个Office产品设置以下注册表项。

ComputerHKEY_CURRENT_USERSoftwareMicrosoftOffice16.0AccessSecurityblockcontentexecutionfrominternet = 1

如果用户在执行该设置时被钓鱼,他们将被拒绝执行该程序。应该注意的是,即使宏被阻塞,MAM文件仍然伸出手来拉下访问文件。因此,仍然有机会知道你的phish是否被接收和执行,或者通过SMB窃取凭据。

 

结论

在本文中,我介绍了将Microsoft Access Macro快捷方式武器化以通过HTTP调用payload所需的步骤。虽然这个文件类型通常被Microsoft Outlook阻止,但在Gmail中允许使用,也可以通过HTTP或SMB提供。我还展示了在哪里可以找到工具并启用宏阻塞,以防止这种类型的攻击。

更重要的是,防御者要熟悉各种网络钓鱼的payload和他们留下的工具。我希望这篇文章能帮助人们了解这一特定的攻击向量,以及与之相关的IoC。

审核人:yiwang   编辑:边边

(完)