Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
hashr — Создаёт форензические наборы хэшей файлов из образов дисков, пакетов и архивов в GCP, AWS и локальных источниках, с дедупликацией и экспортом в PostgreSQL/Spanner для рабочих процессов DFIR. | Kitploit
Инструменты/GitHubGitHub/google/hashr
Дисковая криминалистикаАнализ хэшейФорензикаЦифровая криминалистикаРеагирование на Инциденты
GitHubgoogle/hashr

hashr

Создаёт форензические наборы хэшей файлов из образов дисков, пакетов и архивов в GCP, AWS и локальных источниках, с дедупликацией и экспортом в PostgreSQL/Spanner для рабочих процессов DFIR.

Репозиторий
1309528 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

HashR: Generate your own set of hashes



Table of Contents

  • HashR: Generate your own set of hashes
    • Table of Contents
    • About
    • Requirements
    • Building HashR binary and running tests
    • Setting up HashR
      • HashR using docker
      • OS configuration & required 3rd party tooling
      • Setting up storage for processing tasks
        • Setting up PostgreSQL storage
        • Setting up Cloud Spanner
      • Setting up importers
        • GCP (Google Cloud Platform)
        • AWS (Amazon Web Services)
        • GCR (Google Container Registry)
        • Windows
        • WSUS
        • TarGz
        • Deb
        • RPM
        • Zip (and other zip-like formats)
        • ISO 9660
      • Setting up exporters
        • Setting up Postgres exporter
        • Setting up GCP exporter
      • Additional flags

About

HashR позволяет создавать собственные наборы хэшей на основе ваших источников данных. Это инструмент, который извлекает файлы и хэши из входных источников (например, сырой образ диска, образ диска GCE, ISO-файл, пакет обновления Windows, файл .tar.gz и т. д.).

HashR состоит из следующих компонентов:

  1. Importers, которые отвечают за копирование источника в локальное хранилище и выполнение необходимой предварительной обработки.
  2. Core, который занимается извлечением содержимого из источника с помощью image_export.py (Plaso), кэшированием и дедупликацией на уровне репозитория, а также подготовкой извлечённых файлов для экспортеров.
  3. Exporters, которые отвечают за экспорт файлов, метаданных и хэшей в заданные приёмники данных.

Реализованные в настоящее время импортеры:

  1. GCP, который извлекает файлы из базовых образов дисков GCP.
  2. Windows, который извлекает файлы из установочного носителя Windows в формате ISO-13346.
  3. WSUS, который извлекает файлы из пакетов обновления Windows.
  4. GCR, который извлекает файлы из образов контейнеров, хранящихся в Google Container Registry.
  5. TarGz, который извлекает файлы из архивов .tar.gz.
  6. Deb, который извлекает файлы из пакетов программного обеспечения Debian.
  7. RPM, который извлекает файлы из пакетов программного обеспечения RPM.
  8. Zip, который извлекает файлы из архивов .zip (и подобных zip).

После извлечения и хэширования файлов результаты передаются экспортерам. Реализованные в настоящее время экспортеры:

  1. PostgreSQL, который загружает данные в экземпляр PostgreSQL.
  2. Cloud Spanner, который загружает данные в экземпляр GCP Spanner.

Вы можете выбрать, какие импортеры запускать, у каждого из них разные требования. Подробнее об этом можно узнать в разделах ниже.

Requirements

HashR требует для работы ОС Linux; это может быть физическая, виртуальная или облачная машина. Ниже приведены оптимальные аппаратные требования:

  1. 8-16 ядер
  2. 128 ГБ памяти
  3. 2 ТБ быстрого локального хранилища (предпочтительно SSD)

HashR, вероятно, может работать на машинах с более низкими характеристиками, однако это не было тщательно протестировано.

Building HashR binary and running tests

Чтобы собрать бинарный файл hashr, выполните следующую команду:``` shell env GOOS=linux GOARCH=amd64 go build hashr.go

Чтобы запустить тесты для основного пакета hashR, вам необходимо запустить эмулятор Spanner:``` shell
gcloud emulators spanner start

Затем, чтобы запустить все тесты, выполните следующую команду:``` shell go test -timeout 2m ./...

## Setting up HashR

### HashR в инфраструктуре OSDFIR

Вы можете развернуть HashR в составе [проекта OSDFIR Infrastructure](https://github.com/google/osdfir-infrastructure/tree/main/charts/hashr)
Это развёртывание будет запускать HashR как kubernetes cronjobs и обеспечивает лёгкую
интеграцию с Timesketch.

### HashR с использованием docker

Чтобы запустить HashR в docker-контейнере, посетите [руководство по docker](https://github.com/google/hashr/blob/main/docker/README.md)

### Конфигурация ОС и необходимое стороннее ПО

HashR берёт на себя всю сложную работу (разбор образов дисков, томов, файловых систем) с помощью Plaso. Вам необходимо загрузить docker-контейнер Plaso с помощью следующей команды:``` shell
docker pull log2timeline/plaso

Нам также нужно, чтобы 7z, используемый импортером WSUS для рекурсивного извлечения пакетов Windows Update, был установлен на машине, где работает HashR:``` shell sudo apt install p7zip-full

Вам нужно разрешить пользователю, под которым будет запускаться HashR, выполнять определённые команды через sudo. Если ваш пользователь — `hashr`, создайте файл `/etc/sudoers.d/hashr` и поместите в него:``` shell
hashr ALL = (root) NOPASSWD: /bin/mount,/bin/umount,/sbin/losetup,/bin/rm

Пользователь, под которым будет работать HashR, также должен иметь возможность запускать docker. Предполагая, что ваш пользователь — hashr, добавьте его в группу docker следующим образом:``` shell sudo usermod -aG docker hashr

### Настройка хранилища для задач обработки

HashR необходимо хранить информацию об обработанных источниках. Также он хранит дополнительную телеметрию о задачах обработки: время обработки, количество извлечённых файлов и т.д. Вы можете выбрать один из вариантов:

1. PostgreSQL
1. Cloud (GCP) Spanner

#### Настройка хранилища PostgreSQL

Существует множество способов запуска и поддержки вашего экземпляра PostgreSQL, один из самых простых — запустить его в Docker-контейнере. Выполните следующие шаги, чтобы настроить Docker-контейнер PostgreSQL.

Шаг 1: Скачайте Docker-образ PostgreSQL.``` shell
docker pull postgres

Шаг 2: Инициализируйте и запустите контейнер PostgreSQL в фоновом режиме. Убедитесь, что вы изменили пароль.``` shell docker run -itd -e POSTGRES_DB=hashr -e POSTGRES_USER=hashr -e POSTGRES_PASSWORD=hashr -p 5432:5432 -v /data:/var/lib/postgresql/data --name hashr_postgresql postgres

Шаг 3: Создайте таблицу, которая будет использоваться для хранения заданий на обработку.``` shell
cat scripts/CreateJobsTable.sql | docker exec -i hashr_postgresql psql -U hashr -d hashr

Для использования PostgreSQL для хранения информации о задачах обработки необходимо указать следующие флаги: -storage postgres -postgres_host <host> -postgres_port <port> -postgres_user <user> -postgres_password <pass> -postgres_db <db_name>

Настройка Cloud Spanner

Вы можете выбрать хранение данных о заданиях обработки в Cloud Spanner. Для этого понадобится проект Google Cloud. Основное преимущество такой настройки в том, что вы можете легко создавать информационные панели (дашборды) с помощью Google Data Studio и напрямую подключаться к экземпляру Cloud Spanner, что позволяет отслеживать и отлаживать работу без выполнения запросов к вашему экземпляру PostgreSQL.

Предполагая, что ваш инструмент gcloud настроен на ваш целевой проект hashr GCP, вам нужно выполнить следующие шаги для включения Cloud Spanner.

Скачать инструмент