Hashcat: инструмент взлома хэша
Этичный ХакерФункциональное введение в Hashcat
Hashcat – это очень мощный инструмент.
Стоит обратить на него внимание и изучить его возможности.
Прежде чем приступить к примерам, давайте рассмотрим некоторые функциональные возможности Hashcat, включая типы атак, взламываемые хэши и настройки таблицы символов.
Hashcat – это очень гибкий инструмент, позволяющий пользователю оптимизировать и настраивать атаки для более чем 250 режимов хэширования, классифицированных по категориям.
Некоторые из этих категорий показаны в следующей таблице.
КАТЕГОРИЯПОДДЕРЖКА ХЭШ-РЕЖИМА Сырой хэш: MD4, MD5, SHA1, SHA2, SHA3, etc. Сетевые протоколы: WPA, Skype, MySQL CRAM (SHA1), DNSSEC (NSEC3), и т.д. Форумы, CMS, фреймворки php BB3 (MD5), vBulletin, WordPress (MD5), Joomla(MD5), и т.д. Сервер базы данных PostgreSQL, Oracle, MySQL, и т.д. HTTP, SMTP, LDAP Сервер Apache $apr1$ MD5, md5apr1, MD5 (APR), nsldaps, SSHA-1(Base64), Netscape LDAP SSHA, и т.д. Операционные системы: Samsung Android/Windows Phone 8+ Password/PIN, GRUB 2, Cisco, macOS, и т.д. Архивы: 7-Zip, Winzip, RAR, и т.д. Дисковое шифрование: LUKS, Android FDE, Veracrypt, eCryptfs, и т.д. Документы: PDF, Microsoft Office, Apple Secure Notes. Менеджеры паролей: LastPass, Bitcoin/Litecoin wallet.dat, Blockchain, My Wallet, KeePass, и т.д.
Примечание: Полный список категорий можно посмотреть на сайте https://gist.github.com/dwallraff/6a50b5d2649afeb1803757560c176401 или выполнив команду hashcat -help.
Hashcat таблицы символов:
Hashcat позволяет управлять наборами символов для атак методом перебора.
При переборе можно применять следующие встроенные наборы символов для каждой позиции пароля.
Опция флагаНабор символов?labcdefghijklmnopqrstuvwxyz?uABCDEFGHIJKLMNOPQRSTUVWXYZ?d0123456789?h0123456789abcdef?H0123456789ABCDEF?s!”#$%&'()*+,-./:;<=>?@[\]^_`{|}~?a?l?u?d?s?b0x00 – 0xff
Например, вы можете определить первый символ пароля как символ верхнего регистра, указав ?u, затем 5 символов нижнего регистра (?l?l?l?l?l?l?l) и четыре последние цифры, указав ?d?d?d?d?d.
Это будет выглядеть следующим образом:
hashcat -a 3 ?u?l?l?l?l?l?d?d?d?d
Вы также можете указать четыре пользовательских набора символов, сочетающих различные возможности.
Вы указываете каждую пользовательскую кодировку, добавляя 1, 2, 3 и 4.
Например, для задания набора символов, включающего 5 строчных букв и цифр, команда выглядит так, как показано ниже, поскольку ?l указывает на строчные символы, а ?d – на цифры.
hashcat -a 3 -1 ?l?d ?1?1?1?1?1
Возможности настройки и оптимизации Hashcat также включают выбор аппаратного устройства для различных режимов атаки, включая описанные ниже.
Режимы атаки Hashcat:
Брутфорс атака (3): Этот тип атаки состоит из массивных попыток подбора комбинации символов. Эта техника атаки была удалена в Hashcat и заменена атаками “Маска”.
Комбинационная атака (1): Этот режим позволяет добавлять каждое слово, содержащееся в списке слов, в конец каждого слова-контейнера во втором списке слов.
Атака по словарю (0): Этот режим, также называемый “Прямым режимом”, пытается использовать в качестве пароля все строки, содержащиеся в файле. Это простая атака по словарю.
Гибридная атака: Режим гибридной атаки позволяет сочетать атаку по словарю с атакой перебором. Используя этот режим, вы можете добавлять или вставлять элементы списка слов в атаку перебором.
Атака по маске (6 или 7): Атака по маске – это усовершенствование атаки перебором, направленное на разработку “интеллектуальных” атак перебором, в которых пользователь имеет контроль над процессом генерации пароля-кандидата. Например, атака Mask позволяет пользователям задавать такие шаблоны, как заглавная буква только для первой позиции кандидата на пароль, или добавление даты в конце кандидата на пароль, или перед ним, и т.д. Режим 6 позволяет использовать гибридный список слов + маска, а режим 7 – гибридную маску + список слов. Эта атака приводит к более точным попыткам и пропуску или уменьшению числа неправдоподобных кандидатов на пароль.
Атака на основе правил: Эта атака описывается разработчиками Hashcat как самый сложный тип атаки, поскольку она заключается в программировании генерации кандидатов на пароль с помощью функций для сокращения, изменения, расширения кандидатов на пароль.
Атака с переключением регистров: Этот тип атаки работает, если включена атака на основе правил. Он позволяет перебрать все варианты верхнего и нижнего регистра для кандидатов на пароль.
Начало работы с Hashcat:
Для начала работы на системах Linux на базе Debian выполните приведенную ниже команду для установки Hashcat.
sudo apt install hashcat
В системе Kali Linux инструмент уже предустановлен:

Для других дистрибутивов Linux вы можете загрузить и извлечь сжатый файл 7zip с сайта https://hashcat.net/hashcat/.
Для первого примера я буду использовать файл под названием hashlist, содержащий два хэша и список слов под названием wordlist.
Флаг -m используется для определения типа хэша. Хэш, который я хочу разрушить, – MD5; он имеет тип 0.
Вы можете проверить, как определить каждый тип хэша, прочитав страницу man, как показано ниже, и прокрутив вниз до раздела Hash types.

Вы также можете изучить все типы атак и их определение на странице man, это было описано ранее в разделе “Режимы атак Hashcat” в этом руководстве.
Первый пример атаки направлен на хэш MD5 (-m 0) с использованием словарной атаки (-a 0) для взлома хэшей, содержащихся в хэш-листе, за которым следует список слов.
hashcat -m 0 -a 0 hashlist wordlist
Запустится Hashcat; в моем случае я использую фиктивный список слов, содержащий правильные слова, поэтому, как вы можете видеть ниже, Hashcat предупреждает, что мой список слов мал.
Примечание: в этом руководстве используются следующие хэши:
ec92bbf4741c253df7fdf55c9aed5fe4
Давайте посмотрим, что произойдет, если мы снова запустим ту же атаку.
hashcat -m 0 -a 0 hashlist wordlist --show

В следующем примере показано, как расшифровать хэш sha1.
Файл с именем sha1 содержит хэш SHA1.
Как видите, помимо другого имени, единственным отличием является режим хэширования, измененный на 100 (SHA1).
Атака, как и в предыдущем случае, является атакой по словарю.
hashcat -m 100 -a 0 sha1 wordlist
Последний пример показывает атаку методом перебора с использованием hashcat charset для расшифровки числового пароля.
В данном случае я знаю, что это числовой пароль длиной 6 символов.
Используя -3, я даю команду hashcat выполнить атаку брутфорса, а применяя 6-кратную кодировку ?d, я указываю попробовать все числа 6 раз, по одному для каждого символа.
hashcat -m 100 sha1.txt -a 3 ?d?d?d?d?d?d
Заключение
Hashcat – это простой, но мощный инструмент для расшифровки сотен типов хэшей за несколько шагов.
Это многоплатформенный инструмент, который может помочь нам восстановить защищенные zip-файлы, документы, файлы wpa .pcap и более 250 различных режимов шифрования.
Его функции, такие как атаки по маске, делают hashcat интеллектуальным инструментом для проведения интеллектуальных атак, полностью настраиваемых пользователем.