Идентификация неизвестных типов хэшей

Kali LinuxBeginner
Практиковаться сейчас

Введение

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

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

Сбор списка различных примеров хэшей

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

Сначала используйте команду cat с Here Document (<<EOF) для создания файла с именем hashes.txt в каталоге ~/project. Этот файл будет содержать три распространенных типа хэшей: MD5, SHA-1 и NTLM.

Выполните следующую команду в терминале:

cat << EOF > hashes.txt
d41d8cd98f00b204e9800998ecf8427e
da39a3ee5e6b4b0d3255bfef95601890afd80709
32ed87bd5fdc5e204e2620a05a069858
EOF

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

cat hashes.txt

Вы должны увидеть следующий вывод, подтверждающий, что три хэша были сохранены в файле:

d41d8cd98f00b204e9800998ecf8427e
da39a3ee5e6b4b0d3255bfef95601890afd80709
32ed87bd5fdc5e204e2620a05a069858

Теперь, когда у вас есть список хэшей, вы готовы приступить к их идентификации.

Использование инструмента hashid в Kali

На этом этапе вы будете использовать инструмент hashid для анализа хэшей, сохраненных в файле hashes.txt. hashid — это утилита командной строки, которая идентифицирует различные типы хэшей, анализируя их длину и состав символов. Это простой, но мощный инструмент для начального этапа анализа хэшей.

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

Запустите hashid для вашего файла hashes.txt:

hashid hashes.txt

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

--File 'hashes.txt'--
d41d8cd98f00b204e9800998ecf8427e
[+] MD5
[+] Domain Cached Credentials (DCC)
da39a3ee5e6b4b0d3255bfef95601890afd80709
[+] SHA-1
[+] RipeMD-160
32ed87bd5fdc5e204e2620a05a069858
[+] NTLM
[+] MD4
[+] MD5
--End of file 'hashes.txt'--

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

Анализ вывода hashid

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

Давайте разберем вывод из предыдущего шага:

  • Для первого хэша (d41d8cd98f00b204e9800998ecf8427e) hashid предлагает MD5 и Domain Cached Credentials (DCC). MD5 является наиболее распространенным типом для хэша такого формата.
  • Для второго хэша (da39a3ee5e6b4b0d3255bfef95601890afd80709) предлагаются SHA-1 и RipeMD-160. SHA-1 является очень распространенным выбором.
  • Для третьего хэша (32ed87bd5fdc5e204e2620a05a069858) hashid перечисляет NTLM, MD4 и MD5. В средах Windows NTLM является очень вероятным кандидатом.

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

hashid -m d41d8cd98f00b204e9800998ecf8427e

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

--Hash 'd41d8cd98f00b204e9800998ecf8427e'--
[+] MD5 [HC: 0]
[+] Domain Cached Credentials (DCC) [HC: 1100]

Это означает, что для Hashcat MD5 соответствует режиму -m 0. Эта информация имеет решающее значение для настройки сеанса взлома.

Использование онлайн-инструмента для анализа хэшей в качестве второго мнения

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

hash-identifier — это интерактивный скрипт Python. Вы запускаете команду, и она предлагает вам ввести хэш, который вы хотите идентифицировать.

Сначала запустите инструмент, набрав его имя в терминале:

hash-identifier

Вы увидите приглашение с запросом хэша.

   #########################################################################
   ##     __  __                     __           __    _           _   _   #
   ##    / / / /___  ____ ___  ___  / /_  _______/ /_  (_)_________| | / /   #
   ##   / /_/ / __ \/ __ `__ \/ _ \/ __ \/ ___/ __ \/ / / ___/ ___/  |/ /    #
   ##  / __  / /_/ / / / / / /  __/ /_/ / /__/ / / / / / /__/ /  / /|  /     #
   ## /_/ /_/\____/_/ /_/ /_/\___/_.___/\___/_/ /_/_/_/\___/_/  /_/ |_/      #
   ##                                                                       #
   ##                                by c0decracker                         #
   #########################################################################

 HASH:

Теперь скопируйте один из хэшей из вашего файла hashes.txt, например, второй (da39a3ee5e6b4b0d3255bfef95601890afd80709), вставьте его в приглашение и нажмите Enter.

Инструмент проанализирует хэш и предоставит свой вывод.

 HASH: da39a3ee5e6b4b0d3255bfef95601890afd80709

Possible Hashs:
[+] SHA-1
[+] RipeMD-160

Least Possible Hashs:

Вывод подтверждает вывод hashid о том, что хэш, скорее всего, является SHA-1. Вы можете нажать Ctrl+C, чтобы выйти из инструмента hash-identifier.

Сопоставление идентифицированного типа хэша с кодом -m Hashcat

На этом заключительном этапе вы научитесь находить правильный код режима (-m) для использования с Hashcat, самым быстрым в мире инструментом для восстановления паролей. Хотя hashid -m может предоставить эту информацию, вы также можете найти ее непосредственно в обширном меню справки Hashcat. Это полезно для подтверждения режима или поиска кодов для менее распространенных типов хэшей.

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

Найдем режим для MD5. Выполните следующую команду:

hashcat --help | grep "MD5"

Вывод будет представлять собой длинный список всех режимов, связанных с MD5. Ищите запись plain MD5.

...
      0 | MD5                                            | Raw Hash
...

Как вы можете видеть, режим для стандартного хэша MD5 — 0.

Теперь сделаем то же самое для SHA-1:

hashcat --help | grep "SHA-1"
...
    100 | SHA-1                                          | Raw Hash
...

Режим для SHA-1 — 100.

Наконец, найдем режим для NTLM:

hashcat --help | grep "NTLM"
...
   1000 | NTLM                                           | Raw Hash
...

Режим для NTLM — 1000. Правильно идентифицировав тип хэша и соответствующий ему режим Hashcat, вы теперь готовы настроить атаку по подбору паролей.

Резюме

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