探索Microsoft Word中ActiveX控件的趣味利用
在红队和渗透测试中,测试假设总是重要且有价值的。一个常见的假设是大多数网络(或他们自己的网络)会阻止出站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哈希!
细心的读者可能已经注意到属性窗口中还有高度和宽度字段,让我们玩经典的但被低估的游戏“在我的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控件自动运行宏的启用宏的文档时显示的提示。#钓鱼专业提示 😉
我强烈推荐阅读那篇博客文章,因为作者甚至提供了示例文档供摆弄。
披露时间线
尽管微软过去没有解决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控件绝对应该由安全社区进一步探索,根据我的谷歌搜索,似乎没有很多关于这些的研究,我几乎可以肯定这只是冰山一角!