SuperAPI AI 工具集

analyzing-macro-malware-in-office-documents

安全与审计

查看项目

更新于 10-15 18:46

技能介绍

本技能用于分析 Microsoft Office 文档(Word、Excel、PowerPoint)中嵌入的恶意宏,适用于以下情形:电子邮件安全系统标记了可疑 Office 文档(.doc、.docm、.xls、.xlsm、.ppt);调查投递武器化 Office 文档的钓鱼活动;提取 VBA 宏代码以识别载荷下载 URL 与执行方式;分析经过混淆的 VBA 代码以理解完整攻击链;判断文档是否使用 DDE、ActiveX 或远程模板注入而非宏。

前提条件:Python 3.8+ 且安装 oletools(pip install oletools);Didier Stevens 的 oledump.py(https://blog.didierstevens.com/programs/oledump-py/);未安装 Microsoft Office 的隔离分析虚拟机(防止意外执行);用于 Excel 4.0 宏分析的 XLMDeobfuscator(pip install xlmdeobfuscator);用于安全渲染文档的 LibreOffice(默认不执行 VBA 宏)。

工作流程分为六个步骤。第一步:文档初步分诊,使用 olevba、oleid、oledump.py 判断文档是否包含宏或其他活动内容,输出指标包括 VBA 宏、XLM 宏、外部关系(远程模板)、ObjectPool(嵌入对象)、Flash(SWF 对象)等。第二步:提取并分析 VBA 代码,使用 olevba --decode --deobf 提取完整 VBA 源码,用 oledump.py -s 8 -v 提取指定流,识别自动执行触发器(Auto_Open/AutoOpen、Auto_Close/AutoClose、Document_Open/Document_Close、Workbook_Open、AutoExec)和可疑函数(Shell()、WScript.Shell.Run/Exec、CreateObject("WScript.Shell")、PowerShell 执行、URLDownloadToFile、MSXML2.XMLHTTP、ADODB.Stream、Environ()、CallByName)。第三步:反混淆 VBA 代码,通过正则与脚本处理 Chr()/ChrW()、字符串拼接、StrReverse、Replace() 等,其中 Mid$/Left$/Right$ 混淆标记为人工复核。第四步:分析 Excel 4.0(XLM)宏,使用 olevba --xlm、xlmdeobfuscator -f、oledump.py -p plugin_biff.py,关注 EXEC()、CALL()、REGISTER()、URLDownloadToFileA、ALERT()、HALT()、GOTO()、IF() 等函数。第五步:检查非宏攻击向量,通过 Python 脚本检查 docx/docm 压缩包中的 XML 与 .rels 文件查找 DDEAUTO/DDE 字段码、attachedTemplate/Target 远程模板 URL、外部引用;使用 oledump.py -p plugin_msg.py 检查嵌入 OLE 对象。第六步:生成分析报告,包含文档元数据、宏存在与类型、自动执行触发器、去混淆 VBA 源码关键函数、第二阶段载荷下载 URL、执行方式、社会工程诱饵、提取的 IOC(URL、域名、IP、文件哈希)、针对该文档模式的 YARA 规则。

关键概念包括:VBA 宏、Auto_Open、OLE、DDE、远程模板注入、XLM 宏(Excel 4.0)、Protected View。工具与系统包括 oletools(olevba)、oledump.py、XLMDeobfuscator、ViperMonkey(沙箱中执行 VBA 宏以观察行为的模拟引擎)、YARA(基于 VBA 字符串模式与 OLE 结构指标的文档恶意软件检测)。

使用限制:不适用于分析非宏 Office 威胁(DDE、远程模板注入);虽然本技能覆盖这些检测,但可能需要专门分析。常见陷阱:不要在 Microsoft Office 中打开文档进行“快速分析”,应使用命令行工具;不要遗漏 UserForms 中存储的 VBA 代码;不要忽略文档元数据;注意同一文档可能同时含有 VBA 与 XLM 宏。

输出格式示例为结构化的“OFFICE MACRO MALWARE ANALYSIS”报告,包含文档信息、宏分析、去混淆执行链、社会工程诱饵、提取的 IOC、MITRE ATT&CK 映射(T1566.001、T1204.002、T1059.001、T1059.005)。