文档文件中宏的工作原理与宏处理流程相关技术问询
Office文档宏运行完整流程
1. 初始触发与安全校验阶段
- 用户打开携带宏的Office文档(支持格式包括docm、xlsm、pptm等启用宏的新版格式,以及doc、xls、ppt等旧版兼容格式)时,对应的Office主进程(WINWORD.EXE/EXCEL.EXE/POWERPNT.EXE)首先读取文件结构中的VBA项目存储段标识,判断文档是否包含宏代码。
- 触发Office内置宏安全机制校验:默认配置下会弹出宏启用提示,用户主动点击启用按钮后才会进入后续流程;如果恶意文档利用无点击宏漏洞(如CVE-2017-11882、Follina等),会直接绕过安全校验,无需用户操作即可触发宏加载。
2. 宏解析与入口识别阶段
- 校验通过后,Office会调用内置VBA运行时组件
vbe7.dll(Office 2010及以后版本,旧版为vbe6.dll)加载文档中存储的VBA代码段,先完成语法校验、代码解压缩/解密,解析出模块、自定义函数、事件绑定关系。 - 自动识别预定义的自动执行宏入口:常见自动触发入口包括
Auto_Open、Document_Open、Workbook_Open,还有部分恶意宏会绑定WindowActivate、BeforeClose等文档事件作为触发点,无需用户主动运行宏即可执行逻辑。
3. 代码执行与恶意行为触发阶段
- VBA运行时按绑定的入口顺序执行代码,绝大多数恶意宏会首先执行反沙箱/反调试逻辑:比如检测当前系统开机时长、是否存在调试器、Office进程是否运行在沙箱环境、是否存在分析工具相关进程,检测不通过就直接终止执行,避免被捕获。
- 反检测通过后,恶意宏会执行核心 payload 逻辑:常见操作包括调用
WScript.Shell执行系统命令、调用WinHTTP组件发起网络请求下载远端恶意程序、将PE文件写入%TEMP%等可写目录后调用CreateProcess创建新进程,这一系列操作会触发大量文件读写、注册表修改、进程创建、网络请求类Windows事件,也就是你在Process Monitor中观测到大量事件的核心原因。
针对恶意宏分析场景,使用Process Monitor监控时可优先过滤Office主进程的三类事件:可疑子进程创建事件、写入可写目录的PE格式文件事件、出站TCP连接事件,能快速定位恶意行为,减少无效事件的排查量。
内容的提问来源于stack exchange,提问作者PandaPro
相关产品推荐
相关产品推荐

