1. SHVE工具新功能解析:Office文档投毒攻击原理
最近在安全研究圈里讨论度很高的SHVE工具更新了一个危险功能——通过Office文档进行投毒攻击。这种攻击方式之所以引起广泛关注,是因为它完美利用了企业环境中Office文档的高流通性和信任度。我花了三周时间逆向分析了这个功能的实现机制,发现它主要通过三种方式植入恶意代码:
- 宏代码注入(最常见)
- 文档内部OLE对象嵌入
- 自定义XML部件注入
特别是第三种方式,很多企业的文档安全检测系统都还未能有效识别。攻击者会将恶意JavaScript代码隐藏在文档的customXml/item1.xml部件中,当文档被打开时,这些代码会通过Office的脚本引擎执行。
2. 攻击链完整拆解
2.1 初始感染载体构造
攻击者通常会制作以下几种诱饵文档:
- 伪装成财务报表的Excel文件(.xlsm)
- 带"重要通知"标题的Word文档(.docm)
- 包含"请查看附件"的PPT演示稿(.pptm)
这些文档的共同特点是:
- 使用吸引眼球的文件名(如"2023年度薪资调整方案.docm")
- 包含看似合理的占位内容
- 需要启用宏才能"正常显示内容"
2.2 恶意代码执行流程
我通过动态分析发现其执行链如下:
// 隐藏在文档属性中的初始脚本 function autoOpen() { var payload = ActiveDocument.CustomXMLParts.Item(1).XML; eval(payload); }这个脚本会:
- 从自定义XML部件提取第二阶段payload
- 通过eval函数动态执行
- 最终下载执行远程的SHVE攻击模块
3. 防御方案实测
3.1 企业级防护措施
经过实测,以下组合策略最有效:
| 防护层 | 具体措施 | 有效性 |
|---|---|---|
| 终端防护 | 强制禁用所有Office宏执行 | ★★★★★ |
| 邮件网关 | 拦截所有带宏的Office附件 | ★★★★☆ |
| 网络层 | 阻断出向的HTTP/HTTPS异常连接 | ★★★☆☆ |
3.2 个人用户自查方法
如果收到可疑Office文档,可以:
- 使用7-zip等工具直接解压文档(Office文档本质是ZIP压缩包)
- 检查以下路径是否存在异常文件:
- word/_rels/
- customXml/
- activeX/
- 特别关注大于50KB的XML文件
4. 攻击特征指纹库
根据分析结果,这类攻击通常带有以下特征:
<!-- 恶意文档常见的XML特征 --> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Type="http://schemas.microsoft.com/office/2006/relationships/vbaProject" Target="vbaProject.bin" Id="rVba1"/> </Relationships>关键识别点:
- 异常的vbaProject引用
- 包含obfuscated字符串的XML部件
- 文档属性中的非常规作者信息
5. 应急响应指南
如果已经中招,建议立即执行:
- 断网隔离感染主机
- 检查以下注册表项:
HKCU\Software\Microsoft\Office\*\Security\Trusted Documents - 清除Office最近文档历史:
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Office\16.0\Word\Security" -Name "TrustedDocuments"
重要提示:不要直接双击打开可疑文档,应该先用记事本等文本编辑器查看文件头内容。合法的Office文档开头应为"PK"签名(ZIP压缩格式特征)。
我在分析过程中发现,最新的攻击变种已经开始使用WPS宏作为备用感染途径。由于WPS的宏安全机制相对较弱,这种跨平台攻击方式值得特别警惕。建议同时在企业环境中对WPS软件采取与MS Office相同的安全管控措施。