译文声明
本文是翻译文章,文章原作者thomas elling,文章来源:blog.netspi.com
原文地址: https://blog.netspi.com/microsoft-word-unc-path-injection-image-linking/
微软 word 是渗透测试中的一个绝佳攻击向量。从网络应用渗透测试到红队渗透,都可通过 word 文档抓取 netntlm 哈希或在网络中证明出口过滤不足。迄今为止已经存在大量高质量的 word 攻击向量研究。此前netblosx 说明了通过框架集抓取 netntlm哈希。本文也通过这个相同的核心理念说明一种稍有不同的方法:通过一个链接插入图像。
有用的工具:
brup suite pro(collaborator客户端)
inveigh
responder (哈希抓取)
7zip(打开文档)
链接一个图像
要链接一个图像,首先打开“插入”页签并点击“图片”图表,随后explorer窗口打开。在文件名称字段输入恶意url,点击“插入”下拉列表选择“链接到文件”。这个burp collaborator链接是为了更容易地进行演示。
链接后,图像大小就可被压缩成0。如果你的恶意文档用于红队或者社工活动,这就是一个优势了。记得将更改保存到文档中。现在不管何时打开文档,微软 word 都会尝试在文档中解析这个链接图像。这些请求记录在 burp collaborator 客户端上。
通过 unc 路径注入捕获 netntlm 哈希
再次说明一下,这里讨论的方法跟 netbiox 博客中说明的方法十分相似。通过 7zip 提取word 文档中包含的文件。我们想要修改的文件是位于\your_word_doc.docx\word\_rels\下的 document.xml.rels。这个文件包含一个关系及其相关目标的列表。这里说的“关系”将成为“图像”类型。将“target”的值设为侦听主机的 unc 路径。
保存文件并通过 7zip 将其复制到 word 文档中。用户打开 word 文档时,inveigh 或 responder 将会抓取收到的认证请求。这种方法的一个主要优势是,终端用户无法获知 word 试图连接到一个恶意 url 或 unc 路径。文档打开时就会提出请求,而且启动时不会显示 url 或 unc 路径。
通过 powershell 枚举关系目标
以上方法虽然简单但非常强大,因为它利用的是微软 office 中受信任的功能。以下将说明如何在不使用 7zip 的情况下通过两种极其简单的方法枚举关系列表。很多取证工具集能更加有效地实现这个目标如yara,而这并非是一种全面的取证方法。
可使用 word.application com 对象访问 word 文档的内容。仅需一些简单的命令就可实现这个目标。 wordopenxml 属性包含文档中的 relationships。如此就能成功地枚举文档中的所有 relationships 及其相应的目标。问题就在于,当使用 word.application com对象时,就会启动一个 word 进程而且 url/unc 路径会被解析。
为避免这个问题,我们可使用 documentformat.openxml 库枚举文档中所有的 external relationship。在测试中这种方法不会抓取到任何 collaborator 请求或认证请求。再进一步, deleteexternalrelationship 方法会通过提供 relationship id $doc.maindocumentpart.deleteexternalrelationship(“rid4”) 来删除带有外部 url 的关系。
参考资料
microsoft office – ntlm hashes via frameset
本文翻译自:blog.netspi.com
转自安全客,原文链接:https://www.anquanke.com/post/id/93531
试用申请