首页/安全/取证与溯源速查/Office 宏样本的快速检查

Office 宏样本的快速检查

文档类样本先跑宏分析工具列出自动执行入口(AutoOpen 等)与可疑调用,再决定是否沙箱执行。

取证与溯源速查安全更新于 2026-10-13

先看宏入口再决定是否运行

文档类样本的分析顺序应当是静态优先:先用宏分析工具列出文档里是否存在宏、宏的自动执行入口(AutoOpen、Document_Open、AutoClose 等)以及可疑的调用,再决定是否需要跑动态。很多恶意文档的逻辑量很小,靠静态输出就能看清下载地址与执行方式。

编码字符串要看解码前后

宏里的关键字符串常被拼接或编码,直接搜索 URL 可能一无所获。分析工具的解码功能会把常见的编码形式展开,解码后再搜关键字命中率明显提高。报告里同时保留原始片段与解码结果,说明结论是怎么得到的。

基本信息

适用平台跨平台(oletools 套件中的 olevba,可分析 .doc/.docm/.xls/.xlsm 等)
核心输出宏是否存在、自动执行入口、可疑 API 调用、解码后的字符串
常见关键字AutoOpen、Document_Open、Shell、CreateObject、URLDownloadToFile
编码形式十六进制串、Chr 拼接、Base64 与字符串反转
隔离要求文档样本在隔离环境打开,宏一律禁用

典型使用场景

  • 邮件附件是启用宏的文档:确认宏是否存在以及入口函数名
  • 静态搜索不到地址:先用解码功能展开再搜关键字
  • 判断是否需要动态分析:宏逻辑简单时静态输出已足够支撑结论
  • 同源样本比对:宏代码结构与解码方式相似可辅助关联
  • 为报告取证:导出宏源码与解码结果作为附件

宏检查

宏检查
# 概览:宏是否存在、入口函数与可疑调用
olevba sample.docm | sed -n '1,60p'

# 展开编码字符串后再搜关键字,命中率更高
olevba --decode sample.docm | grep -iE 'AutoOpen|Document_Open|Shell|CreateObject|URLDownload'

# 只看宏源码部分,便于逐行精读
olevba --code sample.docm

# 保留原始文件哈希,附件归档时一并登记
sha256sum sample.docm

常见入口与调用读法

名称触发时机分析用法
AutoOpen / Document_Open文档打开时最常见的自动执行入口
AutoClose / Document_Close文档关闭时常用于清理痕迹
Shell / WScript.Shell执行系统命令看后续命令行内容
CreateObject创建 COM 对象对象类型决定后续能力
URLDownloadToFile下载远端文件记录地址并与流量日志互证
文档类样本必须在隔离环境打开,宏安全设置保持禁用;任何「打开看看效果」的动作都可能直接触发载荷执行。
doc 与 docm 的宏存储位置不同,工具会自动处理;如果工具报告没有宏,仍应结合文件结构与来源判断,不要据此排除恶意可能。

易错点

  • 在生产机打开文档验证:宏会立即执行并下载后续载荷
  • 只搜明文 URL:编码与拼接的字符串会被漏掉,误判为无外联
  • 只看宏源码不看入口:入口函数决定了会不会自动执行,缺了这一步结论不完整
  • 不保留解码前后对照:报告里的地址无法溯源到原文
  • 把「无宏」当作安全结论:也可能是通过其他方式投递的样本

数据来源与参考

  • oletools 官方文档(olevba)
  • Microsoft 文档(宏安全)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌