Парсер выходного файла Snaffler
Особенно в больших средах вывод Snaffler становится очень большим и требует много времени для анализа.
Этот скрипт обрабатывает выходной файл Snaffler (требуется формат TSV) и:
- Преобразует результаты в читаемые таблицы и экспортирует в TXT, CSV, HTML, JSON или PS Gridview.
- Создаёт интерактивный HTML-отчёт с:
- Фильтрацией (степень опасности, расширение, год изменения) и полнотекстовым поиском
- Динамической сортировкой
- Выделением ключевых слов в тексте предпросмотра
- Прямыми действиями (открыть родительскую папку, скачать файл, скопировать UNC, скопировать родительский UNC)
- Рабочим процессом рецензирования с сохранением состояния:
- ★ помечен (интересный)
- ✓ готово (просмотрено)
- Опциональным режимом unescape для улучшения читаемости предпросмотра (экспериментально)
- Постраничной навигацией для очень больших наборов данных
- Выбором столбцов (сохраняется для каждого отчёта)
- Экспортом текущего отфильтрованного представления в CSV
- Метаданными задания Snaffler (начало/конец/хост/пользователь/временные метки...)
- Сортирует вывод по степени опасности (Black/Red/Yellow/Green), затем по дате изменения (по умолчанию) или другому полю
- Экспортирует все обнаруженные общие ресурсы в текстовый файл
- Может экспортировать доступные общие ресурсы в виде закладок Explorer++
Демонстрация
Разбор выходного файла:

HTML-вывод:

TXT-вывод:

Предварительные условия и использование
Snaffler должен быть запущен с ключом -y, чтобы создать выходной файл в формате 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
Эти файлы могут быть разделены по степени опасности (black, red, yellow, green) с помощью ключа -split.
Дополнительно можно показать вывод в виде сетки PS с помощью -gridview.
HTML-отчёт
Возможности
- Постраничная навигация для больших отчётов
- Полнотекстовый поиск (UNC / правило / ключевое слово / содержание) с выделением
- Фильтры:
- Степень опасности (Black / Red / Yellow / Green)
- Год изменения
- Расширение файла (с поиском по расширению)
- Фильтры состояния: ★ только помеченные / скрыть ✓ готово
- Сортировка щелчком по заголовкам таблиц (группировка по степени опасности сохраняется, если не включена глобальная сортировка)
- Выделение ключевых слов в контенте предпросмотра
- Действия для каждой строки:
- Копировать полный путь UNC
- Копировать путь родительской папки UNC
- Открыть родительскую папку (
file://)
- Скачать файл (
file://)
- Выбор столбцов (сохраняется для каждого отчёта)
- Экспорт текущего отфильтрованного представления в CSV
- Заголовок отчёта с метаданными + модальное окно «Информация о задании» (входной файл, хост/пользователь, хэш, временные метки, длительность)
- Переключатель тёмного / светлого режима
Рабочий процесс рецензирования (★ / ✓)
Два флажка поддерживают быстрый процесс рецензирования:
- ★ (помечен): отметить интересные файлы для повторного просмотра
- ✓ (готово): отметить просмотренные файлы
Навигация с клавиатуры:
- Используйте W/S или ↑/↓ для перемещения вверх/вниз в столбце флажков
- Используйте A/D или ←/→ для перемещения между ★ и ✓
- Нажмите Пробел, чтобы переключить выбранный флажок
- Горячие клавиши:
1 переключает ★
2 переключает ✓
Вспомогательные фильтры:
- «Показать только ★» для фокуса на помеченных элементах
- «Скрыть ✓ готово» для удаления просмотренных элементов из представления
Сохранение состояния: состояние флажков сохраняется в localStorage вашего браузера для этого отчёта.
Чтобы постоянно сохранить текущие отметки, нажмите Сохранить HTML в отчёте (скачивается копия со встроенным состоянием).
Обратное экранирование текста предпросмотра (экспериментально)
Snaffler экранирует переносы строк и другие символы в контенте предпросмотра для отображения в терминале.
HTML-отчёт включает переключатель Unescape, который преобразует распространённые экранированные последовательности (например, \n, \r\n, \t) в читаемое форматирование.
Пример:

Примечание: Обратное экранирование также может изменить строки, которые изначально не были экранированы Snaffler. Рассматривайте это как средство повышения читаемости.
Сортировка
Вывод всегда сгруппирован по степени опасности (Black → Red → Yellow → Green).
Внутри каждой группы можно сортировать по:
-sort modified Дата изменения файла (по умолчанию)
-sort keyword Ключевое слово Snaffler
-sort unc Путь UNC файла
-sort rule Имя правила Snaffler
Интеграция с Explorer++
Explorer++ — это лёгкая альтернатива файловому проводнику для Windows, которая поддерживает работу в контексте другого пользователя, включая ключ /netonly. Это особенно полезно при оценках, когда рабочая станция или виртуальная машина не присоединены к домену.
Что делает SnafflerParser
При использовании ключа -pte SnafflerParser напрямую интегрируется с Explorer++, управляя его файлом config.xml:
- Создаёт
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-отчёта
- Постраничная навигация для больших отчётов (значительное улучшение производительности для отчётов с >100 тыс. файлов)
- Дополнительные фильтры: дата изменения (фильтрация по году)
- Улучшена фильтрация расширений файлов
- Переключатель тёмного/светлого режима прямо в отчёте
- Корректный перенос строк для длинных путей UNC
- Экспорт отфильтрованных результатов в CSV
- Сохранение состояний помеченных (★) и просмотренных (✓) с использованием локального хранилища
- Столбцы можно показывать/скрывать (настройки сохраняются для каждого отчёта)
- Полнотекстовый поиск с выделением ключевых слов
- Улучшенный и более компактный макет фильтров
- Панель действий с дополнительными функциями (копировать полный путь UNC / копировать путь родительской папки)
- Строка заголовка с метаданными отчёта и информационным модальным окном
- Кнопка для обратного экранирования содержимого (экспериментально)
Исправлено
- Добавлены проверки недопустимых путей UNC (исправляет проблему #5)
- Постраничная навигация должна исправить проблему #4
Удалено
- Удалён параметр
-lightmode.
- Удалён параметр
-unescape.
2025-01-25
Улучшено
- Незначительное повышение производительности
- Скорректированы сообщения о состоянии
2025-01-21
Новое
- Пользовательские флажки для поддержки процесса рецензирования (запрос функции #3)
- Экспериментальная функция обратного экранирования
- Тёмный режим
Улучшено
- Общие улучшения HTML-отчёта
2025-01-17
Исправлено
- Проблема #2: Исправлено: пробелы, ломающие ссылки для открытия или скачивания