EVTX日志分析工具-Chainsaw

admin 2026-03-03 08:08:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Chainsaw是一款用Rust编写的极速Windows事件日志(EVTX)取证分析工具,专为应急响应和威胁狩猎设计。它支持Sigma规则和自定义规则,能快速扫描日志以检测恶意活动,如可疑进程执行、日志清除和横向移动。工具提供多种命令,包括hunt(规则扫描)、search(关键字搜索)、dump(格式转换)和analyse(深度解析取证文件),并支持JSON输出以便集成自动化分析管道。 综合评分: 85 文章分类: 应急响应,安全工具,威胁情报,恶意软件,安全运营


cover_image

EVTX日志分析工具-Chainsaw

原创

凉城 凉城

ListSec

2026年2月21日 20:39 江西

Chainsaw日志分析工具

1. 概述

Chainsaw 是一款使用 Rust 编写的极速、强大的取证神器(Forensic Artefacts)分析工具。它主要用于事件响应(Incident Response)和威胁狩猎(Threat Hunting)场景,能够极快地解析和搜索 Windows 事件日志(EVTX 文件)。 Chainsaw 内置对 Sigma 规则和自定义 Chainsaw 规则的支持,可以通过模式匹配和规则检测快速从海量日志中提取有价值的安全事件,识别潜在的恶意活动。

核心优势:

  • • 速度极快:得益于 Rust 的底层优化,处理庞大数量的 EVTX 文件非常迅速。
  • • 规则驱动:原生支持基于 Sigma 规则的威胁狩猎。
  • • 灵活输出:支持控制台高亮表格式输出以及 JSON 格式输出,方便集成到其他分析管道。

项目地址:https://github.com/WithSecureLabs/chainsaw/tree/master

2. 工具使用语法

Chainsaw 采用命令行交互方式,其基本语法如下:

Usage: chainsaw [OPTIONS] <COMMAND>

Commands:
&nbsp; dump &nbsp; &nbsp; 将事件日志(EVTX)或其他取证数据导出为不同的格式(如 JSON、XML)
&nbsp; hunt &nbsp; &nbsp; 使用预定义的检测规则(如 Sigma)对日志进行搜寻,识别潜在威胁或异常活动
&nbsp; lint &nbsp; &nbsp; 校验检测规则语法,确保它们能被正确加载和执行
&nbsp; search &nbsp; 在日志中快速检索特定的关键词、正则表达式或特定字段模式
&nbsp; analyse &nbsp;对取证数据进行自动化统计和分析,生成调查见解
help&nbsp; &nbsp; &nbsp;显示帮助信息

Options:
&nbsp; &nbsp; &nbsp; --no-banner &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;隐藏软件启动时的 Banner
&nbsp; &nbsp; &nbsp; --num-threads <NUM_THREADS> &nbsp;限制工作线程数 (默认: CPU 核心数)
&nbsp; -h, --help&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;打印帮助信息
&nbsp; -V, --version &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;打印版本信息

3. 工具使用场景

Chainsaw 常见于以下安全场景:

  • • 应急响应 (IR):当企业内网发生入侵事件时,安全人员可以将被攻陷机器的 Windows EVTX 日志拷贝出来,使用 Chainsaw 结合最新的 Sigma 规则进行快速扫描,迅速定位攻击者留下的痕迹(例如:利用漏洞产生的新开机自启服务、可疑的 PowerShell 脚本执行、日志清除行为等)。
  • • 威胁狩猎 (Threat Hunting):安全团队针对某些高级持续性威胁(APT),主动在全域收集的日志中搜索 IOC(如特定恶意软件名称、哈希或特定进程调用链)。可以利用 search 命令全局无视大小写地暴搜异常关键字。
  • • 日志审计与溯源:对长期积累的审计日志进行过滤和模式匹配,提炼出时间线,帮助分析人员还原完整的攻击路径。
  • • 蓝队安全防护校验:红队在进行授权模拟攻击后,蓝队可以使用 Chainsaw 结合日志验证现有的安全策略和日志采集配置是否完善,当前规则是否能够成功命中此次攻击。

4. 经典案例与用法

4.1 使用 Sigma 规则与自定义规则进行威胁狩猎 (Hunt)

在应急响应中最常用的做法,使用官方或开源的 Sigma 规则库对日志样本进行全面扫描。执行此操作时,需要指定字段映射文件(mapping)以便转换规则字段。

Chainsaw 除了支持 Sigma 规则外,自身 rules 目录下也包含多种实用的自定义检测规则,例如:

  1. 1. 提取和解析 Windows Defender, F-Secure, Sophos 和 Kaspersky 等杀软的告警。
  2. 2. 检测关键事件日志被清除,或事件日志服务被停止的行为。
  3. 3. 用户被创建或被添加到敏感用户组的行为。
  4. 4. 远程登录 (服务, RDP, 网络等) 事件,帮助狩猎横向移动源头。
  5. 5. 本地用户账户的暴力破解。
# 扫描 evtx_attack_samples 目录,同时使用 sigma 规则和 Chainsaw 自带规则,并加载映射文件
./chainsaw hunt evtx_attack_samples/ \
&nbsp; -s sigma/ \
&nbsp; --mapping mappings/sigma-event-logs-all.yml \
&nbsp; -r rules/

e819514e40873de0cf61455552d407da_MD5

# 以 JSON 格式输出狩猎结果,适合重定向到文件以供后续 jq 或 Python 脚本处理
./chainsaw hunt evtx_attack_samples/ \
&nbsp; -s sigma/ \
&nbsp; --mapping mappings/sigma-event-logs-all.yml \
&nbsp; --json > result.json

# 【高级过滤】限制检测级别 (Level):仅匹配 high 或 critical 级别的高危告警规则
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml --level high critical

# 【高级过滤】时间线过滤 (Time):仅搜索在指定时间范围内的日志 (例如应急响应中已确认被入侵的时间段)
# 使用 --from 和 --to 参数
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml --from&nbsp;"2023-01-01T00:00:00"&nbsp;--to&nbsp;"2023-01-02T23:59:59"

4.2 关键字暴搜 (Search)

当已经明确某些 IOC(如恶意域名、特定黑客工具名称如 Mimikatz 等)时,可以通过暴搜进行快速定位。

# 搜索日志中出现的 mimikatz 关键字,使用 -i 参数忽略大小写
./chainsaw search mimikatz -i evtx_attack_samples/

# 搜索指定的正则表达式模式 (如寻找 base64 编码特征的 powershell)
# 官方推荐使用 -e (或 --regex) 参数进行全局正则匹配:
./chainsaw search -e&nbsp;'powershell\.exe.*-enc'&nbsp;evtx_attack_samples/

1336ecbd68f8921b7fc5bf04875512f6_MD5

4b8bbf79d4d4fdc0a45f0754227d5ba5_MD5

4.3 特定字段过滤搜索

Chainsaw 可以针对 EVTX 日志的具体结构字段进行精确匹配,过滤出无关干扰。使用 -t 或 --tag 指定过滤条件。

# 1. 常见系统与执行分析

# 搜索 Powershell 面板脚本块日志 (EventID: 4104)
./chainsaw search -t&nbsp;'Event.System.EventID: =4104'&nbsp;evtx_attack_samples/

# 进程执行分析:搜索 cmd.exe 等可疑命令行的进程启动事件 (EventID: 4688)
# 这里使用 '~' 进行正则表达式匹配
./chainsaw search -t&nbsp;'Event.System.EventID: =4688'&nbsp;-t&nbsp;'Event.EventData.NewProcessName: ~.*cmd\.exe'&nbsp;evtx_attack_samples/

# 服务安装监控:查找最新安装的系统服务 (EventID: 7045),以发现恶意服务/驱动持久化后门
./chainsaw search -t&nbsp;'Event.System.EventID: =7045'&nbsp;evtx_attack_samples/

# 隐匿破坏行为:查找安全日志被恶意清除的事件 (EventID: 1102 为安全日志被清,104 为系统日志被清)
./chainsaw search -t&nbsp;'Event.System.EventID: =1102'&nbsp;evtx_attack_samples/

# 2. 用户身份与身份验证分析

# 暴力破解与非法登录分析:搜索 RDP / SMB 登录失败事件 (EventID: 4625)
./chainsaw search -t&nbsp;'Event.System.EventID: =4625'&nbsp;evtx_attack_samples/

# 搜索特定用户的相关活动 (例如目标用户名为 administrator 的相关操作)
./chainsaw search -t&nbsp;'Event.EventData.TargetUserName: administrator'&nbsp;evtx_attack_samples/

# 异常横向移动分析:查找特定来源 IP 的登录成功事件 (EventID: 4624)
./chainsaw search -t&nbsp;'Event.System.EventID: =4624'&nbsp;-t&nbsp;'Event.EventData.IpAddress: 10.10.10.50'&nbsp;evtx_attack_samples/

# 3. 恶意 IP 过滤分析

# 基础 IP 匹配:直接搜索包含特定恶意 IP 的所有日志记录(不限字段)
./chainsaw search&nbsp;'192.168.1.100'&nbsp;evtx_attack_samples/

# 精确字段匹配:仅搜索 Event.EventData.IpAddress 字段为指定恶意 IP 的记录(如网络连接、登录记录等)
./chainsaw search -t&nbsp;'Event.EventData.IpAddress: 192.168.1.100'&nbsp;evtx_attack_samples/

# 多 IP 匹配或网段匹配:推荐使用官方的 `-e` 参数进行原生正则表达式全局匹配
./chainsaw search -e&nbsp;'172\.16\.66\.\d{1,3}'&nbsp;evtx_attack_samples/

# 结合关键事件分析恶意 IP 行为:例如,特定恶意 IP 尝试进行 RDP 登录 (网络级别的身份验证,通常是登录成功 4624 或登录失败 4625)
./chainsaw search -t&nbsp;'Event.System.EventID: =4624'&nbsp;-t&nbsp;'Event.EventData.IpAddress: 192.168.1.100'&nbsp;evtx_attack_samples/
# 注意:EventID 的匹配必须使用 '=' (因为在 EVTX 结构中它是整型),而对于 IpAddress 直接输入字符串即可。

4.4 导出取证数据 (Dump)

dump 命令用于将难以直接阅读的原生 EVTX 文件快速读取,并转换为直观的文本或机器易读的 JSON 格式。当你在应急响应中不需要按规则扫描,只想对日志进行格式清洗和转换时,此命令非常方便。

# 将目录下的所有 EVTX 日志以人类可读的字符串格式直接输出打印到控制台
./chainsaw dump evtx_attack_samples/

# 将日志提取并转换为纯 JSON 格式,重定向保存到文件中,非常适合后续输入到 jq 工具分析或导入 ELK 平台
./chainsaw dump evtx_attack_samples/ --json > dumped_logs.json

4.5 取证数据深度分析 (Analyse)

analyse 命令并非用于 EVTX 宏观统计,而是专门用于对 Windows 系统中的特定取证文件(Artefacts) 进行深度解析。目前主要支持提取程序历史执行记录(Shimcache / Amcache)以及系统资源监控数据库(SRUM)。

# 1. Shimcache (AppCompatCache)

# 提取并解析系统的 Shimcache(SYSTEM 注册表配置单元),生成程序执行时间线。
# Shimcache 是极具价值的取证来源,即使恶意程序执行后被删除,痕迹仍可能遗留。
./chainsaw analyse shimcache /path/to/SYSTEM

# 结合 Amcache 数据进行强化补充(Amcache 能提供已执行文件的 SHA1 哈希等更多细节)
./chainsaw analyse shimcache /path/to/SYSTEM -a /path/to/Amcache.hve

# 2. SRUM (System Resource Usage Monitor)

# 解析 SRUM 数据库(原文件通常位于 C:\Windows\System32\sru\SRUDB.dat)。
# SRUM 会记录至少 30 天的网络使用量、程序运行时长等。在应急响应中,这常被用来发现异常的数据外传程序或潜伏的后门进程。
./chainsaw analyse srum /path/to/SRUDB.dat

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:ListSec 凉城 凉城《EVTX日志分析工具-Chainsaw》

评论:0   参与:  0