office宏绕过杀软诱导点击实现主机控制

绕过防病毒扫描已经成为 BHIS(Black Hills Information Security)的一项运动。当我们为客户进行指挥控制(C2)测试时,我们从内部网络上的主机开始,创建一个反向连接到我们的C2服务器。然后,我们继续发送各种类型的数据进出,看看是否会被捕获。目标是展示他们的防御系统如何有效地防止和/或检测我们的恶意行为。我们的成功率相当高(这意味着我们通常能够将数据从网络中导出),主要原因是识别恶意流量非常困难!攻击者可以对其流量进行混淆,使得防病毒扫描程序和其他安全设备无法检测到任何不当行为的迹象。通常,防病毒扫描程序和入侵防御/检测引擎会阻止或警报已知的恶意签名或行为。这是一种黑名单方法。因此,只要我们能够将流量从已知的恶意流量更改为任何其他流量,我们就能轻松通过。那么,如何在不被注意的情况下,从内部网络到我们的C2服务器建立初始连接呢?有时一个简单的PowerShell脚本连接到Metasploit监听器就能奏效。而有时我们必须更努力一些。

在最近的一次测试中,我们使用了一个恶意的PowerPoint演示文稿,伪装成一个有趣的幻灯片,承诺揭示令人难以抗拒的公司八卦。点击的“冲动指数”非常高。在PowerPoint演示文稿中嵌入了调用PowerShell脚本的Visual Basic命令,以连接到C2服务器。该脚本使用强大的Veil-Evasion工具进行了混淆。以下是具体步骤……

首先,我们在C2服务器上设置监听器。在此示例中,我们使用反向TCP连接监听443端口。我们选择443端口,因为它通常允许出站连接。

图片

接下来,我们使用Veil-Evasion创建了我们的有效负载。我们只需要告诉Veil-Evasion我们要连接的地址和端口以及有效负载的类型,剩下的工作它都会自动完成。

图片

Veil-Evasion生成的脚本如下所示:

图片

Veil-Evasion混淆后的脚本如下所示

如上所见,Veil-Evasion生成了这个脚本,但有一个问题:这个脚本是一行代码,在这个例子中,它包含了2300个字符。

图片

2300个字符,一行脚本

Office中的Visual Basic编辑器不支持此python。我们需要找到一种方法将这个脚本分解成较小的片段,以便VB编译器能够处理。幸运的是,有人已经为我们做了这件事。Macro_safe.py是一个很棒的小Python脚本,专门用于解决这个问题。通过将输出通过macro_safe.py脚本运行,我们得到了一个PowerPoint可以轻松处理的恶意脚本版本。

图片

macro_safe.py将长行分解为较短的行,以便Visual Basic处理

接下来的步骤是打开我们的PowerPoint演示文稿,并添加“macro safe”代码。首先,我们确保我们可以访问PowerPoint中的“开发人员”选项卡,如果需要,可以通过PowerPoint选项将其添加到功能区中。

macro_safe.py将长行分解为较短的行,以便Visual Basic处理

接下来的步骤是打开我们的PowerPoint演示文稿,并添加“macro safe”代码。首先,我们确保我们可以访问PowerPoint中的“开发人员”选项卡,如果需要,可以通过PowerPoint选项将其添加到功能区中。

图片

在PowerPoint中启用开发人员选项卡

在PowerPoint允许我们创建宏之前,我们需要将演示文稿保存为 .pps(PowerPoint 97-2003 Show)或 .ppsm(PowerPoint Macro-Enabled Show)类型。我喜欢使用legacy.pps扩展名,因为在新版本的Office中,“m”给出了另一个提示,表明有些问题。然后,我们点击开发人员选项卡,打开Visual Basic界面并插入一个新模块。这是我们粘贴包含正确格式的Veil-Evasion脚本的“macro safe”输出的地方。以下是这些步骤。

图片

一旦宏存在于文档中,我们需要找到一种方法来触发其执行。Microsoft Word和Excel都有选项,可以在打开文件时自动运行宏,但PowerPoint没有这个选项。我听说过和读过一些关于在PowerPoint中实现相同效果的黑客方法,但在这种情况下,我们将简单地使用演示文稿中的自定义操作来触发代码的执行,当用户在幻灯片内点击时。我创建了一个覆盖整个第一张幻灯片的文本框,并在那里应用了“鼠标点击时”操作。因此,当用户打开演示文稿并在第一张幻灯片上的文本框中的任何位置单击时,宏将执行并创建一个出站连接。您也可以选择在“鼠标悬停时”执行宏,但是这可能会有点不稳定,因为它可能会创建多个出站连接。

图片

但等等,通常情况下,默认情况下不会启用宏,所以用户必须同意启用宏,对吧?是的。事实证明,PowerPoint会显示一个非常明确的警告,指出这个文档可能是恶意的。“除非内容提供关键功能并且您信任其来源,否则应保持此内容处于禁用状态”。你可能会认为这是一个描述性的、可理解的警告,足以阻止用户启用未知内容。但事实证明……

图片

如果你发送了它 - 他们会点击。这就是攻击者所依赖的。现在不要误会我的意思。我并不是说用户应该总是知道更好。互联网上充满了警告,安全人员经常允许使用不受信任的证书,用户被告知要“点击通过”。让我们面对现实 - 用户经常收到混乱的信息,因此他们对错误消息感到疲劳并不奇怪。基本上,当用户真的想查看文档的内容时,他/她会几乎点击通过任何警告,而不会意识到在背景中非常安静地发生了一些不好的事情 - 在这种情况下,他们的机器正在与我们的C2服务器建立联系。

图片

通过对计算机进行初始访问,攻击者随后可以上传或下载文件,尝试提升权限,转向其他计算机等。

我们在BHIS的目标是教育我们的客户,让他们了解信任反病毒产品能够捕获一切的危险,以及忽略安全警告可能带来的潜在后果。因此,这个经过Veil-Evasion混淆的PowerPoint文档已经通过Gmail扫描器、Windows Defender、McAfee A/V和Symantec A/V进行了扫描。这些工具都没有检测到恶意内容。

图片

Gmail未能检测到恶意文档。

图片

McAfee未能检测到。

图片

Windows Defender 未检测到

图片

Symantec也没有。

在本文中,唯一的麻烦是PowerPoint对在PowerPoint演示文稿中启用活动内容的单一警告,最终用户必须决定是否继续。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值