利用Veil-Evasion绕过杀毒软件检测的C2通信技术

本文详细介绍了如何通过Veil-Evasion工具生成混淆的PowerShell脚本,并利用PowerPoint宏和自定义动作建立C2通信连接,成功绕过Gmail、Windows Defender、McAfee和Symantec等杀毒软件的检测。

点击启用内容 - 黑山信息安全有限公司

注意: 本博客中提到的技术和工具可能已过时,不适用于当前情况。然而,这篇博客仍可作为学习机会,并可能更新或集成到现代工具和技术中。

在黑山信息安全(BHIS),规避杀毒软件扫描器已成为一种常见的“运动”。当我们为客户进行C2测试时,我们从内部网络的主机开始,创建一个反向连接到我们的C2服务器。然后,我们进出发送各种类型的数据,看看是否被捕获。目标是展示他们的防御措施如何防止和/或检测我们的“恶作剧”。我们的成功率相当高(意味着我们通常能够从网络中渗出数据),主要原因是识别恶意流量非常困难!攻击者可以混淆他们的流量,使杀毒扫描器和其他安全设备无法检测到任何不当行为。通常,杀毒扫描器和入侵预防/检测引擎会阻止或警报已知的不良签名或行为。这是一种黑名单方法。因此,只要我们能将流量从已知不良改为其他任何内容,我们就可以顺利通过。那么,我们如何在不被注意的情况下从内部网络建立到C2服务器的初始连接呢?有时,一个简单的PowerShell脚本连接到Metasploit监听器就能奏效。而其他时候,我们必须更努力一些。

在最近的一次测试中,我们使用了一个恶意的PowerPoint演示文稿,伪装成一个有趣的幻灯片,承诺揭示 irresistible 的公司八卦。“点击欲望”评级很高。嵌入在PowerPoint演示文稿中的是Visual Basic命令,调用PowerShell脚本连接到C2服务器。该脚本使用强大的Veil-Evasion工具进行了混淆。以下是详细过程……

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

接下来,我们使用Veil-Evasion创建我们的负载。我们只需要告诉Veil-Evasion我们想要连接的地址和端口,以及负载类型,它就会完成其余的工作。

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

Veil-Evasion混淆脚本 如上所示,Veil-evasion创建了脚本,但有一个问题;脚本是一个单行,在这种情况下由2300个字符组成:

2300字符,单行脚本 Office中的Visual Basic编辑器对此非常不满意。事实上,这会导致错误。我们需要找到一种方法将这个脚本分解成VB编译器可以处理的较小部分。幸运的是,有人已经为我们做了这件事。Macro_safe.py是一个简洁的小Python脚本,专门为解决这个问题而编写。将输出通过macro_safe.py脚本运行后,我们得到了一个PowerPoint乐意接受的恶意脚本版本。

Macro_safe.py将长行分解为Visual Basic的较短行 下一步是打开我们的PowerPoint演示文稿并添加“宏安全”代码。首先,我们确保可以访问PowerPoint中的“开发人员”选项卡,必要时将其添加到功能区。这可以通过PowerPoint选项完成。

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

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

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

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

有了对机器的初始访问权限,攻击者可以继续上传或下载文件,尝试提升权限,转向其他机器等。

我们在BHIS的目标是教育客户关于信任杀毒产品捕获一切的危险,以及忽略安全警告的潜在后果。因此,为此目的,这个Veil-Evasion混淆的PowerPoint文档用Gmail扫描器、Windows Defender、McAfee A/V和Symantec A/V进行了扫描。这些工具都没有检测到恶意内容。检查一下:

Gmail未能检测到恶意文档

McAfee失败

Windows Defender失败

Symantec …….. 不

底线?在我们的例子中,唯一的麻烦迹象是PowerPoint关于在PowerPoint演示文稿上启用活动内容的单一警告,由最终用户决定是否继续。如果用户必须做出这些决定,他们必须持续教育他们所面临的潜在危险。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计