事件背景
近日,有安全研究员发现在Excel 4.0及以下版本中,Office有一种XLM宏格式,这种类型的宏已被Visual Basic forApplications(VBA)宏替代。但是,所有Microsoft Office版本仍支持XLM宏,并且可以将其添加到SYLK文件中。SYMBolic LinK(SYLK)是1980年代微软的一种文件格式,主要用于在应用程序(尤其是电子表格)之间交换数据。
在SYLK文件中展示XLM宏会出现一个很大的问题,因为Microsoft Office的受保护的文件不能打开此文件格式。保护措施是用来保护Office用户免受恶意代码的攻击的,但是SYLK文件不受该功能的约束。卡内基梅隆大学的CERT协调中心(CERT / CC)的Will Dormann表示:“用户只需单击一下鼠标,就可以通过公网传播的文档来执行任意操作。”
漏洞分析
使用XLM宏打开SYLK文件时,Mac版Office2011不会警告用户。Mac版Office 2016和2019警告要在SYLK文件中执行XLM宏。但是,当用户在设置中选择“禁用所有宏而不通知”选项时,将自动执行SYLK文件中的XLM宏,而不会警告用户。
如果Mac用户在Office 2016或2019的设置中选择了“禁用所有宏而无需通知”,当打开SYLK文件(.SLK)时,攻击者可以执行具有登录用户权限的任意代码。
另一个选项是启用“禁用所有带通知的宏”选项。根据Dormann的说法,此选项比不通知用户的选项安全性低,但在这种情况下,对于Mac用户,如果Microsoft未发布安全更新,则是更好的选择。
扩展名为.slk的SYLK文件具有以下特征:
1.SYLK不在MS Outlook阻止的附件列表中。
2.SYLK不包括在默认OWA阻止的扩展列表中。
3.Chrome浏览器的安全浏览文件类型列表中未将SYLK标记为危险
使用lsregister命令:lsregister –dump
可以看到哪个应用程序为该文件类型的默认处理程序。(lsregister命令位于/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/)
在MacOS中我们可以看到Microsoft Excel已经被设置为SYLK文件的默认处理程序。
从Excel的Info.plist文件中我们可以看到,在CFBundleDocumentTypes列表中,Excel支持“ Microsoft Excel SLK File(.slk)”格式,因此macOS将其注册为.slk文件的默认句柄。所以,每当用户双击SYLK文件(.slk)时,macOS都会默认启动MicrosoftExcel来打开它。
这样我们就可以制作一个恶意文档,这个恶意文档使用XLM宏启动Calculator.app。
POC如下:
ID;PO;ENN;NAuto_open;ER101C1;KOutFlank;FC;X1;Y101;K0;ECALL("libc.dylib","system","JC","open-a Calculator")C;X1;Y102;K0;EHALT()E
这个POC只需调用CALL("libc.dylib","system","JC","open-a Calculator")即可启动Calculator.app(通过open命令,通过在system找到的命令libc.dylib)。
把这个POC另存为PoC.slk,我们注意到macOS为它分配了一个图标,说明Excel确实是启动slk文件的默认程序。我们打开这个文件可以看到他启动了Calculator.app
简而言之,即使设置了“禁用所有宏而无需通知”,打开恶意制作的Excel也可能导致自动且不会有任何提示的执行嵌入式宏。
漏洞危害
中危
影响版本
Mac版本的Office 2011、2016、2019
安全建议
(1)设置为:“禁用所有带通知的宏”,可以缓解此漏洞。
(2)由于应用程序沙箱和macOS Catalina中最新的安全性增强,此漏洞的影响目前很小。
(3)减少这类攻击的最佳方法是完全拦截MS Office中的SYLK文件,这可以通过MS Office信任中心设置中的File Block设置来完成。
参考信息
https://www.patreon.com/posts/31418067
https://objective-see.com/blog/blog_0x50.html
https://www.security.nl/posting/629816/Office+voor+Mac+kan+XLM-macro%27s+niet+goed+uitschakelen
如需帮助请咨询 hscert@hillstonenet.com