Snaffler 输出文件解析器
尤其是在大型环境中,Snaffler 的输出会变得非常庞大且耗时难以分析。
此脚本解析 Snaffler 输出文件(需要 TSV 格式)并:
- 将结果美化为可读表格,并导出为 TXT、CSV、HTML、JSON 或 PS Gridview。
- 生成交互式 HTML 报告,具有:
- 过滤(严重性、扩展名、修改年份)和全文搜索
- 动态排序
- 预览文本中的关键词高亮
- 直接操作(打开父文件夹、下载文件、复制 UNC、复制父 UNC)
- 带持久状态的审查工作流:
- 可选的 unescape 模式,提高预览可读性(实验性)
- 对非常大的数据集进行分页
- 列选择器(每个报告持久化)
- 将当前过滤视图导出为 CSV
- Snaffler 作业元数据(开始/结束/主机/用户/时间戳...)
- 按 严重性(黑/红/黄/绿) 排序,然后按修改日期(默认)或其他字段排序
- 将所有发现的 共享 导出到文本文件
- 可将可访问的共享导出为 Explorer++ 书签
示例
解析输出文件:

HTML 输出:

TXT 输出:

前提条件与用法
必须使用 -y 开关执行 Snaffler,以创建 TSV 格式的输出文件。
示例:
.\Snaffler.exe -o snafflerout.txt -s -y
简单解析
简单解析文件 my_snaffler_output.txt,并使用默认排序(严重性、修改日期)和默认输出文件(TXT、CSV、HTML)写入输出。
.\snafflerparser.ps1 -in my_snaffler_output.txt
输出选项
不同的文件输出选项有:
-outformat all 写入 txt、csv、html 和 json(默认)
-outformat txt 写入 txt
-outformat csv 写入 csv
-outformat html 写入 html
-outformat json 写入 json
这些文件可以通过 -split 开关按严重性(黑、红、黄、绿)拆分。
此外,可以使用 -gridview 显示 PS 网格视图输出。
HTML 报告
功能
- 对大型报告进行分页
- 全文搜索(UNC / 规则 / 关键词 / 内容)并高亮显示
- 过滤器:
- 严重性(黑 / 红 / 黄 / 绿)
- 修改年份
- 文件扩展名(带扩展名搜索)
- 状态过滤器:仅显示★标记 / 隐藏✓完成
- 通过点击表头排序(除非切换到全局排序,否则保留严重性分组)
- 预览内容中的关键词高亮
- 每行操作:
- 复制完整 UNC 路径
- 复制父 UNC 路径
- 打开父文件夹(
file://)
- 下载文件(
file://)
- 列选择器(每个报告持久化)
- 将当前过滤视图导出为 CSV
- 报告元数据标题 + “作业信息”模态框(输入文件、主机/用户、哈希、时间戳、持续时间)
- 暗黑/明亮模式切换
审查工作流(★ / ✓)
两个复选框支持快速审查流程:
- ★(标记):标记感兴趣的文件以便重新访问
- ✓(完成):标记已审查的文件
键盘导航:
- 使用 W/S 或 ↑/↓ 在复选框列内上下移动
- 使用 A/D 或 ←/→ 在 ★ 和 ✓ 之间移动
- 按下 空格 切换焦点复选框
- 快捷键:
过滤辅助:
- “仅显示 ★”以专注于标记项目
- “隐藏 ✓ 完成”以从视图中移除已审查项目
持久性:复选框状态保存在您浏览器的 localStorage 中,针对此报告。
要永久存储当前标记,请点击报告中的 保存 HTML(下载嵌入状态的副本)。
取消转义预览文本(实验性)
Snaffler 对预览内容中的换行符和其他字符进行转义,以便在终端中显示。
HTML 报告包含一个 Unescape 切换按钮,可将常见的转义序列(如 \n、\r\n、\t)转换为可读格式。
示例:

注意:取消转义也可能会更改原本未由 Snaffler 转义的字符串。请将其视为可读性辅助工具。
排序
输出始终按严重性分组(黑 → 红 → 黄 → 绿)。
在每个组内,您可以按以下方式排序:
-sort modified 文件修改日期(默认)
-sort keyword Snaffler 关键词
-sort unc 文件 UNC 路径
-sort rule Snaffler 规则名称
Explorer++ 集成
Explorer++ 是 Windows 的轻量级替代文件资源管理器,支持在不同的用户上下文中运行,包括 /netonly 开关。这在工作站或 VM 未加入域时的评估中特别有用。
SnafflerParser 的功能
使用 -pte 开关时,SnafflerParser 通过管理其 config.xml 文件直接与 Explorer++ 集成:
- 如果
config.xml 不存在则生成(便携模式)
- 确保 书签工具栏 已启用
- 移除先前生成的书签
- 为每个主机创建一个书签文件夹
- 将所有可访问的共享添加为对应主机下的书签
- 允许快速导航到共享,无需重复身份验证提示
用法
-
从以下位置下载 Explorer++
https://github.com/derceg/explorerplusplus
-
将 Explorer++.exe 放置在与 snafflerParser.ps1 相同的目录中
-
解析 Snaffler 输出并将共享导出到 Explorer++:
.\snafflerParser.ps1 -in snafflerout.txt -pte
-
在不同的用户上下文下启动 Explorer++:
runas /user:DOMAIN\user /netonly Explorer++.exe
-
使用书签工具栏快速浏览发现的共享。

为什么这很有用:
- 无需为每个共享单独进行身份验证
- 在未加入域的系统上运行良好
更新日志
2026-05-26
修复
- 修复了在解析较新版本 Snaffler (>=1.0.244) 的输出时,内容列不再为空的问题。较新版本的 Snaffler 在内容列之前添加了一个原始文件名字段(用于 SCCM 内容库文件)。解析器现在可以透明地处理旧格式(13 列)和新格式(14 列)。
- 修复了解析被中断的 Snaffler 作业(缺少结束时间戳/持续时间)的输出时不再崩溃的问题。
2026-01-04
改进
- 更快的解析、处理和报告生成(整体速度提升约 50%)
- 缩小了 HTML 报告的大小(减少约 60%)
- Explorer++ 集成:如果
Config.xml 不存在,则会生成。如果书签栏被禁用,则会启用。
- HTML 报告全面改进
- 对大型报告进行分页(对于包含超过 10 万个文件的报告,性能大幅提升)
- 新增过滤器:修改日期(基于年份的过滤)
- 改进的文件扩展名过滤
- 报告中直接提供暗黑/明亮模式切换
- 对长 UNC 路径进行适当的换行
- 将过滤结果导出为 CSV
- 使用本地存储持久化标记(★)和已审查(✓)状态
- 列可以显示/隐藏(设置按报告存储)
- 带关键词高亮的全文搜索
- 改进且更紧凑的过滤布局
- 带有附加功能(复制完整 UNC 路径/复制父文件夹路径)的操作栏
- 带有报告元数据和信息模态框的标题行
- 取消转义内容的按钮(实验性)
修复
- 添加了对非法 UNC 路径的检查(修复 issue #5)
- 分页应该修复 issue #4
移除
- 移除了
-lightmode 参数。
- 移除了
-unescape 参数。
2025-01-25
改进
2025-01-21
新增
- 自定义复选框以支持审查流程(功能请求 #3)
- 实验性取消转义功能
- 暗黑模式
改进
2025-01-17
修复
- Issue #2: 修复:打开或下载链接中的空格导致链接断开