Hashrat

'

Описание Hashrat

Инструмент хеширования с поддержкой md5, sha1, sha256, sha512, whirlpool, jh и их hmac версии. Имеет функцию рекурсивного хеширования файлов и другие возможности.

Домашняя страница: https://github.com/ColumPaget/Hashrat

Автор: Colum Paget

Лицензия: GPLv3

Справка по Hashrat

Использование:

    hashrat [опции] [пути]...


		Вычисление хешей:            hashrat [опции] [пути для хеширования]
		Проверка хешей:              hashrat -c [опции] [пути для хеширования]
		Поиск совпадающих файлов:    hashrat -m [опции] [пути для хеширования]
		Поиск файлов-дубликатов:	 hashrat -dups [опции] [пути для хеширования]

Опции:

  --help          Напечатать справку
  -help           Напечатать справку
  -?              Напечатать справку
  --version       Напечатать версию программы
  -version        Напечатать версию программы
  -md5            Использовать алгоритм хеша md5
  -sha1           Использовать алгоритм хеша sha1
  -sha256         Использовать алгоритм хеша sha256
  -sha512         Использовать алгоритм хеша sha512
  -whirl          Использовать алгоритм хеша whirlpool
  -whirlpool      Использовать алгоритм хеша whirlpool
  -jh224          Использовать алгоритм хеша jh-224
  -jh256          Использовать алгоритм хеша jh-256
  -jh384          Использовать алгоритм хеша jh-384
  -jh512          Использовать алгоритм хеша jh-512
  -hmac           HMAC используя указанный хеш алгоритм
  -8              Кодировать в восьмеричной системе, вместо шестнадцатеричной
  -10             Кодировать в десятичной системе, вместо шестнадцатеричной
  -H              Кодировать ЗАГЛАВНЫМИ шестнадцатеричными буквами
  -HEX            Кодировать ЗАГЛАВНЫМИ шестнадцатеричными буквами
  -64             Кодировать в base64 вместо шестнадцатеричного формата
  -base64         Кодировать в base64 вместо шестнадцатеричного формата
  -i64            Кодировать в base64 с переназначенными символами
  -p64            Кодировать в base64 с a-z,A-Z and _-, для лучшей совместимости с  'разрешёнными символами' на веб-сайтах.
  -x64            Кодировать в base64 в стиле XXencode.
  -u64            Кодировать в base64 в стиле UUencode.
  -g64            Кодировать в base64 в стиле GEDCOM.
  -a85            Кодировать в ASCII85.
  -z85            Кодировать в ZEROMQ вариант ASCII85.
  -t              Выводить хеши в традиционном md5sum, shaXsum формате
  -trad           Выводить хеши в традиционном md5sum, shaXsum формате
  -bsd            Выводить хеши в формате bsdsum
  -tag            Выводить хеши в формате bsdsum
  --tag           Выводить хеши в формате bsdsum
  -r              Рекурсия в директориях при хешировании файлов
  -f <listfile>   Сохранять хеши файлов в файле <listfile>
  -i <шаблон>   Только те хеши, которые соответствуют разделённому запятой списку shell шаблонов
  -x <шаблон>   Исключать  те хеши, которые соответствуют разделённому запятой списку shell шаблонов
  -n <длина>     Обрезать хеши до <длины> байтов
  -c              ПРОВЕРЯТЬ хеши по списку из файла (или stdin — стандартного ввода)
  -cf             ПРОВЕРЯТЬ хеши по списку, но показывать только сбои
  -C <директория>        Рекурсивно ПРОВЕРЯТЬ директорию по списку файлов на stdin 
  -Cf <директория>       Рекурсивно ПРОВЕРЯТЬ директорию по списку файлов, но показывать только сбои
  -m              СОПОСТАВЛЕНИЕ файлов из списка, считанного из stdin.
  -lm             Читать хеши из stdin, выгружать их на memcached сервер (требует опцию -memcached).
  -X              В режиме ПРОВЕРКА или СОВПАДЕНИЕ исследовать только исполнимые файлы.
  -exec           В режиме ПРОВЕРКА или СОВПАДЕНИЕ исследовать только исполнимые файлы.
  -dups           Поиск файлов-дубликатов.
  -memcached <сервер> Указать memcached сервер. (Переписывает чтение из списка из stdin если используется с -m, -c или -cf).
  -mcd <сервер>   Указать memcached сервер. (Переписывает чтение из списка из stdin если используется с -m, -c или -cf).
  -h <скрипт>     Скрипт для запуска, когда сбой файла в режиме ПРОВЕРКА, или когда найден в режиме СОВПАДЕНИЕ.
  -hook <скрипт>  Скрипт для запуска, когда сбой файла в режиме ПРОВЕРКА, или когда найден в режиме ПОИСК.
  -color          Использовать ANSI цветовые коды в выводе когда проверяются хеши.
  -strict         Строгий режим: при проверке, вместе с хешем проверять временные метки, владельца, группу и inode файла
  -S              Строгий режим: при проверке, вместе с хешем проверять временные метки, владельца, группу и inode файла
  -d              Сследовать по символическим ссылкам
  -fs             Оставаться на одной файловой системе
  -dir            Режим директории: Читать все файлы в директории и создать для них один хеш!
  -dirmode        Режим директории: Читать все файлы в директории и создать для них один хеш!
  -devmode        DevMode: читать из файла ДАЖЕ ЕСЛИ ЭТО DEVNODE
  -lines          Читать строки из stdin и независимо хешировать каждую строку.
  -rawlines       Читать строки из stdin и независимо хешировать каждую строку, ВКЛЮЧАЯ любые конечные белые пробелы. (Это аналогия 'echo text | md5sum')
  -rl             Читать строки из stdin и независимо хешировать каждую строку, ВКЛЮЧАЯ любые конечные белые пробелы. (Это аналогия 'echo text | md5sum')
  -cgi            Запуск в режиме HTTP CGI
  -net            Рассматривать аргументы 'файл' как ssh или http адреса (URL) и получать файлы по сети и затем хешировать их (Позволяет хешировать файлы на удалённых машинах).
                  URL в формате ssh://[имяпользователя]:[пароль]@[хост]:[порт] или http://[имяпользователя]:[пароль]@[хост]:[порт]..
  -idfile <путь>  Путь до приватного ключа ssh для использования в аутентификации ВМЕСТО ПАРОЛЯ, когда скачиваются файлы по ssh.
  -xattr          Использовать расширенные файловые атрибуты.  В режиме хеширования, сохранять хеши в атрибутах файлов, в режиме проверки сравнивать хранимые в атрибутах файлов хеши.
  -txattr         Использовать доверенные расширенные файловые атрибуты. В режиме хеширования, хранить хеши в 'доверенных' файловых атрибутов. 'доверенные' атрибуты могут считываться и записываться только рутом. В freebsd это означает SYSTEM атрибуты.
  -attrs          разделённый запятой список имён атрибутов файловой системы для установки значения хеша.
  -cache          Использовать хеши хранимые в 'пользовательских' расширенных атрибутах, если они моложе, чем mtime файла. Это ускоряет вывод хешей.
  -u <типы>      Обновление. В режиме проверки, обновить хеши для файлов, которые вы обходите. <типы> это разделённый запятой список того, что нужно обновить, это может быть 'xattr' 'memcached' или имя файла. Это обновит эти цели хешем, который был найден во время проверки.
  -hide-input     Когда считываются данные из stdin в режиме строки, настроить терминал не печатать символы, таким образом скрывая введенный ввод.
  -star-input     Когда считываются данные из stdin в режиме строки заменять символы на звёздочки.
  -xsel           Обновить буфер обмена X11 и первичные выделения на текущий хеш. Это работает с использованием последовательности команд Xterm. Чтобы это работало, в xterm 'allowWindowOps' должна быть установлена на 'true'.

Hookscripts (скрипты, запускаемые в связи с определённым событием)

Хукскриптам в качестве аргумента передаётся путь соответствующего файла. В режиме «поиск дубликатов» передаётся второй аргумент, которым является файл-дубликат.

Hashrat также может выявить, что его запустили под следующими именами (т. е. через симлинки):

  md5sum          запускает программу с опциями '-trad -md5'
  shasum          запускает программу с опциями '-trad -sha1'
  sha1sum         запускает программу с опциями '-trad -sha1'
  sha256sum       запускает программу с опциями '-trad -sha256'
  sha512sum       запускает программу с опциями '-trad -sha512'
  jh224sum        запускает программу с опциями '-trad -jh224'
  jh256sum        запускает программу с опциями '-trad -jh256'
  jh384sum        запускает программу с опциями '-trad -jh384'
  jh512sum        запускает программу с опциями '-trad -jh512'
  whirlpoolsum    запускает программу с опциями '-trad -whirl'
  hashrat.cgi     запускает в 'cgi режиме' с поддержкой веб

Руководство по Hashrat

СИНОПСИС:

Hashrat — это утилита генерации хешей, которая поддерживает хеш функции md5, sha1, sha256, sha512, whirlpool, jh-244, jh256, jh-384 and jh-512, а также HMAC версии этих функций. Она может выводить в «традиционном» формате (как md5sum и shaXsum и подобные) или в своём собственном формате. Хеши могут выводится в восьмеричном, десятичном, шестнадцатеричном виде, с использованием заглавных шестнадцатеричных букв или в кодировке base64. Она поддерживает рекурсию директорий, хеширование целых устройств генерирование хеша целой директории. Программа имеет режим «CGI», который может использоваться как веб-страница для поиска хешей.

ВАРИАНТЫ ИСПОЛЬЗОВАНИЯ HASHRAT

1) Надёжные пароли

Можно использовать hashrat для генерации надёжных паролей для веб-сайтов. Если у вас всегда имеется доступ к hashrat, не нужно помнить надёжные пароли, поскольку их всегда можно регенерировать с помощью hashrat. Итак, идея заключается в том, что нужно запомнить несколько достойных паролей (например, вещи, которые не получается найти с помощью grep в «списке популярных паролей в 10 и более символов», и также придумайте «персональный пин». Затем скомбинируйте имя веб-сайта, один из своих паролей и персональный пин в одну строку и скормите её hashrat:

echo "facebook.com пароль 1234" | hashrat -sha1 -64

Очевидной, что пароль это не слово «пароль» и пин это не «1234» — но идею, думаю, вы уловили. Это даёт 28-символьную строку из букв и цифр, которую никогда не удастся подобрать методом перебора. Это можно использовать в качестве пароля. К сожалению, некоторые веб-сайты не принимают 28-символьный пароль, для них нужно обрезать до соответствующей длины (используя флаг -n), но результат всё равно надёжнее, чем что-либо, что можно удержать в памяти. К тому же, ничего не надо хранить на диске (как с менеджером паролей).

Имеется несколько опасностей использования метода «echo» как это показано выше если вы за машиной с общим доступом или если кто-то завладеет вашим компьютером/диском для хранения данных. На машинах с совместным доступом кто-то может набрать 'ps ax' чтобы увидеть работающие команды и если это будет сделано в правильное время, они могут увидеть вашу строку команды с вашим паролем в ней. Другая опасность лежит в использовании оболочки (вроде bash), которая запишет введённую вами команду, чтобы вы позже могли вызвать её повторно. Bash хранит эту информацию на диске в файле .bash_history, поэтому если вы используете метод 'echo' как показано выше, ваш пароль будет сохранён на диск. Для борьбы с этим hashrat имеет «режим строки».

hashrat -sha1 -64 -lines

Это приводит к чтению из стандартного ввода, т. е. печатайте в hashrat и затем нажмите «enter» и вам будет дан хеш строки, которую вы набрали. По этому методу ваш пароль не отображается ни в «ps ax» и никогда не хранится на диске.

«-lines» воспроизведёт отличный хеш от показанного выше метода «echo», поскольку флаг отбрасывает любые конечные белые пробелы от считываемых строк. Если вы хотите строгую совместимость с «echo» (по умолчанию echo добавляет «newline» (невидимый символ новой строки) к концу текста для вывода), то используйте режим «rawlines»:

hashrat -sha1 -64 -rawlines

Наконец, вы можете не дать соглядатаем подсмотреть вводимый вами пароль через плечо, используя опции «-hide-input» или «-star-input» чтобы спрятать что вы печатаете.

2) Отслеживание изменений файлов

Как md5sum/shaXsum и т. п. hashrat может использоваться для выявления изменений в файлах, что может сигнализировать о наличии в вашей системе вредоносной активности. Например, чтобы получить раннее предупреждение о вредоносном программном обеспечении вроде 'cryptolocker' (который шифрует файлы на диске пользователя, или на общих сетевых папках, а затем вымогает выкуп для восстановления файлов), можно разбросать по диску ряд «канареечных файлов», которые не должны меняться. Запишите их хеши и регулярно проверяйте их. Если они изменились, это означает, что что-то происходит.

Генерированные с помощью hashrat хеши могут быть выведены в файл, или сохранены в расширенных атрибутах, или на memcached сервере.

hashrat -sha256 -r . > /tmp/files.sha256
hashrat -sha256 -r . -xattr
hashrat -sha256 -r . -memcached

Аналогично это может использоваться для последующих проверок файлов:

cat /tmp/files.sha256 | hashrat -c -sha256
cat /tmp/files.sha256 | hashrat -sha256 -C /tmp
hashrat -C -sha256 -xattr
hashrat -C -sha256 -memcached

Hashrat имеет четыре опции «проверки»:

  • -c проверка из списка
  • -cf проверка из списка и показ только сбоев
  • -C проверка директории
  • -Cf проверка директории и показ только сбоев

-c формы только проверяет файлы, перечисленные в стандартном вводе. -C формы считывает список файлов из стандартного ввода, но ожидается получение директории для проверки, в этой директории проверяется каждый файл, вывод содержит список только тех файлов, которые отсутствовали в списке, либо есть в списке, но отсутствуют на диске, либо они были изменены. Таким образом, -C формы позволяют выявлять новые файлы, изменённые файлы и удалённые файлы, в то время как -c форма только выявляет изменённые и удалённые файлы. Обе формы -c и -C работают как -C если хеши предоставляются через memcached или атрибуты файловой системы (используя -xattr или -memcached).

Помните, что -C подразумевает -r, поэтому вам необязательно указывать -r.

3) Поиск файлов, которые соответствуют хешам.

Используя флаг -m можно сказать hashrat считать диапазон хешей из стандартного ввода и затем искать файлы, соответствующие этим хешам. Например:

cat APT1-AppendixE-MD5s.txt | hashrat -r -m /usr

Будет сделан рекурсивный поиск в /usr файлов, чьи хеши совпадают с перечисленными в файле APT1-AppendixE-MD5s.txt. Ввод в input должен начинаться с хеша, всё, что записано после хеша будет трактоваться как комментарий, который нужно отобразить, если соответствующий хешу файл был найден.

Типы хешей, отличные от md5, могут использоваться следующим образом:

cat sha1-list.lst | hashrat -r -sha1 -m /usr

Файл ввода может быть в формате hashrat, «традиционном» формате программ md5sum/shaXsum, формате bsdsum или может быть файлом Open IOC из которого будут извлечены любые хеши.

Хеши также могут быть загружены на memcached сервер, чтобы один и тот же список файлов мог быть проверен на ряде машин без необходимости сохранять список хешей на тех машинах. Начинаем с загрузки хешей:

cat APT1-AppendixE-MD5s.txt | hashrat -lm -memcached 192.168.1.5

Эта команда загружает хеши на сервер memcached по адресу 192.168.1.5. Затем мы можем выполнять поиск на memcached сервере:

hashrat -r -m -memcached 192.168.1.5 /usr

4) Поиск файлов-дубликатов

Используя флаг -dup (обычно в комбинации с рекурсивным '-r' флагом) можно настроить hashrat искать файлы-дубликаты и выводить находки в stdout.

5) Режим CGI

Если запустить hashrat с флагом -cgi, или если программа запущена по имени 'hashrat.cgi' (если был переименован исполнимый файл 'hashrat', либо через символическую ссылку), она будет выводить веб-страницу, которая позволяет пользователю видеть хеши через веб. Это позволит видеть ваши надёжные пароли (смотрите первый пример использования) даже если у вас нет доступа к локальной версии hashrat.

6) В качестве 'ls'

Hashrat выводит имя файла, тип, режим, временные метки, uid, gid и размер, а также хеш. Это позволяет использовать её в в качестве 'ls' программами в стиле ftp, для отображения всех подробностей о файле с дополнительной функцией — показ хеша.

7) Хеширование файлов на удалённой машине

Если запустить с опцией '-net', hashrat будет по-другому обрабатывать пути, начинающиеся с 'http://' или 'ssh://', будет подключаться к целевой машине и загружать файлы (подразумевается, что на удалённой машине нет программы хеширования, и поэму нужно их загрузить, чтобы рассчитать хеш). Для ssh путей поддерживаются подстановочные символы:

hashrat -net ssh://username:password@server/usr/bin/*

РАСШИРЕННЫЕ АТРИБУТЫ ФАЙЛОВОЙ СИСТЕМЫ (XATTR)

Hashrat может использовать расширенные атрибуты файловой системы, если они поддерживаются самой системой. Это позволяет хранить хеш в метаданных файловой системы целевого файла. Это можно использовать для последующей проверки хешей или для кэширования хешей для получения более быстрого вывода во время хеширования. Имеется два типа атрибутов файловой системы, «доверенные» атрибуты, которые может установить и прочесть только root, и «пользовательские» атрибуты, которые могут быть установлены и прочтены любым пользователем, который имеет соответствующие разрешения на файл.

Хеши могут быть сохранены по файлам при использовании опции -xattr, для установи «пользовательских» атрибутов:

hashrat -sha256 -r . -xattr

… а при использовании флага '-txattr', устанавливаются доверенные атрибуты (вы должны быть рутом для установки доверенных атрибутов):

sudo hashrat -sha256 -r . -txattr

При проверке можно использовать любой флаг, но hashrat всегда будет использовать «доверенные» атрибуты, когда запущена от рута, т. е. если они доступны; в противном случае, будет сделан откат до «пользовательских» атрибутов.

hashrat -c -sha256 -r . -xattr

Опция -cache позволяет использовать сохранённые хеши, а не регенерировать хеши. В настоящее время она учитывает только «пользовательские» атрибуты:

hashrat -r . -cache

Это значительно ускоряет процесс хеширования, но появляется риск, что хеши могут быть неточными. Hashrat будет выводить только хеши, хранимые в файловых атрибутах если время сохранения хеша моложе, чем время модификации (mtime) файла, тем не менее, это означает, что атакующий мог изменить время модификации файла для сокрытия сделанных им изменений. Следовательно, эта возможность не должна использоваться в целях проверки безопасности (но это должно быть безопасно для, например, использования вроде поиска файлов, которые были изменены и нуждаются в резервном копировании).

Опция '-u' позволяет обновить атрибуты файловой системы по мере выполнения проверок (в режиме проверки -xattr означает 'читай из xattr', поэтому нам нужен флаг '-u' (обновление), чтобы сказать hashrat также обновить хранимые хеши любых файлов, чьи хеши были изменены).

hashrat -c -r . -xattr -u xattr

Примеры запуска Hashrat

Вычислить md5 хеш данных, читаемых из стандартного ввода (stdin) (хешем по умолчанию является md5).

hashrat

Вычислить jh-256 хеш данных, считываемых из стандартного ввода (stdin):

hashrat -jh256

Вычислить sha-256 хеш данных, считываемых со стандартного ввода (stdin), вывести хеш в кодировке base64:

hashrat -sha256 -64

Считать строки со стандартного ввода (stdin) и сгенерировать sha-256 в кодировке base64 ДЛЯ КАЖДОЙ СТРОКИ. Разбитие происходит по любым белым пробелам от конца строки (включая разделители линий \r и/или \n).

hashrat -sha256 -64 -lines

Считать строки из стандартного ввода и сгенерировать md5 хеш в «традиционном» формате для каждой строки ВКЛЮЧАЯ КОНЕЧНЫЕ БЕЛЫЕ ПРОБЕЛЫ. Это аналогично 'echo text | md5sum', где 'text' — это первая строка, а echo добавляет добавляет в конце вывода символ новой строки (newline):

hashrat -md5 -trad -rawlines

Считать данные из стандартного ввода, посчитать хеш sha256, затем хешировать полученный хеш с whirlpool, а затем с md5:

hashrat -type sha256,whirl,md5

Внимание: возможно, эта функция работает не так, как вы ожидаете, подробности в тикете «Unexpected result while hashing multiple times».

Считает список хешей для файлов в текущей директории (по умолчанию типом хеша является md5):

hashrat *

Генерирует список хешей для файлов в текущей директории. И ВСЕХ ПОДДИРЕКТОРИЯХ, используя sha1 хеширование:

hashrat -r -sha1 * > hashes.sha1

Проверка хешей перечисленных в 'hashes.sha1'

cat hashes.sha1 > hashrat -c

Проверка хешей перечисленных в 'hashes.sha1'. Если хеши НЕ в «традиционном» формате, тогда флаг '-strict' сделает так, что hashrat будет проверять uid, gid, размер, временные метки и индексный дескриптор файлов и выводить сообщения ошибок, если что-либо из этого не соответствует:

cat hashes.sha1 > hashrat -c -strict

Проверка хешей перечисленных в 'hashes.sha1', но выводятся только сбои:

cat hashes.sha1 > hashrat -cf

Чтение списка хешей из стандартного ввода и рекурсивный поиск соответствующих им файлов:

cat APT1.md5 | hashrat -m -r /

Чтение списка хешей из стандартного ввода и регистрация их на memcached сервере для дальнейшего использования в поиске/проверке:

cat APT1.md5 | hashrat -lm -memcached 127.0.0.1

Извлечение хешей из файла Open IOC и регистрация их на memcached сервере для дальнейшего использования в поиске/проверке.

cat APT1.ioc | hashrat -lm -memcached 127.0.0.1

Рекурсивный поиск файлов, чьи хеши сохранены на memcached сервере:

hashrat -m -memcached 127.0.0.1 -r /

Генерировать whirlpool хеш всего устройства /dev/sda1. Вывести результат в кодировке base64:

hashrat -devmode -whirlpool -64 /dev/sda1

Генерировать sha1 хеши файлов в /bin/* на удалённой машине 'myhost':

hashrat -sha1 -net ssh:user:password@myhost/bin/*

Рассчитать хеш whirlpool для указанного URL. (Помните, многие веб-страницы имеют динамический контент, который меняется каждый раз, поэтому каждый раз будет возвращаться одинаковый хеш только если страница является статичной и не меняется:

hashrat -whirlpool -net http://myhost.com/webpage.html

Поиск дубликатов файлов в /home. Обновление хешей, хранимых в атрибутах файловой системы.

hashrat -dups -r /home -u xattr

Установка Hashrat

Установка в Kali Linux

sudo apt install hashrat

Установка в BlackArch

git clone https://github.com/ColumPaget/Hashrat
cd Hashrat/
./configure --enable-largefiles --enable-xattr
make
sudo make install

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты Hashrat

Инструкции по Hashrat

Ссылки на инструкции будут добавлены позже.

Близкие программы:

  • omnihash (100%)
  • Hasher (Hashes) (100%)
  • hashdeep (100%)
  • hashID (68.2%)
  • HashTag (68.2%)
  • CrackLord (RANDOM - 50%)
  • Рекомендуемые статьи:

    Comments are Closed