как узнать тип хеша

Как определить тип хеша по содержимому строки

Для проверки подлинности файлов очень часто используется такая функция как хеширование. Хеш или иначе контрольная сумма представляет собой короткую строку, состоящую из цифр и английских букв. Алгоритмы хеширования настолько точны, что даже самое незначительное изменение входных данных файла приведёт к изменению контрольной суммы, что позволяет использовать их для контроля целостности системных файлов и важных документов.

Как быть в этом случае и можно ли определить алгоритм контрольной суммы по самой контрольной сумме?

Да, такое вполне возможно. Определить тип хеша можно с помощью специальных утилит и сервисов. Самый простой способ — воспользоваться услугами ресурса Online Hash Crack, предназначенного для кодирования и декодирования информации. Заходим на страничку идентификации хешей www.onlinehashcrack.com/hash-identification.php, вводим в поле «Enter a hash to identify» строку хеша и жмём «Submit».

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

В качестве альтернативы можно предложить утилиту Madleets Hash Identifier, также способную определять тип контрольной суммы. Утилита не нуждается в установке, принципом работы схожа с сервисом Online Hash Crack. Вставляем в поле строку хеша, жмём кнопку «Identifi Hash» и получаем результат.

Сегодня Hash Identifier считается устаревшей, кроме того, по данным VirusTotal 6 из 67 антивирусов идентифицируют утилиту как содержащую троян.

К счастью, у Madleets Hash Identifier есть безопасный продвинутый аналог — бесплатная консольная тулза hashID, но для ее работы на компьютер нужно будет установить пакет Python . Загрузить её можно с официальной странички psypanda.github.io/hashID.

Работает она следующим образом.

Вариантов hashID выдаёт несколько, среди которых наиболее соответствующими действительности следует считать первые два-три.

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как определить тип хеша

В статье «Хеши: определение типа, подсчёт контрольных сумм, нестандартные и итерированные хеши» мы уже знакомились с такими утилитами как hashID и HashTag, которые по строке хеша определяют, по какому алгоритму он был вычислен.

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

Прямо сейчас, на момент написания, активно развиваются две новые программы для идентификации типов хешей. Они поддерживают больше алгоритмов хеширования и просто во всём лучше старых инструментов. Данная статья посвящена знакомству с новыми инструментами по идентификации типа хеша.

Зачем нужны новые инструменты идентификации типа хеша?

hashID не поддерживается с марта 2015 года, hash-identifier не поддерживается с 2011 года, Dagon с июня 2018 года и findmyhash с 2011 года. Все они не имеют вовсе, или имеют неправильную, ошибочную поддержку современных хешей, таких как Keccak/SHA3/Blake2 и т. д. Также такой инструмент, как hash-identifier, который является полностью интерактивным, не имеет параметров и не удобен для использования в скриптах. findmyhash имеет очень ограниченный набор обнаруживаемых хешей. Самый интересный инструмент — hashID (для идентификации хеша), но, поскольку он не поддерживается более 5 лет, проблемы и открытые PR (Pull Request — запросы на внесение изменения в исходный код) накапливаются, ошибки не исправляются, а некоторые функции отсутствуют.

Это всё могло побудить авторов создать новые инструменты с возможностями отсутствующими в предшественниках.

Посмотрим на сравнительную таблицу инструментов по определению типа хеша:

126

17

Образцы хешей

Если вам нужны образцы хешей для поверки инструментов, то смотрите раздел «Где посмотреть примеры хешей».

Я отобрал несколько хешей для анализа:

Хеши необходимо заключать в одинарные кавычки!

Хеши могу включать в себя специальные символы, которые имеют для оболочки специальное значение. Особенно это важно если вы работаете в Linux. Если вы не будете это учитывать, то программа по определению типа хеша хоть и не сообщит об ошибке, но получит строку отличную от той, которую вы думали что ввели.

Причём даже в двойных кавычках оболочка трактует некоторые символы как специальные. Поэтому чтобы не экранировать их, поместите весь хеш в одинарные кавычки.

Необязательно помещать в кавычки хеши, состоящие только из букв и цифр, но я предпочитаю все хеши передавать в одинарных кавычках.

HAITI

HAITI (HAsh IdenTifIer) — это инструмент командной строки (и библиотека) для идентификации типа заданного хеша. Библиотека особенно хороша для написания скриптов, поскольку не нужно заключать инструмент командной строки в подпроцесс.

Полный список опций программы и инструкции по установке вы найдёте в карточке программы: https://kali.tools/?p=6638

Использование программы очень простое — укажите ваш хеш после имени программы:

Причём ОПЦИИ являются необязательными, поведение программы по умолчанию очень сбалансированной и в большинстве случаев вам не захочется менять его какими-либо дополнительными параметрами.

Среди вывода есть и правильный ответ: SHA3-512

В выводе HC — это сокращение для Hashcat, а последующие цифры (например, 1700, 17600 и так далее) это номера режимов в данной программе.

JtR — это сокращение от John the Ripper, а последующие строки — это название алгоритмов хешей для взлома в данной программе (raw-sha512, raw-sha3 и так далее).

Цвет очень хорошо улучшает читаемость вывода, особенно если он обширный. Если вы хотите отключить цветной вывод, то используйте опцию —no-color:

Хотя зачастую вывод содержит более одного предположения о типе хеша, по умолчанию из него исключены алгоритмы с солью. Чтобы показать все возможные алгоритмы хеширования, в том числе с использованием соли используйте опцию -e или —extended:

Если вы хотите только узнать тип хеша и информация о режимах hashcat и john the ripper для вас является излишней, то вы можете указать опцию —short для укороченного вывода:

Name-That-Hash

С января 2021 года, почти через два года после того, как началась работа над HAITI, появился проект под названием Name-That-Hash, потому что автору требовалась библиотека Python для Ciphey. Теперь есть два актуальных варианта для идентификации хеша.

Name That Hash определяет тип хеша. Программа поддерживает MD5, SHA256 и более 300 других хешей.

Особенности Name That Hash:

Инструкцию по установке и полный список опций вы найдёте на странице https://kali.tools/?p=6626.

Для определения типа хеша укажите его с опцией -t (—text):

Хеши разбиты на две группы:

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

В выводе вы можете увидеть уже знакомые строки HC и JtR с номерами и названиями алгоритмов хеширования в Hashcat и John.

Кроме этого, имеется краткое описание применения, например:

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

Для проверки множества хешей используйте опцию -f (—file):

Формат файла — один хеш на строку.

Одна из этих опций (-t или -f) являются обязательной.

Если ваши хеши кодированы в Base64, то используйте опцию -b64 (—base64). Она говорит программе перед идентификацией декодировать хеши из Base64. Для файлов со смешанными строками Base64 и в обычном тексте программа пытается вначале декодировать base64 и если это не получается, то трактует хеш как обычную строку без кодировки.

Обратите внимание, что в качестве хеша (после шапки) показана уже декодированная строка.

Опция -e (—extreme) включает поиск хешей в строке. Этот режим получит 5d41402abc4b2a76b9719d911017c592 из ####5d41402abc4b2a76b9719d911017c592###.

По идее, следующие две команды должны дать одинаковый результат:

Но у меня они получились разные. Поэтому используйте этот режим скорее как экспериментальный.

Бесплатное онлайн определение типа хеша

Сервис Онлайн определение типа хеша существует уже давно. Он работает очень просто — вы вводите хеш и получаете тип хеша. Ранее он основывался на утилитах hashID и HashTag. Теперь сервис обновлён и работает с утилитами HAITI и Name That Hash — самыми актуальными инструментами для определения типа хеша.

Заключение

Как можно убедиться, трудно выбрать, какая из программ лучше — HAITI или Name That Hash. Можно пользоваться или двумя. Либо если вам нужен вывод в формате JSON или вам нужна поддержка API или библиотека для определения хешей, то вы можете выбрать наиболее подходящую для ваших потребностей.

Источник

Определения типов хэшей при помощи скрипта hash-Identifier для расшифровки паролей

Когда вы имеете дело с неизвестным хэшем, первый шаг – корректная идентификация типа.

Определения типов хэшей при помощи скрипта hash-Identifier для расшифровки паролей

Хэши обычно используются для хранения конфиденциальной информации, как, например, учетных записей, которые не должны находиться в открытом виде. При помощи утилит наподобие Hashcat мы можем взломать эти хэши однако только в случае, если знаем алгоритм генерации. Используя инструменты навроде скрипта hash-identifier, можно легко определить тип любых хэшей, чтобы затем указать правильный режим при работе с Hashcat.

Помимо взлома хэшей hash-identifier также полезен для идентификации алгоритма, используемого при выдаче контрольной суммы для загрузки файлов. Кроме того, этот скрипт помогает определить, к какому приложению относится хэшированный файл или значение (например, SQL базе или какому-либо другому формату, специфичному для конкретного поставщика).

Что такое хэш и как расшифровать пароль?

Как было сказано ранее, пароли, извлекаемые из базы данных или компьютера, обычно хранятся в виде хэшей, а не в открытом виде. Функция хэширования преобразует пароли в хаотичный набор символов и чисел, которые не должны быть обратимы обратно в пароль.

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

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

Если вы много работаете с хэшами, то легко увидите разницу между разными и часто используемыми типами.

Например, сможете ли вы на глаз определить, к какому типу относятся хэши, указанные ниже?

При использовании Hashcat для взлома этого хэша мы должны установить опцию –m с целью работы в нужном режиме. Для взлома хэша MD5 мы бы указали режим 0.

В итоге, установив нужный алгоритм и используя хороший словарь, после расшифровки хэша мы получили слово «hashcat».

Какие хэши поддерживаются?

На данный момент Hashcat в состоянии расшифровать большое количество хэшей. В репозитории на GitHub для утилиты hash-identifier список поддерживаемых хэшей очень внушителен:

Для начала нужно установить Python3 на вашем компьютере (есть версии для разных платформ). Кроме того, вам понадобится утилита Hashcat, которую можно загрузить, используя команду apt install hashcat, после обновления системы при помощи команд apt update и apt upgrade.

Если вы хотите сгенерировать ваши собственные хэши для тестового взлома, то можете воспользоваться командой в формате echo n PLAINTEXT | (HASHTYPE)sum. Например, при создании хэша SHA1 для слова «nullbyte» я запустил следующую команду:

Шаг 1. Загрузка и установка Hash-Identifier

Установить скрипт, написанный на Python, – очень просто. Откройте терминал и запустите следующую команду:

Затем посмотрите содержимое директории hash-identifier:

Вы должны обнаружить файл hashid.py, который можно запустить при помощи команды ниже:

Шаг 2. Идентификация неизвестных хэшей

В качестве пробного подхода при помощи hash-identifier попробуем опознать следующие пять неизвестных хэшей:

Для начала в командной строке вводим первую строку и быстро получаем результат, что скорее всего имеем дело с хэшем, используемым в MySQL, который попробуем взломать чуть позже.

Третий хэш опознается как SHA1:

Четвертый хэш опознается как SHA512:

Наконец, пятый и последний хэш опознается как MD5:

Все прошло без особых проблем. Следующий шаг – поиск нужного режима, соответствующего обнаруженному типу, который будет указываться в Hashcat во время взлома.

Шаг 3. Подбор режима в Hashcat

При поиске нужного режима мы можем взглянуть на огромный список хэшей, поддерживаемых в Hashcat. Сокращенный вариант с наиболее популярными типами приведен ниже:

В списке выше есть два примера, которые могут соответствовать первому хэшу (7196759210defdc0), рассмотренному нами в предыдущем шаге. На первый взгляд, режим 200 «MySQL323» наиболее соответствует. Подтвердить гипотезу можно при помощи проверки тестового хэша в hash-identifier.

Точное совпадение с нужным хэшем:

Если мы попробуем другой тип (300), то увидим, что результаты не совпадают.

Соответственно, еще раз убеждаемся, что режим 200 выбран правильно.

Шаг 4. Расшифровка хэша при помощи Hashcat

После идентификации типа хэша и подбора нужно режима можно приступать к расшифровке пароля в Hashcat. Вначале нужно создать словарь с паролями, который будет использоваться в Hashcat для атаки на хэш. В сети есть много доступных списков, например, RockYou, но в нашем случае мы будем создавать тестовый словарь example.dict с несколькими паролями.

Если вы все еще находитесь внутри скрипта hash-identifier, нажмите CtrlC, а затем откройте файл в текстовом редакторе nano, запустив следующую команду:

После добавления нескольких предполагаемых паролей, один из которых – «hashcat», нажимаем CtrlX для выхода из редактора и вводим Y, чтобы сохранить изменения в файле. Теперь мы можем использовать этот файл в качестве словаря вместе с ранее выбранным режимом для взлома хэша. Базовая команда выглядит примерно так:

Вместо значения HASH_VALUE указываем хэш 7196759210defdc0, вместо MODE_NUMBER – подобранный ранее режим 200. Результат работы показан ниже. Если у вас старая система, как в моем случае – нужно указать параметр force.

В результате мы получили 7196759210defdc0:hashcat и смогли расшифровать хэш посредством сравнения с элементами словаря из файла example.dict.

Когда вы имеете дело с неизвестным хэшем, первый шаг – корректная идентификация типа. Хотя скрипт hash-identifier – не идеален, но позволяет без особых проблем опознать наиболее распространённые хэши и отличить разные типа хэшей, которые выглядят одинаково, но требуют разных режим работы в Hashcat. Даже если hash-identifier не уверен, с каким типом вы имеете дело, сравнение с результатами примеров с сайта Hashcat, может помочь в идентификации.

Надеюсь это руководство, посвященное опознанию неизвестных хэшей, вам понравилось.

Источник

Как определить тип хеша

Зачастую раздобыть заветные хеши — это далеко не все, что нужно сделать перед тем, как начинать брут. Иногда еще бывает полезно понять, а что, собственно, будем брутить, определить хеш или другими словами, узнать, что за хеш попался при проведения пентеста.

Определение хеша онлайн

Самым простым способом узнать алгоритм хеша — онлайн-сервис. Один из самых популярных сервисов по определению хеша онлайн является сайт onlinehashcrack.com.

Использовать данный сервис очень просто:

Сервис умеет определять свыше 250 типов хешей.

Определение хеша с помощью hashID

В некоторых случаях лезть в интернет для определения типа хеша будет затруднительно. В таких ситуациях можно использовать специальные утилиты. Одна из самых популярных на сегодняшний день — инструмент hashID.

Данная утилита пришла на смену утилит HashTag и Hash-Identifier.

hashID — это чрезвычайно полезная тулза на Python 3, которая попытается определить, что за тип хеша перед ней.

В библиотеке hashID более двухсот различных сигнатур хешей и сервисов, которые их используют.

Определение хеша с помощью утилиты hashID

Утилита дружит с hashcat, John The Ripper, а также без проблем запускается и на второй ветке Python.

Установка hashID

Скачать hashID

Скачать утилиту можно с Гитхаба. Там же найдете полный список поддерживаемых хешей в Excel-файле.

На этом все. Этих инструментов определения хеша вам должно хватить. Всем хорошего настроения и информационной безопасности!

Источник

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

HashTag

Описание HashTag

HashTag.py — это инструмент на python, который разбирает и идентифицирует различные хеши паролей на основе их типа. HashTag поддерживает определение более 250 типов хешей и сопоставляет их с более чем 110 режимами hashcat. HashTag способен идентифицировать единичный хеш, разобрать единичный файл и определить хеши внутри него или обойти директорию и все поддиректории в поисках потенциальных файлов хешей и идентифицировать все найденные хеши.

Идентификация хешей

Определение типов хешей паролей осуществляется на основе набора символов (шестнадцатеричные, алфавитные и т. д.), длиной хеша, форматом хеша (например, 32-символьный хеш, за которым следует двоеточие и соль), любых специальных подстрок (например, ‘$1$’). Множество строк хешей паролей не могут быть идентифицированные однозначно по этим атрибутам. Например, хеши MD5 и NTLM оба 32-символьные, состоят из шестнадцатеричных строк. В этом случае выводиться исчерпывающий список возможных типов/

Справка по HashTag

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

Страница man отсутствует.

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

Определить тип хеша 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935:

Установка HashTag

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

Установка в BlackArch

Программа предустановлена в BlackArch.

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

Источник

Читайте также:  новогодний венок на дверь
Образовательный портал
Инструмент Поддерживается Цветной вывод Ref. Библиотека Язык #️⃣ 🔢
haiti ✅ (2019-настоящее время) 💎 382
hashID ❌ (2013-2015) 🐍 ⭕️ 275
hash-identifier ❌ (2011-2011) 🐍
Dagon ❌ (2017-2018) ⭕️ 🐍 ⭕️
Name-That-Hash ✅ (2021-настоящее время) 🐍 365
HashTag ❌ (2013-2013) 🐍