
Инструмент криминалистического анализа браузера для Google Chrome, других браузеров на базе Chromium и Mozilla Firefox
HindsightКриминалистический анализ истории интернета для Google Chrome/Chromium и Mozilla Firefox
Hindsight — это бесплатный инструмент для анализа веб-артефактов. Он начинался с истории просмотров веб-браузера Google Chrome, затем был расширен для поддержки других приложений на базе Chromium, а теперь также разбирает профили Mozilla Firefox. Hindsight может разбирать множество различных типов веб-артефактов, включая URL-адреса, историю загрузок, записи кэша, закладки, записи автозаполнения, сохранённые пароли, настройки, расширения браузера, HTTP-cookie и записи Local Storage (cookie HTML5). После извлечения данных из каждого файла они сопоставляются с данными из других файлов истории и помещаются на временную шкалу.
Для профилей Firefox Hindsight разбирает places.sqlite (посещения истории, закладки и загрузки), cookies.sqlite и formhistory.sqlite. Выберите "Firefox" в графическом интерфейсе или передайте -b Firefox в командной строке, указав на каталог профиля, например \[userdir]\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>.
У него простой веб-интерфейс — чтобы запустить его, выполните "hindsight_gui.py" (или в Windows — упакованный "hindsight_gui.exe") и откройте http://localhost:8080 в браузере:
Единственное обязательное поле — "Profile Path". Это расположение профиля Chrome, который вы хотите проанализировать (пути профилей по умолчанию для разных ОС перечислены внизу этой страницы). Нажмите "Run", и вы попадёте на страницу результатов, где можно сохранить результаты в электронную таблицу (или другие форматы).
Чтобы установить Hindsight (как инструмент командной строки, так и веб-интерфейс), выполните:
pip install pyhindsight
pip install git+https://github.com/cclgroupltd/ccl_chromium_reader.git
Если вы хотите использовать функцию "View SQLite DB in Browser" в веб-интерфейсе Hindsight, вам нужно выполнить ещё одну команду установки:
curl -sSL https://raw.githubusercontent.com/RyanDFIR/hindsight/main/install-js.sh | sh
Существует также версия Hindsight для командной строки — hindsight.py или hindsight.exe. Руководство пользователя в папке documentation охватывает многие темы, но приведённая ниже информация поможет вам начать работу с версией для командной строки:
Пример использования: > C:\hindsight.py -i "C:\Users\Ryan\AppData\Local\Google\Chrome\User Data\Default" -o test_case
Параметры командной строки:
| Параметр | Описание |
|---|---|
| -i или --input | Путь к профилю браузера или родительскому каталогу для рекурсивного поиска профилей |
| -o или --output | Имя выходного файла (без расширения) |
| -f или --format | Формат вывода (по умолчанию XLSX, другие варианты — SQLite и JSONL) |
| -c или --cache | Путь к каталогу кэша; нужен только если каталог находится вне указанного каталога "input". В системах Mac это настроено так по умолчанию. |
| -b или --browser_type | Принудительно использовать один браузер для всех профилей: Chrome, Edge, Brave, Vivaldi, Firefox или Tor (без учёта регистра; Chromium — это псевдоним для Chrome). Не указывайте, чтобы автоматически определять каждый профиль. |
| -l или --log | Расположение, куда Hindsight должен записывать журнал (будет дополняться, если существует) |
| --log-level | Сколько деталей записывать в журнал: debug, info (по умолчанию), warning или error. Используйте debug при сообщении об ошибке |
| -h или --help | Показывает эти параметры и расположения данных Chrome по умолчанию |
| -t или --timezone | Часовой пояс отображения для временных меток в выводе XLSX |
| --only или --artifacts | Разбирать только эти артефакты (через запятую; можно повторять) |
| --skip или --exclude | Разбирать всё, кроме этих артефактов (через запятую; можно повторять) |
| --list-artifacts | Вывести имена артефактов, принимаемые --only и --skip, затем выйти |
Когда входные данные содержат профили из нескольких браузеров, не указывайте --browser_type, чтобы
Hindsight определил каждый профиль отдельно. Используйте переопределение только тогда, когда вы намерены
обрабатывать каждый обнаруженный профиль как указанный браузер.
По умолчанию Hindsight разбирает каждый найденный артефакт. --only и --skip сужают этот
набор, что полезно для быстрой триажной сортировки и для пропуска кэша, когда он большой и
не относится к рассматриваемому вопросу.
hindsight.py -i <profile> --only history,downloads
hindsight.py -i <profile> --skip cache
hindsight.py -i <profile> --only user-activity --skip sessions
Имена артефактов не зависят от браузера: history выбирает записи URL из History в Chrome и
записи URL из places.sqlite в Firefox, поэтому одна и та же команда работает в обоих случаях. Имена
нечувствительны к регистру, а пробелы, подчёркивания и дефисы взаимозаменяемы
(local-storage, local_storage и "Local Storage" — одно и то же имя).
Имена групп можно использовать везде, где можно использовать имя артефакта, и они выбирают всё, что под ними:
user-activity, website-storage, browser-extensions, configuration, а также caches
(все артефакты кэша) и all. --only и --skip можно комбинировать, при этом --skip
дополнительно сужает --only.
Выполните hindsight.py --list-artifacts, чтобы получить полный список с описаниями и псевдонимами.
Артефакт, исключённый фильтром, во время выполнения отображается как [ skipped ] и отмечается в
журнале, поэтому отчёт, в котором отсутствует артефакт, остаётся отличимым от профиля, в котором
его никогда не было. Нераспознанное имя является ошибкой, а не игнорируется, поэтому опечатка не может
тихо привести к отчёту, охватывающему не те артефакты.
Обратите внимание, что определение версии всё равно читает схемы баз данных профиля, поэтому фильтрация не меняет определённую версию браузера.
Расположения папки профиля Chrome по умолчанию:
Пожалуйста, создайте issue, если у вас есть идея новой функции (или вы обнаружили что-то сломанное).
См. CONTRIBUTING.md, чтобы узнать, как настроить, запустить оба набора тестов и получить корпус профилей браузеров, который разбирают сквозные тесты.