微软的Word是渗透测试中的一个绝佳攻击向量。从网络应用渗透测试到红队渗透,都可通过的Word 文档抓取NetNTLM哈希或在网络中证明出口过滤不足。迄今为止已经存在大量高质量的Word攻击向量研究。此前netblosX说明了通过框架集抓取NetNTLM哈希。本文也通过这个相同的核心理念说明一种稍有不同的方法:通过一个链接插入图像。
有用的工具:
- Brup Suite Pro(合作者客户端)
- 漫骂
- 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的情况下通过两种极其简单的方法枚举关系列表。很多取证工具集能更加有效地实现这个目标如屋,而这并非是一种全面的取证方法。
可使用Word.Application COM对象访问Word文档的内容。仅需要一些简单的命令就可实现这个目标。WordOpenXML属性包含文档中的关系。如此就能成功地枚举文档中的所有关系及其相应的目标。问题就在于,当使用Word.Application COM对象时,就会启动一个Word进程而且URL / UNC路径会被解析。
为避免这个问题,我们可以使用DocumentFormat.OpenXML库枚举文档中所有的外部关系。在测试中这种方法不会抓取到任何协作者请求或认证请求。再进一步,DeleteExternalRelationship方法会通过提供关系id $ doc.MainDocumentPart.DeleteExternalRelationship(“rId4”)来删除带有外部URL的关系。
参考资料
通过框架Microsoft Office - NTLM哈希
(责任编辑:安博涛)