news 2026/9/10 9:23:33

使用 Sysinternals Autoruns 分析 Windows 恶意软件持久化机制:API 参考与实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Sysinternals Autoruns 分析 Windows 恶意软件持久化机制:API 参考与实战指南

使用 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条目名称
Enabledenabled/disabled 状态
CategoryAutoruns 类别
Description文件描述
Company发布者名称
Image Path二进制文件完整路径
Launch String完整命令行
MD5 / SHA-1 / SHA-256文件哈希
Signer代码签名状态
VT detectionVirusTotal 检出率(如 "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 类:

类别示例
LogonRun/RunOnce 键、启动文件夹
ServicesWindows 服务
Drivers内核驱动程序
Scheduled Tasks任务计划程序条目
WinlogonShell、Userinit、Notify
WMI事件订阅
AppInitAppInit_DLLs
Boot ExecuteBootExecute 值
Image HijacksIFEO 调试器条目
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列表覆盖powershellcmd.exe /cwscriptcscriptmshtaregsvr32rundll32certutilbitsadminschtasksmsiexec /qforfiles等离地攻击常用工具,命中标记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): pass

analyze_all_entries函数会为每条记录计算max_severity,通过严重级别映射{"critical": 4, "high": 3, "medium": 2, "low": 1}找出整条记录的最高风险等级;generate_report函数则输出 JSON 报告,包含total_entriesenabled_entriessuspicious_entriescritical_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.001Registry Run Keys / Startup Folder(注册表 Run 键 / 启动文件夹)
T1053.005Scheduled Task(计划任务)
T1543.003Windows Service(Windows 服务)
T1546.003WMI Event Subscription(WMI 事件订阅)
T1574.001DLL Search Order Hijacking(DLL 搜索顺序劫持)
T1037.001Logon 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,推荐的生产级流程如下:

  1. 全量扫描:在目标主机上以管理员权限执行autorunsc.exe -a * -c -h -s -v -vt -nobanner * -o autoruns.csv,或通过 SKILL.md 中的scan_and_analyze函数一步完成扫描与分析;
  2. 自动化标记:运行scripts/agent.py对 CSV 进行规则化研判,输出 JSON 报告;
  3. 基线比对:利用 Autoruns 的 Compare 功能将当前快照与干净基线对比(这也是 SKILL.md 前置条件中"Clean baseline export for comparison"的用途),快速识别新增持久化机制——这是发现新型植入物的关键手段;
  4. 人工研判:对高严重级别条目逐一核验 Image Path 与 Launch String,检查数字签名与 VirusTotal 检出,确认后提取为 IOC;
  5. 验证清除:在移除持久化项后重新扫描,确认恶意自启动条目已完全清除(对应 SKILL.md 的 Validation Criteria:所有 ASEP 类别均已扫描编目、未签名条目已标记待查、可疑路径与 LOLBin 启动字符串已高亮、基线比对已识别出新增持久化机制);
  6. 报告输出:按 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 9:23:16

E710射频读写器开发入门:从源码到读卡距离调试全流程

简介:E710射频读写器示例程序与源码包面向RFID开发者、嵌入式工程师及设备集成人员,提供从底层通讯到上层应用的一整套参考实现,可据此快速掌握读写器初始化、标签识别、数据写入等核心操作,降低项目开发门槛。包内共67个文件&…

作者头像 李华
网站建设 2026/9/10 9:23:01

激光雷达与摄像头融合的船舶吃水深度自动识别方案

干了小半年的港口测量项目,我把激光雷达和摄像头搬到码头边上,做了一个不靠人读的船舶吃水深度识别算法。初期跑通方案到稳定出数,踩的坑比预想多,但这套融合思路基本成熟了:雷达负责几何和距离,摄像头负责…

作者头像 李华
网站建设 2026/9/10 9:20:12

MCP在工业物联网的落地实践:从设备运维到跨系统数据问答

1. 先搞清楚MCP到底解决了什么问题聊MCP在工业物联网的落地之前,得先把一个事情说透:MCP的定位到底是什么。MCP全称是Model Context Protocol,核心是给大模型和外部系统之间定义了一套标准的"接线方式"。以前你要让AI去访问数据、调…

作者头像 李华
网站建设 2026/9/10 9:19:37

SpringBoot德育奖惩管理系统实战:权限设计与审批流全解

这个项目是我在带本科毕业设计时经常被学生拿来问的一款典型Java后端系统:学生德育奖惩管理系统,同时也叫综合素质测评与奖助管理系统。说白了就是把过去辅导员手动记录德育分、纸质审批奖惩材料、人工排奖助学金名单这些事,搬到Web端去&…

作者头像 李华