利用ActiveX控件在Microsoft Word中实现UNC路径注入的趣味探索
在红队和渗透测试中,测试假设始终是重要且有价值的。我经常听到渗透测试人员、红队成员和客户的一个主要假设是:大多数网络(或他们自己的网络)会阻止出站SMB流量。在我的钓鱼载荷中,我总是尝试注入UNC路径:如果目标环境禁用了宏,但该假设被证明是错误的,我仍然可能获取用户的Net-NTLM哈希。
Word文档中的UNC路径注入远非新鲜事。多年来,已有多个博客文章介绍如何实现这一点。然而,它们都涉及修改文档底层的XML,这使得过程有些繁琐和耗时。
不久前,我有一些空闲时间,决定摆弄Word,看看是否能发现什么有趣的东西(灵感来自@subtee和@enigma0x3当时在WWHF发布的一些工作),但我也感到非常懒,所以我想,如果我开始按那些人们很少使用或看到的非常小/隐藏的按钮,我可能会幸运地遇到一些有趣的东西。
事实证明,这完全是一种发现精彩的有效方法……
以下内容已在Windows 7到10上使用最新版本的Office进行测试。
使用Windows Media Player ActiveX控件进行UNC路径注入
首先,我可能需要启用开发者工具。它们默认不在功能区中,这意味着这可能是一个开始寻找的好地方:文件 -> 选项 -> 自定义功能区 -> 向下滚动右侧窗格并勾选“开发者工具” -> 确定,然后瞧:
在悬停在一些按钮上后,带有螺丝刀和扳手的小工具箱引起了我的注意,尤其是当我读到描述说“传统工具”时(“传统”这个词就吸引了我……):
点击它后,出现了另一个选择框:
摆弄“传统表单”对象并没有带来成果。“ActiveX控件”似乎更有趣:看啊,又是另一个螺丝刀和扳手图标,让我们点击它!
我们进入兔子洞!遵循“寻找人们很少使用或看到的东西”的主题,让我们将这个坏家伙一直向下滚动,看看最后几个控件是什么:
好吧,我对这些一无所知(好迹象),但我知道Windows Media Player是什么!点击
我向您展示Word文档中的Windows Media Player;我的大脑正式被震撼了,我有很多问题。现在我必须至少让它播放点什么,我陷得太深了!嗯,右键上下文菜单中有一个“属性”:
哇!等等,现在这从有趣变得非常有趣了!有一个URL字段!如果我给它一个UNC路径会发生什么?它会尝试向我指定的服务器进行身份验证吗?
果然,保存、关闭、重新打开文档,不仅没有安全警告,我们还得到了一个Net-NTLM哈希!
细心的读者可能已经注意到属性窗口中还有高度和宽度字段,让我们玩经典的 yet underappreciated 游戏“在我的Word文档中寻找Windows Media Player”:
令人印象深刻!我相当确定我赢了 😉
使用“ShockWave Flash Object”ActiveX控件进行UNC路径注入
在同一个“更多控件”菜单中,我发现“ShockWave Flash Object”ActiveX控件也可以用于UNC路径注入:
将其插入文档并打开其属性窗口显示了许多我们可以摆弄的字段。我们对“EmbedMovie”和“Movie”字段感兴趣:通过将第一个字段设置为true,后者设置为UNC路径,我们得到了与之前相同的结果:当文档打开时,ActiveX控件自动向我们指定的服务器进行身份验证。它也有高度和宽度字段,因此我们也可以使其完全不可见。
进一步研究与随机观察
在摆弄这些控件时,我注意到了一些事情:
- 如果ActiveX控件无法连接到指定的SMB服务器,它将自动回退到WebDav(UNC路径的正常行为,但有趣的是ActiveX控件仍然如此)。
- 给定一个http[s] URL,它们将向指定资源执行HTTP GET请求。这可能非常有趣,例如与Windows Media Player ActiveX控件中的文件格式漏洞结合使用。
在谷歌搜索时,我遇到了2016年一篇非常有趣的博客文章,标题为“通过ActiveX控件运行宏”。事实证明,正如标题所暗示的,您可以使用许多这些控件通过其内置过程运行宏,而不是使用“通常保留的名称,如AutoOpen()和Document_Open()来自动运行宏。”
这种方法的好处是,安全警告提示与标准宏的完全不同,意味着如果用户被训练只寻找宏警告,他们可能会上当。
我已经在最新版本的Office上测试过,它仍然有效。这是打开使用ActiveX控件自动运行宏的启用宏的文档时显示的提示。#PhishingProTip 😉
我强烈推荐阅读那篇博客文章,因为作者甚至提供了示例文档供摆弄。
披露时间线
尽管Microsoft过去没有解决Word中的UNC路径注入问题,但我认为至少向他们报告Windows Media Player方法是最好的,因为它很容易武器化:
- 2018年2月23日 – 向MSRC初始报告
- 2018年2月25日 – MSRC回复:分配案例编号
- 2018年7月10日 – MSRC回复:问题关闭为“深度防御修复”
对于蓝队…
显然,快速的修复方法是实施适当的出口过滤并阻止出站SMB(端口445)。如果由于某种原因不可能,您可以通过组策略首选项完全禁用ActiveX控件(就像宏一样)。
最好两者都做!
附:如果您想知道为什么打开带有Windows Media Player或ShockWave Flash控件的文档时没有任何安全警告,至少根据我的理解,这是因为它们没有被分类为“初始化不安全”(UFI)。
结论
我们发现了两种新颖的技术(或至少两种更简单的方法)在Microsoft Word文档中执行UNC路径注入,并可能打开一个全新(或旧,取决于您的视角)的潘多拉盒子。安全社区绝对应该进一步探索Office产品中的ActiveX控件,根据我的谷歌搜索,似乎对这些的研究不多,我几乎可以肯定这只是冰山一角!