
使用 Sysinternals Autoruns 分析 Windows 恶意软件持久化机制从自动启动枚举到自动化取证【免费下载链接】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导读本指南围绕skills/analyzing-malware-persistence-with-autoruns这一结构化技能展开讲解如何利用 Sysinternals Autoruns / Autorunsc 对 Windows 全量自动启动扩展点ASEP进行系统化枚举并通过签名校验、路径分析、LOLBin 启动串识别与 VirusTotal 信誉核验来定位恶意持久化条目。文章既覆盖 GUI/CLI 的完整操作链路也结合本仓库提供的 Python 自动化分析脚本与报告模板帮助安全分析师、SOC 人员和威胁猎手在应急响应、受感染主机排查及恶意软件清除验证场景中落地一套可复现、可自动化的持久化分析流程。为什么持久化分析要从自动启动入口入手恶意软件一旦在受害主机上获得执行权限往往会注册某种自动启动机制确保系统重启、用户登录或特定事件触发后能够再次运行。Windows 提供数百个这类入口点被统称为 Auto-Start Extensibility PointsASEP。Sysinternals Autoruns 的价值在于从注册表 Run/RunOnce 键、服务、计划任务、驱动、Winlogon 项、LSA 提供程序、打印监视器、WMI 订阅、AppInit DLL 等18 类以上 ASEP中统一提取数据覆盖面远超任务管理器或启动页通过数字签名验证自动过滤 Microsoft 签名的合法条目显著缩小人工排查范围借助比较compare功能基于基线导出做差异比对快速识别新增持久化条目集成VirusTotal对可执行文件哈希做信誉检查支持通过-z标志进行离线分析可直接作用于取证磁盘镜像。本技能对应的 MITRE ATTCK 技术映射见 SKILL.md 的mitre_attackfrontmatter包括技术 ID技术名称对应 ASEP 类型T1547.001Boot or Logon AutostartRegistry Run Keys / Startup Folder注册表 Run/RunOnce 键、启动文件夹T1053.005Scheduled Task计划任务T1543.003Windows ServiceWindows 服务T1574.001Hijack Execution FlowDLL Search Order HijackingAppInit_DLLs、镜像劫持T1037.001Boot or Logon Initialization ScriptsWinlogon、启动脚本同时在防御侧映射了 MITRE D3FEND 的 Executable Denylisting、Execution Isolation、File Metadata Consistency Validation、Content Format Conversion、File Content Analysis 等技术以及在 NIST CSF 2.0 中对应 DE.AE-02、RS.AN-03、ID.RA-01、DE.CM-01 四个类别说明该技能既可用于检测分析也服务于事件响应与风险识别。使用场景与前置条件适用场景Windows 安全事件调查确认失陷主机上是否存在恶意持久化机制检测规则与威胁狩猎为持久化相关技术T1547.001、T1053.005 等构建规则和狩猎查询SOC 标准化分析流程将持久化枚举固化为可执行的流程步骤监控覆盖验证核验安全监控是否覆盖了相关攻击技术清除验证确认恶意自动启动条目已被完整识别并移除对应 SKILL.md 中的 validation 目标。前置条件SysinternalsAutorunsGUI与AutorunscCLI目标系统上的管理员权限读取大部分 ASEP 需要提权Python 3.9用于运行自动化分析脚本VirusTotal API Key如需哈希信誉核验一份干净的基线导出用于差异比对。关键工具autorunsc CLI 参数详解GUI 版 Autoruns 适合交互式浏览而自动化取证更依赖命令行版autorunsc.exe。references/api-reference.md给出了推荐的核心调用autorunsc.exe -a * -c -h -s -v -vt -o autoruns.csv各参数含义如下参数说明-a *扫描所有自动启动类别-c输出为 CSV 格式-h显示文件哈希MD5/SHA-1/SHA-256-s校验数字签名-v针对目录catalog校验签名-vt查询 VirusTotal 检测结果-o指定输出文件此外SKILL.md 的自动化脚本还使用了-nobanner抑制启动横幅以方便解析输出。执行一次全量扫描后CSV 输出中包含以下关键列它们是后续自动化判定的数据基础列名含义Time条目时间戳Entry Location注册表键或路径Entry条目名称Enabledenabled / disabledCategoryAutoruns 类别Description文件描述Company发布厂商Image Path二进制完整路径Launch String完整命令行MD5 / SHA-1 / SHA-256文件哈希Signer代码签名状态VT detectionVirusTotal 检测比例如 5/72需要重点关注的 ASEP 类别references/api-reference.md列举了持久化分析中权重最高的几类类别典型示例LogonRun/RunOnce 键、启动文件夹ServicesWindows 服务Drivers内核驱动Scheduled Tasks任务计划程序条目WinlogonShell、Userinit、NotifyWMI事件订阅AppInitAppInit_DLLsBoot ExecuteBootExecute 值Image HijacksIFEO 调试器条目LSA Providers认证包其中 WMI 事件订阅对应 T1546.003属于无文件持久化中较为隐蔽的一类AppInit_DLLs 与 Image Hijacks 则与 DLL 劫持类技术T1574.001直接相关。自动化持久化扫描SKILL.md 核心脚本SKILL.md 提供了一段开箱即用的 Python 脚本用于把扫描 标记流程自动化。脚本核心逻辑分两步第一步调用 Autorunsc 执行全量扫描#!/usr/bin/env python3 Automate Autoruns-based persistence analysis. import subprocess import csv import json import sys def scan_and_analyze(autorunsc_pathautorunsc64.exe, csv_pathscan.csv): cmd [autorunsc_path, -a, *, -c, -h, -s, -nobanner, *] result subprocess.run(cmd, capture_outputTrue, textTrue, timeout600) with open(csv_path, w) as f: f.write(result.stdout) return parse_and_flag(csv_path)这里把-a *全类别、-cCSV、-h哈希、-s签名校验、-nobanner组合在一次调用中完成扫描超时控制在 600 秒。执行结束后将标准输出落盘为 CSV供解析阶段使用。第二步按可疑特征自动标记条目def parse_and_flag(csv_path): suspicious [] with open(csv_path, r, errorsreplace) as f: for row in csv.DictReader(f): reasons [] signer row.get(Signer, ) if not signer or signer (Not verified): reasons.append(Unsigned binary) if not row.get(Description) and not row.get(Company): reasons.append(Missing metadata) path row.get(Image Path, ).lower() for sp in [\\temp\\, \\appdata\\local\\temp, \\users\\public\\]: if sp in path: reasons.append(Suspicious path) launch row.get(Launch String, ).lower() for kw in [powershell, cmd /c, wscript, mshta, regsvr32]: if kw in launch: reasons.append(fLOLBin: {kw}) if reasons: row[reasons] reasons suspicious.append(row) return suspicious if __name__ __main__: if len(sys.argv) 1: results parse_and_flag(sys.argv[1]) print(f[!] {len(results)} suspicious entries) for r in results: print(f {r.get(Entry,)} - {r.get(Image Path,)}) for reason in r.get(reasons, []): print(f - {reason})该脚本内置了四类启发式判定规则签名缺失Signer为空或显示(Not verified)标记为 Unsigned binary元数据缺失同时缺少Description与Company暗示条目来源可疑可疑路径Image Path 命中\temp\、\appdata\local\temp、\users\public\等常见暂存/投递目录LOLBin 启动串Launch String 中出现powershell、cmd /c、wscript、mshta、regsvr32等 Living-off-the-land 工具。命令行直接传入 CSV 路径即可运行python scan.py scan.csv输出会按可疑条目 → 具体原因逐条打印。源码级深化仓库中的完整分析代理仓库为同一主题提供了更完整的实现skills/analyzing-malware-persistence-with-autoruns/scripts/agent.py它把上述脚本扩展为可生成结构化 JSON 报告的完整分析代理是理解判定逻辑底层实现的最佳参考。更全面的特征库agent.py将可疑路径和可疑命令扩充为常量列表SUSPICIOUS_PATHS [ r\\temp\\, r\\tmp\\, r\\appdata\\local\\temp, r\\public\\, r\\programdata\\, r\\users\\default, r\\recycler\\, r\\windows\\debug, ] SUSPICIOUS_COMMANDS [ powershell, cmd.exe /c, wscript, cscript, mshta, regsvr32, rundll32, certutil, bitsadmin, schtasks, msiexec /q, forfiles, ]相比 SKILL.md 基础脚本这里新增了\tmp\、\programdata\、\users\default、\recycler\、\windows\debug等路径以及rundll32、certutil、bitsadmin、msiexec /q、forfiles等更多 LOLBin 命令。同时定义了KNOWN_PERSISTENCE_LOCATIONS涵盖 HKLM/HKCU Run、RunOnce、Winlogon、服务HKLM\SYSTEM\CurrentControlSet\Services、任务计划、启动文件夹与 WMI 等核心持久化落点可作为知识库辅助后续人工研判。逐条分析器的判定优先级analyze_entry()是核心判定函数其严重性分级如下critical严重VT detection命中次数大于 0如 5/72直接认定为已知恶意high高危Image Path 命中可疑路径或 Launch String 中出现 LOLBinmedium中危签名状态为(Not verified)或为空的无签名二进制low低危启用的条目却缺少 Company 信息无发布厂商。def analyze_entry(entry): findings [] ... if vt and / in vt: try: detections, total vt.split(/) if int(detections.strip()) 0: findings.append({type: VirusTotal detections, severity: critical, detail: vt}) except (ValueError, AttributeError): pass if not company and entry.get(enabled) enabled: findings.append({type: No company info, severity: low, detail: Enabled entry without publisher}) return findings从源码结构可以推断agent.py的设计意图是把人工研判经验固化为可复用的规则引擎analyze_all_entries()遍历全部条目并汇总每条命中的 findings同时按critical high medium low计算该条目的最高严重性便于后续按风险排序。一键生成取证报告main()提供了完整的命令行入口parser.add_argument(--csv-file, requiredTrue, helpAutoruns CSV export file) parser.add_argument(--output, defaultautoruns_report.json)运行方式python3 scripts/agent.py --csv-file scan.csv --output autoruns_report.jsongenerate_report()产出的 JSON 报告包含总条目数、启用条目数、可疑条目数、critical 条目数、按类别的分布统计category_breakdown以及带严重性分级和具体证据的完整 findings 列表。控制台同时输出一行摘要如AUTORUNS REPORT: 1200 entries, 35 suspicious, 4 critical方便快速粗筛。取证报告模板让结论可复用、可归档仓库还提供了标准化的分析报告模板skills/analyzing-malware-persistence-with-autoruns/assets/template.md用于将扫描结论沉淀为结构化交付物主要板块包括样本信息SHA-256、文件类型、分析日期、分析师、分类默认 TLP:AMBER发现项Findings以发现 → 严重性 → 详情三列表格呈现提取的 IOC以类型 → 值 → 上下文表格记录哈希、路径、命令等指标处置建议Recommendations按优先级列出后续动作。将agent.py生成的 JSON 结果与模板结合可以快速形成一份既能提交管理层、又能进入威胁情报库的持久化分析报告。离线取证-z标志与磁盘镜像分析SKILL.md 明确强调离线分析能力通过-z标志Autoruns 可以直接解析脱机 Windows 磁盘/镜像中的注册表配置单元无需启动目标系统。这在以下场景中价值极高目标系统已隔离或无法启动只有取证镜像可用不希望在线操作触碰系统而破坏证据时序、元数据需要在大规模取证如多主机批次中批量完成持久化枚举。配合 SANS 提出的离线 Autoruns 审计方法论离线导出同样可以交给agent.py的 CSV 解析管线做自动化标记保持与在线分析一致的判定口径。基线差异比对识别新增持久化Autoruns 的Compare比较功能通过两次导出的 diff 快速定位新出现的条目。实操建议在系统处于已知良好状态干净基线时先做一次全量导出事件调查或定期巡检时再次导出用 Compare 功能对比两次结果重点关注新增的 Run 键值与服务新出现的计划任务与 WMI 订阅新增的未签名驱动或 AppInit DLL。references/workflows.md给出了本主题的标准分析工作流可用于将上述步骤组织为管线[样本/系统采集] -- [静态分析] -- [动态分析] -- [IOC 提取] -- [报告生成]其中静态分析阶段即对应本文的 Autoruns 全量枚举与特征标记。验证标准与适用框架分析完成后的验证清单根据 SKILL.md 的 Validation Criteria一次合格的持久化分析应满足所有 ASEP 类别均已扫描并编目而非只看 Run 键未签名条目已标记并进入调查队列可疑路径与 LOLBin 启动串已被高亮通过基线比对确认了新增持久化机制最终确认恶意自动启动条目已被完整识别并移除清除验证场景。标准与框架对齐references/standards.md将本技能锚定到以下标准体系MITRE ATTCK持久化相关技术映射T1547.001、T1053.005、T1543.003、T1574.001、T1037.001NIST SP 800-83恶意软件事件预防指南NIST SP 800-86取证技术集成指南。结合仓库根目录的 mappings/README.md 可知全仓库 742 个技能扫描出 218 个唯一 ATTCK 技术其中 Persistence 战术覆盖 29 个技术T1547.001Registry Run Keys / Startup Folder与 T1053.005Scheduled Task分别被 13 和 16 个技能引用属于持久化分析的高频技术也印证了本技能在整个技能库中的代表性与复用价值。结语从枚举到判定的闭环Sysinternals Autoruns 解决的是看到全部而本文结合仓库脚本解决了快速判定可疑。完整落地路径是先用autorunsc.exe -a * -c -h -s -v -vt -o scan.csv完成全量枚举在线或-z离线再用 scripts/agent.py 做签名、路径、LOLBin 与 VT 信誉的自动化标记最后以 assets/template.md 沉淀为可归档报告并用基线 diff 验证恶意条目已被彻底清除。这套流程既适合 SOC 的日常狩猎也适用于应急响应中发现—判定—验证清除的完整闭环。【免费下载链接】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),仅供参考