导语:作者读了一篇关于绕过保护视图的博客,就尝试把这种方法应用到其他的office组件中。然后选择了Access,并进行了验证。

可执行数据库方法

作者读了一篇关于绕过保护视图的博客,就尝试把这种方法应用到其他的office组件中。想到这一点,作者就在Access进行了尝试。另存为的文件类型选项有:

01-make-accde.png

ACCDE这种文件类型和标准数据库文件的区别是什么呢?下面我们去寻找真相。

首先,打开Microsoft Access 2016,创建一个空的数据库。

02-blank-db.png

然后,需要找一个点去放置Empire stager代码。Microsoft Access宏只触发那些不含代码的。实际执行的代码是保存在module(模块)中,module的定义是一系列用户定义的函数、子路径和全局变量,这些都是用VBA代码编写的。然后这些对象就可以在Access数据库中被使用和调用。

打开空的数据库文件后,选择创建(create)—模块(module):

03-module.png

这样就可以写代码了,本例中,作者使用了标准的Empire 宏payload。

04-empire-macro.png

关闭这个新宏之后,对这个module进行重命名操作。如果想要掩盖数据库的怀疑,那么重命名操作就是很重要的。

05-macro-name.png

Module中已经有了stager,下一步就是创建宏来触发它。选择create—macro:

06-macro-button.png

点击下拉菜单,选择“运行代码(RunCode)”

07-runcode.png

RunCode的触发需要VBScript中的函数名,可以自动填充函数名。在此,作者选择在VBScript中修改函数名:

08-function-name.png

在关闭宏时,选择另存为,重命名宏为autoexec。当接收者打开该文件时,宏就会自动执行。

09-macro-saveas.png

为了让该文件看起来更真实,作者修改了table名,并在里面填充了一些虚假信息。一旦用户打开如图界面,他们就被感染了。

10-table.png

为了创建可执行文件,作者把payload保存为标准数据库文件——ACCDE。这样数据库文件就被锁定了——无法进行编辑。

11-savedb.png

这就有了同一个文件的两个版本,普通的数据库文件格式和同一数据库只能执行(execute only)的版本。都是通过autoexec宏触发VBScript,提供对目标主机的访问的。Payload如图:

12-twoversions.gif

注意以上两个payload安全警告的区别。对ACCDE格式,点击之后是没有宏告警的,只有关于内容不安全的告警消息。

PAGE_BREAK: PageBreak

13-warning.png

当作者把ACCDE格式的文件传到virustotal.com网站进行检测时,结果显示完美地绕过了所有检测。

14-results.png

下面是代理所在的进程树,Empire是用WMI来启动PowerShell的。

15-powershell.png

还可以用其他的项目来增强payload,比如CACTUSTORCH项目。

结论

作者创建一个钓鱼payload的目的达到了,只需要点击一次就可以感染用户。同时证明了两种文件类型的区别。将含有恶意宏的数据库保存为标准数据库文件“.accdb”,Access会警告我们文件中含有恶意宏。当我们保存为“.accde”文件时,Access不会警告用户关于包含恶意宏内容。

钓鱼攻击很难防御,许多防御的策略都是基于终端用户的,而且钓鱼攻击单元逐渐增多,让这个威胁不断发展。在本例中,监控和拦截.accde文件可以进行预防,如果不能监控父子进程的关系,那可以选择监控office产品的批量进程,比如powershell.exe 和 rundll32.exe。防御者需要与时俱进,跟随攻击者的步伐,来进行有效地应对。

源链接

Hacking more

...