扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这期内容当中小编将会给大家带来有关Office文档嵌入对象点击执行的技巧是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
目前创新互联已为上千的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器租用、企业网站设计、凤凰网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Microsoft Office相信大家都用过。Office在文档中嵌入对象极大的方便了我们的日常使用,但同时也为我们带来了众多安全问题。可以说,Office文档为攻击者提供了各种方法来诱骗受害者运行任意代码。当然,攻击者也可能会尝试利用Office漏洞,但更常见的情况是,攻击者会向受害者发送包含恶意宏或嵌入式(Packager)可执行文件的Office文档。
为此,微软在Office的安全问题上也下了不少的功夫。Office中有个名为受保护的视图(Protected View)的安全功能,如果Office文档来自于互联网,那么该功能会以受限方式打开该文档。这个功能的目的是限制可运行的Office组件,以防止攻击者自动利用诸如OLE、Flash以及ActiveX等对象中存在的漏洞。在Office 2016和Office 365还添加了其它的安全措施(如GPO等),这样当用户从Internet下载文档时宏将完全被禁用,以及阻止在Packer文件扩展名黑名单列表中的文件类型运行。
当然,即便如此安全问题依旧存在,但这些措施也在一定程度上减少了此类攻击的发生。最近,Matt Nelson向我们演示了使用SettingContent-ms文件运行任意命令的方法。由于这些文件并不包含在文件类型的黑名单列表中,因此攻击者可以诱骗受害者从Office文档运行嵌入的SettingContent-ms文件。目前,此类文件类型已被添加到了黑名单中。在2018年8月的补丁更新中,微软还发布了一个修复程序,即如果不是从%WinDir%\ImmersiveControlPanel.打开这些文件的,则会进行阻止。
我将向大家介绍另外两种诱骗受害者运行恶意代码的方法。这两种方法都需要有一定量的用户交互。MSRC指出“这种技术需要结合大量的社会工程学技巧:受害者必须要对安全警告说'Yes' ,且在非保护模式下运行”攻击者才有可能得手,因此并不会针对该问题发布任何的修复程序。
Shell.Explorer.1 OLE对象(CLSID {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B})充当嵌入式Windows资源管理器或IE浏览器。此OLE对象可以嵌入到Office文档中,并可作为持久对象保存在文档中。专有格式用于持久化Shell.Explorer.1对象,在偏移量76 (0x4C)处可以找到熟悉的结构。可以看到位于此偏移处的结构是ShellLink (LNK) [MS-SHLLINK]。
当初始化(加载)Shell.Exporer.1对象时,ShellLink结构将被解析为常规LNK文件。然后,该对象从ShellLink获取ID列表,并以此来导航到提供的文件, (shell) 文件夹或网站。
当提供了文件夹路径后,该对象的行为类似于Windows资源管理器。可以浏览文件或文件夹,甚至可以通过双击来执行文件。攻击者可能会滥用此功能来嵌入Windows资源管理器,从而打开包含可执行文件的远程共享。如果攻击者可以说服受害者双击文件,就可以从该远程共享运行可执行代码。
但这种攻击者的实现条件较为苛刻。首先,OLE对象需要单击才能激活。其次,用户需要双击OLE对象才能实际获得可用的Windows资源管理器视图。最后,用户还需要双击Windows资源管理器视图中的文件。这其中的任何一步出现问题,都将导致失败。
在某些情况下,管理员可能会限制一些用户对某些文件夹或硬盘的浏览权限。这种情况下,嵌入Windows资源管理器对象就会很方便。例如,如果限制对C:盘的访问,则本地用户可以使用包含嵌入式Windows资源管理器的Office文档来绕过该限制。此外,该对象也可用于窃取NetNTLM哈希值,但这对于Office文档来说并不难,因此使用单击激活OLE对象是没有意义的。
当Shell.Explorer.1充当嵌入式Internet Explorer时,除了可以在文档中嵌入Web浏览器之外,它还允许我们浏览本地计算机上的文件,以及远程(共享和网站)上的文件。但这依然需要与用户产生交互,可以说这是无法避免的。单击激活也适用于此模式,单击该对象将触发Internet Explorer的文件下载功能,这将向用户弹出一个“文件下载”对话框。如果用户单击“运行”或“打开”(主要取决于文件格式),则将执行该文件。
某些文件类型(如EXE文件)还将会触发一个额外的警告对话框。但我们可以通过使用其他可执行文件类型,来避免该警告弹框(例如SettingContent-ms文件格式等)。
对于控件禁用IE保护模式,这将阻止其他对话弹框 - 如UAC对话框。因此,只需要单击两次就可以运行恶意代码,即单击激活,然后 运行/打开。Shell.Explorer.1对象,也是解决Office 2016/365中文件扩展名黑名单的一个很好的方法。因为,Shell.Explorer.1并未使用黑名单列表。
以下PowerShell脚本将尝试创建包含嵌入式Internet Explorer对象的Word文档。该脚本使用Packager对象创建了一个看起来像是嵌入文件的对象,单击该对象将触发文件下载功能。
Microsoft Forms 2.0对象库包含许多可以在Office文档中使用的“HTML”ActiveX控件。这些控件在初始化时被标记为安全,并且不需要用户为嵌入它们的文档启用ActiveX。存储格式比Shell.Explorer.1对象简单得多。本质上,它是由对象的CLSID和HTML片段(UTF-16编码)组成的。HTML片段(HTML fragment)的格式正确与否并不重要,对象只会搜索它支持的属性。以下是支持action属性的两个对象:
- Forms.HTML:Image.1 (CLSID {5512D112-5CC6-11CF-8D67-00AA00BDCE1D})
- Forms.HTML:Submitbutton.1 (CLSID {5512D110-5CC6-11CF-8D67-00AA00BDCE1D})
单击设置了action属性的嵌入对象,将打开定义的URL。常规URL将在默认浏览器中打开,但文件URL(包括共享文件)将会被直接打开。这将弹出一个警告对话框,但此对话框与其他警告对话框略有不同,如下图所示。
Forms.HTML:Image.1支持src属性,可用于配置文档中显示的图像。使用图像可以伪装对象,例如将其伪装成嵌入文档诱使受害者点击它。
需要提醒的是,当Office文档包含Web标记时,将会弹出另外一个警告对话框,向用户表明它是从Internet下载的。此对话框的提示将更为明确,从一个远程攻击者的角度来看,这种技术并不实用。
以下PowerShell脚本可用于创建具有嵌入Forms.HTML:Image.1对象的Word文档,单击该对象将打开计算器。
如上所述,当Office文档包含Web标记时,则会向用户表明它是从Internet下载的。这种情况下,文档将在受保护的视图中打开。在此模式下,将禁用文档中存在的任何嵌入对象。除非攻击者利用漏洞绕过受保护视图,否则攻击者就需要结合社工的技巧来欺骗受害者单击“启用编辑(Enable Editing)”。
特别关注包含以下对象的文档:
- Shell.Explorer.1 / {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}
- Forms.HTML:Image.1 / {5512D112-5CC6-11CF-8D67-00AA00BDCE1D}
- Forms.HTML:Submitbutton.1 / {5512D110-5CC6-11CF-8D67-00AA00BDCE1D}
Shell.Explorer.1对象从对象中提取LNK文件,并检索ID列表查找单击对象时打开的内容。我们的GitHub上的ShellLink .NET类库可用于从LNK文件中读取ID列表。
HTML Forms对象更容易解析。作为防御者应该知道有多种方法可以在Office文档中存储对象。例如,ActiveX控件也可以嵌入作为PersistPropertyBag对象,其中对象的属性设置在XML文件中(例如,activeX1.xml)。
上述就是小编为大家分享的Office文档嵌入对象点击执行的技巧是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流