使用 Sysinternals Autoruns 分析 Windows 恶意软件持久化机制: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
在 Windows 应急响应与恶意软件分析中,持久化(Persistence)是攻击者在受害主机上维持访问权限的关键环节。本文基于 Anthropic-Cybersecurity-Skills 仓库中 analyzing-malware-persistence-with-autoruns 技能的 api-reference.md 文档,系统讲解如何使用 Sysinternals Autoruns(GUI)与 Autorunsc(命令行)枚举 Windows 全量 Auto-Start Extensibility Points(ASEP),识别恶意软件的自启动项,并结合仓库内置的 Python 分析脚本完成自动化取证与 IOC 提取。读完本文,你将掌握 Autoruns 完整命令行用法、CSV 输出字段解读、异常项研判方法,以及如何将分析结果映射到 MITRE ATT&CK 持久化技术矩阵。
一、为什么选择 Autoruns:ASEP 全景枚举的行业标准
Windows 操作系统为合法软件与恶意软件提供了数百个"自启动扩展点"(Auto-Start Extensibility Points,ASEP)。根据 SKILL.md 的说明,Sysinternals Autoruns 能够从 Windows 上数百个 ASEP 中提取数据,扫描 18 类以上的自启动项,包括 Run/RunOnce 注册表键、服务、计划任务、驱动程序、Winlogon 项、LSA 提供程序、打印监视器、WMI 订阅和 AppInit DLL 等。数字签名验证功能可过滤 Microsoft 签名的条目,compare 功能通过基线差异对比识别新增持久化机制,VirusTotal 集成可检查哈希信誉,而-z标志则支持离线分析取证磁盘镜像。
这正是应急响应中"先找持久化、再判断威胁"这一核心流程的技术基石。无论是对受损终端进行分诊,还是验证恶意软件自启动项是否已被完全识别和清除,Autoruns 都是首选工具。
二、Autoruns 命令行 API 参考(autorunsc.exe)
在自动化取证场景下,命令行版本 autorunsc.exe 是首选。文档给出的核心命令如下:
autorunsc.exe -a * -c -h -s -v -vt -o autoruns.csv各 Flag 的详细说明如下表所示(完整继承自 api-reference.md):
| Flag | 说明 |
|---|---|
-a * | 扫描全部自启动类别(All autostart categories) |
-c | 输出为 CSV 格式(CSV output) |
-h | 显示文件哈希(Show file hashes) |
-s | 校验数字签名(Verify digital signatures) |
-v | 对照目录(catalog)校验签名(Verify signatures against catalog) |
-vt | 提交 VirusTotal 检测(Check VirusTotal) |
-o | 指定输出文件(Output file) |
在仓库的 SKILL.md 中,自动化扫描脚本还使用了两个补充参数:
-nobanner:抑制启动横幅输出,确保 stdout 输出纯净,便于程序化捕获;- 结尾的
*:指定扫描整个系统(即-a *的等价物在命令尾部作为主机参数传递)。
cmd = [autorunsc_path, "-a", "*", "-c", "-h", "-s", "-nobanner", "*"]此外,SKILL.md 强调-z标志支持离线分析:当需要对取证镜像(如 dd 采集的磁盘镜像)进行离线枚举时,结合-z与-a *可在不触碰原始证据介质的情况下完成持久化项提取,这符合 NIST SP 800-86(法证技术整合指南)对证据保全的要求(见 standards.md)。
三、CSV 输出字段详解
-c输出的 CSV 文件是后续自动化分析的数据基础。文档列出的 12 个核心字段及其含义如下:
| 字段 | 说明 |
|---|---|
| Time | 条目时间戳 |
| Entry Location | 注册表键或文件路径 |
| Entry | 条目名称 |
| Enabled | enabled/disabled 状态 |
| Category | Autoruns 类别 |
| Description | 文件描述 |
| Company | 发布者名称 |
| Image Path | 二进制文件完整路径 |
| Launch String | 完整命令行 |
| MD5 / SHA-1 / SHA-256 | 文件哈希 |
| Signer | 代码签名状态 |
| VT detection | VirusTotal 检出率(如 "5/72") |
仓库的 agent.py 在parse_autoruns_csv函数中对这些字段进行了逐一映射,额外还包括Profile(关联的用户配置文件)与Version(文件版本号)字段。该解析函数使用utf-8-sig编码读取文件以兼容 Windows 导出的 BOM 头,并以errors="ignore"容忍损坏字符,这正是处理真实取证导出文件时的关键工程细节。
reader = csv.DictReader(f, delimiter=",") for row in reader: entries.append({ "time": row.get("Time", ""), "entry_location": row.get("Entry Location", ""), ... "vt_detection": row.get("VT detection", ""), })四、Autostart 类别速查:18+ 类 ASEP 全覆盖
Autoruns 将自启动项划分为多个类别。文档给出的是最常被恶意软件利用的 10 类:
| 类别 | 示例 |
|---|---|
| Logon | Run/RunOnce 键、启动文件夹 |
| Services | Windows 服务 |
| Drivers | 内核驱动程序 |
| Scheduled Tasks | 任务计划程序条目 |
| Winlogon | Shell、Userinit、Notify |
| WMI | 事件订阅 |
| AppInit | AppInit_DLLs |
| Boot Execute | BootExecute 值 |
| Image Hijacks | IFEO 调试器条目 |
| LSA Providers | 认证包(Authentication packages) |
在 agent.py 中,KNOWN_PERSISTENCE_LOCATIONS常量对这些关键注册表位置做了程序化标注,便于分析时快速定位条目是否落入已知持久化区域:
KNOWN_PERSISTENCE_LOCATIONS = [ "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", "HKLM\\SYSTEM\\CurrentControlSet\\Services", "Task Scheduler", "Startup Folder", "WMI", ]这 10 类(实际全量超过 18 类)分别对应不同的持久化技术,分析时建议按类别逐一核验,尤其是 WMI 事件订阅、AppInit_DLLs 与 IFEO 调试器条目——这三者隐蔽性极高,且常被高级威胁组织用于隐蔽持久化。
五、可疑指示器研判清单
面对动辄数百上千条的自启动项,快速筛选出可疑条目是核心能力。文档给出的 5 类高价值指示器:
| 指示器 | 含义 |
|---|---|
| VT detection > 0 | 已知恶意软件 |
| 未签名二进制 | 潜在未签名恶意软件 |
| Launch String 中出现 LOLBin | 离地攻击(Living-off-the-land) |
| 路径位于 %TEMP% 或 %PUBLIC% | 暂存位置(Staging location) |
| 缺少公司信息 | 可疑未签名条目 |
六、自动化分析:Agent 脚本的源码级原理
仓库在 agent.py 中提供了完整的自动化分析代理,其核心逻辑在analyze_entry函数中实现,将上述指示器落地为可执行的判定规则:
- 可疑路径:
SUSPICIOUS_PATHS列表包含\temp\、\tmp\、\appdata\local\temp、\public\、\programdata\、\users\default、\recycler\、\windows\debug等暂存目录模式,命中即标记high级别; - LOLBin 命令:
SUSPICIOUS_COMMANDS列表覆盖powershell、cmd.exe /c、wscript、cscript、mshta、regsvr32、rundll32、certutil、bitsadmin、schtasks、msiexec /q、forfiles等离地攻击常用工具,命中标记high; - 签名校验:
signer字段为(Not verified)或空值,标记medium; - VirusTotal 检出:解析
vt_detection中"5/72"形式的检出比,只要检出数大于 0 即标记critical(关键级别); - 缺失公司信息:enabled 状态的条目若缺少 Company 字段,标记
low。
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): passanalyze_all_entries函数会为每条记录计算max_severity,通过严重级别映射{"critical": 4, "high": 3, "medium": 2, "low": 1}找出整条记录的最高风险等级;generate_report函数则输出 JSON 报告,包含total_entries、enabled_entries、suspicious_entries、critical_entries以及按类别的分布统计(category_breakdown)。
运行方式(需 Python 3.9+):
python scripts/agent.py --csv-file autoruns.csv --output autoruns_report.json输出报告示例结构:
{ "timestamp": "2026-09-09T03:58:21.000000", "total_entries": 342, "enabled_entries": 128, "suspicious_entries": 7, "critical_entries": 1, "category_breakdown": {"Logon": 45, "Services": 32, ...}, "findings": [...] }此外,SKILL.md 还提供了轻量级的parse_and_flag函数示例,可直接对 CSV 文件做快速标记,适合在无法安装完整依赖的环境中应急使用:
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}")七、MITRE ATT&CK 持久化技术映射
本技能已完整映射到 ATT&CK 持久化战术(TA0003)下的关键技术,见 api-reference.md 与 SKILL.md:
| 技术 ID | 名称 |
|---|---|
| T1547.001 | Registry Run Keys / Startup Folder(注册表 Run 键 / 启动文件夹) |
| T1053.005 | Scheduled Task(计划任务) |
| T1543.003 | Windows Service(Windows 服务) |
| T1546.003 | WMI Event Subscription(WMI 事件订阅) |
| T1574.001 | DLL Search Order Hijacking(DLL 搜索顺序劫持) |
| T1037.001 | Logon Scripts(登录脚本) |
在仓库的 mappings/mitre-attack/README.md 中,本技能被明确列为 T1053(Scheduled Task/Job)与 T1547(Boot or Logon Autostart Execution)的代表技能,mappings/README.md 则显示 T1547.001 在全部技能中有 13 项覆盖。这些映射不仅可用于威胁知情防御与缺口分析,还能让 AI Agent 直接按 ATT&CK ID 检索对应技能,支撑自动化安全编排(见 mappings/attack-navigator-layer.json)。
同时,技能还映射了 NIST CSF 2.0 的相关类别(如 DE.AE-02、RS.AN-03、ID.RA-01、DE.CM-01)与 D3FEND 技术(Executable Denylisting、File Metadata Consistency Validation 等),并遵循 NIST SP 800-83(恶意软件事件预防指南)与 NIST SP 800-86 标准(见 standards.md),详见技能头部 frontmatter。
八、完整实战流程与基线比对
结合 SKILL.md 的 Workflow,推荐的生产级流程如下:
- 全量扫描:在目标主机上以管理员权限执行
autorunsc.exe -a * -c -h -s -v -vt -nobanner * -o autoruns.csv,或通过 SKILL.md 中的scan_and_analyze函数一步完成扫描与分析; - 自动化标记:运行
scripts/agent.py对 CSV 进行规则化研判,输出 JSON 报告; - 基线比对:利用 Autoruns 的 Compare 功能将当前快照与干净基线对比(这也是 SKILL.md 前置条件中"Clean baseline export for comparison"的用途),快速识别新增持久化机制——这是发现新型植入物的关键手段;
- 人工研判:对高严重级别条目逐一核验 Image Path 与 Launch String,检查数字签名与 VirusTotal 检出,确认后提取为 IOC;
- 验证清除:在移除持久化项后重新扫描,确认恶意自启动条目已完全清除(对应 SKILL.md 的 Validation Criteria:所有 ASEP 类别均已扫描编目、未签名条目已标记待查、可疑路径与 LOLBin 启动字符串已高亮、基线比对已识别出新增持久化机制);
- 报告输出:按 assets/template.md 的分析报告模板整理 SHA-256、发现项、IOC 与处置建议(报告标注 TLP:AMBER)。
九、适用前提与限制
- 权限要求:扫描服务、驱动、WMI 等类别需要本地管理员权限;离线分析(
-z)需配合取证镜像。 - 环境前提:Python 3.9+ 用于运行自动化分析脚本;
-vt选项需要有效的 VirusTotal API key 才能完成信誉查询。 - 性能注意:全量扫描(
-a *)在大型企业主机上可能产生数百 MB 的 CSV 输出与较长的执行时间,SKILL.md 的自动化脚本设置了 600 秒超时,建议在取证环境中合理规划。 - 签名校验边界:
-s -v只能验证签名链与目录对照,无法覆盖"使用被盗合法证书签名"的恶意样本,仍需结合哈希信誉与行为分析。
延伸阅读
- 技能主文档:SKILL.md
- 标准参考:references/standards.md
- 工作流概览:references/workflows.md
- 自动化脚本:scripts/agent.py
- 报告模板:assets/template.md
- MITRE ATT&CK 映射:mappings/mitre-attack/README.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),仅供参考