文章总结: Chainsaw是一款强大的Windows日志快速分析工具,专为应急响应设计。它能够快速识别Windows取证工件中的威胁,支持Sigma检测规则和自定义Chainsaw检测规则。该工具由Rust编写,运行速度快,可在MacOS、Linux和Windows上运行。文章详细介绍了Chainsaw的下载安装方法、基本使用命令以及如何进行日志搜索、威胁狩猎和分析。对于安全人员来说,掌握Chainsaw可以大大提高Windows事件日志分析的效率,有助于快速发现和响应安全威胁。
综合评分: 89
文章分类: 应急响应,安全工具,漏洞分析,威胁情报
【应急响应工具教程】Windows日志快速分析工具——Chainsaw
原创
solarsec
solar应急响应团队
2025年5月15日 15:13
Chainsaw 提供强大的“第一响应”功能,可快速识别 Windows 取证工件(如事件日志和 MFT 文件)中的威胁。Chainsaw 提供了一种通用且快速的方法,可以在事件日志中搜索关键字,并使用对 Sigma 检测规则的内置支持和自定义 Chainsaw 检测规则来识别威胁。
特征
- 🎯 使用 Sigma 检测规则和自定义 Chainsaw 检测规则搜寻威胁
- 🔍 通过字符串匹配和正则表达式模式搜索和提取法医伪影
- 📅 通过分析 Shimcache 工件并使用 Amcache 数据丰富它们来创建执行时间表
- 💡 分析 SRUM 数据库并提供有关它的见解
- ⬇️ 转储取证伪影的原始内容(MFT、注册表配置单元、ESE 数据库)
- ⚡ 快如闪电,用 Rust 编写,通过 @OBenamram 包装 EVTX 解析器库
- 🪶 干净轻量级的执行和输出格式,没有不必要的膨胀
- 🔥 TAU Engine Library 提供的文档标记(检测逻辑匹配)
- 📑 以多种格式输出结果,例如 ASCII 表格式、CSV 格式和 JSON 格式
- 💻 可以在 MacOS、Linux 和 Windows 上运行
github链接:
https://github.com/WithSecureLabs/chainsaw
Windows 事件日志的搜寻逻辑
Sigma 规则匹配
使用 --sigma 和 --mapping 参数,您可以指定一个包含 SIGMA 检测规则子集(或仅整个 SIGMA git 存储库)的目录,chainsaw 将根据提供的事件日志自动加载、转换和运行这些规则。映射文件告诉 chainsaw 事件日志中的哪些字段用于规则匹配。默认情况下,Chainsaw 支持多种 Event Log 类型,包括但不限于:
| 事件类型 | 事件 ID |
| — | — |
| 进程创建 (Sysmon) | 1 |
| 网络连接 (Sysmon) | 3 |
| 映像加载 (Sysmon) | 7 |
| 文件创建 (Sysmon) | 11 |
| 注册表事件 (Sysmon) | 13 |
| Powershell 脚本块 | 4104 |
| 进程创建 | 4688 |
| 计划任务创建 | 4698 |
| 服务创建 | 7045 |
电锯检测规则
除了支持 sigma 规则外,Chainsaw 还支持自定义规则格式。在存储库中,您将找到一个 rules 目录,其中包含各种 Chainsaw 规则,允许用户:
1.提取和解析 Windows Defender、F-Secure、Sophos 和 Kaspersky AV 警报
2.检测正在清除的关键事件日志或正在停止的事件日志服务
3.正在创建或添加到敏感用户组的用户
4.远程登录(服务、RDP、网络等)事件。这有助于猎人识别横向移动的来源
5.本地用户帐户的暴力破解
下载和运行
Chainsaw v2 以及不在将 Sigma Rules 和 EVTX-Attack-Samples 存储库作为 Chainsaw 子模块包含在内。
如果你想自己编译 Chainsaw,你可以克隆 Chainsaw 仓库:
git clone ``https://github.com/WithSecureLabs/chainsaw.git
然后通过运行 cargo build --release 自行编译代码。构建完成后,您将在 target/release 文件夹中找到已编译二进制文件的副本。
确保使用 --release 标志进行构建,因为这将确保显著加快执行时间。
如果你想快速查看 Chainsaw 运行时的样子,你可以克隆 Sigma Rules 和 EVTX-Attack-Samples 存储库:
git clone https://github.com/SigmaHQ/sigma
git clone https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES.git
然后使用以下参数运行 Chainsaw:
./chainsaw hunt EVTX-ATTACK-SAMPLES/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
使用 Nix 进行安装/构建
├───devShells
│ └───x86_64-linux
│ └───default: development environment 'nix-shell'
├───formatter
│ └───x86_64-linux: package 'alejandra-3.1.0'
└───packages
└───x86_64-linux
├───chainsaw: package 'chainsaw-2.10.1'
└───default: package 'chainsaw-2.10.1'
Chainsaw 作为一个包,可以通过 nixpkgs 获得。如果你使用的是 NixOS,只需在你的系统配置文件中添加 chainsaw 即可。
但是,如果你没有使用 NixOS,你仍然可以通过 Nix 安装 Chainsaw。推荐的方法是通过 nix-shell,它会暂时修改你的 $PATH 环境变量。为此,请运行以下命令:
nix-shell -p chainsaw
您还可以利用此 repo 是 flake 这一事实,您可以运行以下内容:
nix profile install github:WithSecureLabs/chainsaw
但是,如果您想使用 Nix 自己构建 chainsaw,您可以再次使用此存储库中提供的 flake.nix。要构建二进制文件,请在克隆的 repo 的根目录中运行以下命令
nix build .#
这将创建 ./result 目录,其中 chainsaw 二进制文件位于 ./result/bin/chainsaw 下。
EDR 和 AV 警告
下载和运行 Chainsaw 时,您可能会发现本地 EDR / AntiVirus 引擎将 Chainsaw 检测为恶意。您可以在以下 GitHub 问题中看到相关示例:Example1、Example2。
这些警告通常是由于示例事件日志和/或 Sigma 规则包含对恶意字符串(例如“mimikatz”)的引用。我们还看到过 Chainsaw 二进制文件被一小部分反病毒引擎检测到的情况,这可能是由于某种形式的启发式检测。
简单使用
Searching
= USAGE:
chainsaw search [FLAGS] [OPTIONS] <pattern> [--] [path]...
FLAGS:
-h, --help Prints help information
-i, --ignore-case Ignore the case when searching patterns
--json Print the output in json format
--load-unknown Allow chainsaw to try and load files it cannot identify
--local Output the timestamp using the local machine's timestamp
-q Suppress informational output
--skip-errors Continue to search when an error is encountered
-V, --version Prints version information
OPTIONS:
--extension <extension>... Only search through files with the provided extension
--from <from> The timestamp to search from. Drops any documents older than the value provided
-o, --output <output> The path to output results to
-e, --regex <pattern>... A string or regular expression pattern to search for
-t, --tau <tau>... Tau expressions to search with. e.g. 'Event.System.EventID: =4104'
--timestamp <timestamp> The field that contains the timestamp
--timezone <timezone> Output the timestamp using the timezone provided
--to <to> The timestamp to search up to. Drops any documents newer than the value provided
ARGS:
<pattern> A string or regular expression pattern to search for. Not used when -e or -t is specified
<path>... The paths containing event logs to load and hunt through
命令示例
在所有 .evtx 文件中搜索不区分大小写的字符串 “mimikatz”
./chainsaw search mimikatz -i evtx_attack_samples/
在所有 .evtx 文件中搜索 powershell 脚本块事件(事件 ID 4014)
./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/
在特定的 evtx 日志中搜索登录事件,具有匹配的正则表达式模式,输出为JSON格式
./chainsaw search -e "DC[0-9].insecurebank.local" evtx_attack_samples --json
Hunting
USAGE:
chainsaw hunt [FLAGS] [OPTIONS] [--] [path]...
FLAGS:
--csv Print the output in csv format
--full Print the full values for the tabular output
-h, --help Prints help information
--json Print the output in json format
--load-unknown Allow chainsaw to try and load files it cannot identify
--local Output the timestamp using the local machine's timestamp
--log Print the output in log like format
--metadata Display additional metadata in the tablar output
-q Suppress informational output
--skip-errors Continue to hunt when an error is encountered
-V, --version Prints version information
OPTIONS:
--column-width <column-width> Set the column width for the tabular output
--extension <extension>... Only hunt through files with the provided extension
--from <from> The timestamp to hunt from. Drops any documents older than the value provided
--kind <kind>... Restrict loaded rules to specified kinds
--level <level>... Restrict loaded rules to specified levels
-m, --mapping <mapping>... A mapping file to tell Chainsaw how to use third-party rules
-o, --output <output> A path to output results to
-r, --rule <rule>... A path containing additional rules to hunt with
-s, --sigma <sigma>... A path containing Sigma rules to hunt with
--status <status>... Restrict loaded rules to specified statuses
--timezone <timezone> Output the timestamp using the timezone provided
--to <to> The timestamp to hunt up to. Drops any documents newer than the value provided
ARGS:
<rules> The path to a collection of rules to usefor hunting
<path>... The paths containing eventlogstoloadand hunt through
命令示例
使用检测逻辑的 Sigma 规则搜寻所有 evtx 文件
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
sigma规则下载链接:https://github.com/SigmaHQ/sigma
使用 Sigma 规则和 Chainsaw 规则搜寻所有 evtx 文件,以获取检测逻辑,并以 CSV 格式输出到结果文件夹
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml -r rules/ --csv --output results
使用 Sigma 检测逻辑规则搜寻所有 evtx 文件,仅在特定时间戳之间搜索,并以JSON格式输出结果
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml --from "2019-03-17T19:09:39" --to "2019-03-17T19:09:50" --json
Analysing
COMMAND:
analyse shimcache Create an execution timeline from the shimcache with optional amcache enrichments
USAGE:
chainsaw analyse shimcache [OPTIONS] <SHIMCACHE>
ARGUMENTS:
<SHIMCACHE> The pathto the shimcache artefact (SYSTEM registry file)
OPTIONS:
-e, --regex <pattern> A string or regular expression for detecting shimcache entries whose timestamp matches their insertion time
-r, --regexfile <REGEX_FILE> The path to a newline delimited file containing regex patterns for detecting shimcache entries whose timestamp matches their insertion time
-o, --output <OUTPUT> The path to output the result csv file
-a, --amcache <AMCACHE> The path to the amcache artefact (Amcache.hve) for timeline enrichment
-p, --tspair Enable near timestamp pair detection between shimcache and amcache for finding additional insertion timestamps for shimcache entries
-h, --help Print help
--regexfile参数的示例模式文件包含在 analysis/shimcache_patterns.txt 中。- 正则表达式模式在转换为小写的 shimcache 条目中的路径上匹配。
命令示例
使用提供的正则表达式模式分析 shimcache 工件,并在启用时间戳接近对检测的情况下使用 amcache 扩充。输出到 csv 文件。
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt --amcache ./Amcache.hve --tspair --output ./output.csv
使用提供的正则表达式模式分析 shimcache 工件(无需 amcache 扩充)。输出到终端。
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt
SRUM (系统资源使用情况监视器)
在 Chainsaw 中实现的 SRUM 数据库解析器与其他解析器不同,因为它不依赖于有关表的硬编码值。该信息直接从 SOFTWARE 配置单元中提取,这是一个必需参数。目标是避免与未知表相关的错误。
COMMAND:
analyse srum Analyse the SRUM database
USAGE:
chainsaw analyse srum [OPTIONS] --software <SOFTWARE_HIVE_PATH> <SRUM_PATH>
ARGUMENTS:
<SRUM_PATH> The path to the SRUM database
OPTIONS:
-s, --software <SOFTWARE_HIVE_PATH> The path to the SOFTWARE hive
--stats-only Only output details about the SRUM database
-q Suppress informational output
-o, --output <OUTPUT> Save the output to a file
-h, --help Print help
命令示例
分析 SRUM 数据库(SOFTWARE 配置单元)
./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat --output ./output.json
Dumping
USAGE:
chainsaw dump [OPTIONS] <PATH>
ARGUMENTS:
<PATH> The path to an artefact to dump
OPTIONS:
-j, --json Dump in json format
--jsonl Print the output in jsonl format
--load-unknown Allow chainsaw to try and load files it cannot identify
-o, --output <OUTPUT> A path to output results to
-q Suppress informational output
--skip-errors Continue to hunt when an error is encountered
-h, --help Print help
转储 SOFTWARE 配置单元
命令示例
./chainsaw dump ./SOFTWARE.hve --json --output ./output.json
以下是solar安全团队近期处理过的常见勒索病毒后缀:
| | | |
| — | — | — |
| 收录时间 | 病毒家族 | 相关文章 |
| 2025/01/14 | medusalocker | 【病毒分析】深入剖析MedusaLocker勒索家族:从密钥生成到文件加密的全链路解析 |
| 2025/01/15 | medusa | 【病毒分析】“美杜莎”勒索家族:从入侵到结束的全流程深度解析 |
| 2024/12/11 | weaxor | 【病毒分析】新崛起的weaxor勒索家族:疑似mallox家族衍生版,深度解析两者关联! |
| 2024/10/23 | RansomHub | 【病毒分析】Ransom Hub:唯一不攻击中国的2024全球Top1勒索家族——ESXi加密器深度解析 |
| 2024/11/23 | Fx9 | 【病毒分析】Fx9家族首次现身!使用中文勒索信,熟练勒索谈判 |
| 2024/11/04 | Makop | 【病毒分析】揭秘.mkp后缀勒索病毒!Makop家族变种如何进行可视化加密? |
| 2024/06/26 | moneyistime | 【病毒分析】使用中文勒索信及沟通:MoneyIsTime 勒索家族的本地化语言转变及其样本分析 |
| 2024/04/11 | babyk | 【病毒分析】BabyK加密器分析-Windows篇 【病毒分析】Babyk加密器分析-NAS篇 【病毒分析】Babyk加密器分析-EXSI篇 【病毒分析】Babuk家族babyk勒索病毒分析 【成功案例】利用多款国产内网渗透工具勒索数十台虚拟机的babyk解密恢复项目 |
| 2024/09/29 | lol | 【病毒分析】全网首发!全面剖析.LOL勒索病毒,无需缴纳赎金,破解方案敬请期待下篇! 【工具分享】.LOL勒索病毒再也不怕!完整破解教程分享+免费恢复工具首发 |
| 2024/06/10 | MBRlock | 【病毒分析】假冒游戏陷阱:揭秘MBRlock勒索病毒及其修复方法 |
| 2024/06/01 | Rast gang | 【病毒分析】Steloj勒索病毒分析 |
| 2024/06/01 | TargetOwner | 【病毒分析】技术全面升级,勒索赎金翻倍,新版本TargetOwner勒索家族强势来袭? |
| 2024/11/02 | Lockbit 3.0 | 【病毒分析】Lockbit家族Lockbit 3.0加密器分析 【成功案例】RDP暴露引发的蝴蝶效应:LockBit组织利用MSF工具及永恒之蓝漏洞进行勒索入侵 【成功案例】lockbit家族百万赎金不必付!技术手段修复被加密的数据库,附溯源分析报告 【病毒分析】繁体勒索信暗藏玄机!要价50万RMB赎金的Lockbit泄露版分析 |
| 2024/05/15 | wormhole | 【病毒分析】Wormhole勒索病毒分析 |
| 2024/03/20 | tellyouthepass | 【病毒分析】locked勒索病毒分析 【病毒分析】中国人不骗中国人?_locked勒索病毒分析 |
| 2024/03/01 | lvt | 【病毒分析】交了赎金也无法恢复–针对国内某知名NAS的LVT勒索病毒最新分析 |
| 2024/03/04 | phobos | 【病毒分析】phobos家族2700变种加密器分析报告 【成功案例】某集团公司的Phobos最新变种勒索病毒2700解密恢复项目 【病毒分析】phobos家族faust变种加密器分析 【成功案例】某集团公司的Phobos最新变种勒索病毒jopanaxye解密恢复项目 【病毒分析】phobos家族Elbie变种加密器分析报告 |
| 2024/03/28 | DevicData | 【病毒分析】DevicData勒索病毒分析 【病毒分析】DevicData家族扩散:全球企业和机构成为勒索病毒头号攻击目标! |
| 2024/02/27 | live | 【病毒分析】独家揭秘LIVE勒索病毒家族之1.0(全版本可解密) 【病毒分析】独家揭秘LIVE勒索病毒家族之1.5(全版本可解密) 【病毒分析】独家揭秘LIVE勒索病毒家族之2.0(全版本可解密) |
| 2024/08/16 | CryptoBytes | 【独家破解】揭秘境外黑客组织的20美元锁机病毒:深度逆向分析+破解攻略!赎金?给你付个🥚 |
| 2024/03/15 | mallox | 【病毒分析】mallox家族malloxx变种加密器分析报告 【病毒分析】Mallox勒索家族新版本:加密算法全面解析 【病毒分析】全网首发!袭扰国内top1勒索病毒家族Mallox家族破解思路及技术分享 【成功案例】间隔数月双团伙先后利用某ERP0day实施入侵和勒索的解密恢复项目 【病毒分析】mallox家族rmallox变种加密器分析报告 【病毒分析】Mallox家族再进化:首次瞄准Linux,勒索新版本全面揭秘! |
| 2024/07/25 | BeijngCrypt | 【病毒分析】全网首发!以国内某安全厂商名字为后缀的勒索病毒分析 |
| 2025/03/11 | 银狐 | 【病毒分析】潜伏在AI工具中的幽灵:银狐家族社工攻击的深度剖析 |
| 2025/03/07 | CTF赛题 | 【病毒分析】伪造微软官网+勒索加密+支付威胁,CTF中勒索病毒解密题目真实还原! 【病毒分析】2024年网鼎杯朱雀组REVERSE02——关于勒索木马解密详解 |
| 2025/05/14 | 888 | 【病毒分析】888勒索家族再出手!幕后加密器深度剖析 |
勒索攻击作为成熟的攻击手段,很多勒索家族已经形成了一套完整的商业体系,并且分支了很多团伙组织,导致勒索病毒迭代了多个版本。而每个家族擅用的攻击手法皆有不同,TellYouThePass勒索软件家族常常利用系统漏洞进行攻击;Phobos勒索软件家族通过RDP暴力破解进行勒索;Mallox勒索软件家族利用数据库及暴力破解进行加密,攻击手法极多防不胜防。
| | |
| — | — |
| 时间 | 相关文章 |
| 2024/12/12 | 【攻击手法分析】勒索病毒如何轻松绕过安全设备防线:第二篇-流量致盲,无声突破 |
| 2024/12/11 | 【攻击手法分析】勒索病毒如何轻松绕过安全设备防线:第一篇-驱动漏洞一击致命 |
而最好的预防方法就是针对自身业务进行定期的基线加固、补丁更新及数据备份,在其基础上加强公司安全人员意识。
| | |
| — | — |
| 时间 | 相关文章 |
| 2024/06/27 | 【教程分享】勒索病毒来袭!教你如何做好数据防护 |
| 2024/06/24 | 【教程分享】服务器数据文件备份教程 |
案例介绍篇聚焦于真实的攻击事件,还原病毒家族的攻击路径和策略,为用户提供详细的溯源分析和防护启示;
| | |
| — | — |
| 时间 | 相关文章 |
| 2024/06/27 | 【案例介绍】赎金提高,防御失效:某上市企业两年内两度陷入同一勒索团伙之手 |
| 2024/01/26 | 【成功案例】某集团公司的Phobos最新变种勒索病毒jopanaxye解密恢复项目 |
| 2024-03-13 | 【成功案例】某集团公司的Phobos最新变种勒索病毒2700解密恢复项目 |
| 2024-04-01 | 【成功案例】间隔数月双团伙先后利用某ERP0day实施入侵和勒索的解密恢复项目 |
| 2024-04-26 | 【成功案例】利用多款国产内网渗透工具勒索数十台虚拟机的babyk解密恢复项目 |
| 2024-05-17 | 【成功案例】RDP暴露引发的蝴蝶效应:LockBit组织利用MSF工具及永恒之蓝漏洞进行勒索入侵 |
| 2024-11-28 | 【成功案例】lockbit家族百万赎金不必付!技术手段修复被加密的数据库,附溯源分析报告 |
漏洞与预防篇侧重于技术层面的防御手段,针对病毒利用的漏洞和安全弱点,提出操作性强的应对方案:
| | |
| — | — |
| 时间 | 相关文章 |
| 2025/01/08 | 【漏洞与预防】RDP弱口令漏洞预防 |
| 2025/01/21 | 【漏洞与预防】MSSQL数据库弱口令漏洞预防 |
| 2025/02/18 | 【漏洞与预防】远程代码执行漏洞预防 |
| 2025/04/10 | 【漏洞与预防】Atlassian Confluence存在远程代码执行漏洞 |
| 2025/04/17 | 【漏洞与预防】畅捷通文件上传漏洞预防 |
应急响应工具教程篇重点分享应急响应过程中常用工具的安装、配置与使用说明,旨在帮助读者快速掌握这些工具的操作流程与技巧,提高其在实际应急场景中的应用熟练度与效率。
| | |
| — | — |
| 时间 | 相关文章 |
| 2025/01/10 | 【应急响应工具教程】Splunk安装与使用 |
| 2025/02/07 | 【应急响应工具教程】取证工具-Volatility安装与使用 |
| 2025/02/20 | 【应急响应工具教程】流量嗅探工具-Tcpdump |
| 2025/02/26 | 【应急响应工具教程】一款精准搜索文件夹内容的工具–FileSeek |
| 2025/03/03 | 【应急响应工具教程】一款自动化分析网络安全应急响应工具–FindAll |
| 2025/03/13 | 【应急响应工具教程】Windows 系统操作历史监控与审计工具-LastActivityView |
| 2025/03/20 | 【应急响应工具教程】镜像取证之挂载镜像——Arsenal Image Mounter |
| 2025/04/03 | 【应急响应工具教程】Windows 系统综合排查工具Hawkeye |
| 2025/04/08 | 【应急响应工具教程】Linux下应急响应工具whohk |
如果您想了解有关勒索病毒的最新发展情况,或者需要获取相关帮助,请关注“solar专业应急响应团队”。
全国热线|400-613-6816
更多资讯 扫码加入群组交流
喜欢此内容的人还喜欢
【紧急警示】Weaxor最新变种“.wxx”来袭,批量入国内知名财务类管理系统发起勒索攻击!
索勒安全团队
索勒安全团队
#
【病毒分析】伪造微软官网+勒索加密+支付威胁,CTF中勒索病毒解密题目真实还原!
索勒安全团队
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:solar应急响应团队 solarsec《【应急响应工具教程】Windows日志快速分析工具——Chainsaw》