Перейти к содержанию

Hashcat

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Hashcat
Тип Взлом пароля
Разработчик Jens 'atom' Steube
Операционная система Linux, macOS, Windows
Последняя версия 6.1.1 / 29 июля 2020
Лицензия MIT License
Ссылки
Сайт hashcat.net/hashcat/

Hashcat — это, по словам создателей, самый быстрый в мире инструмент для восстановления паролей. До 2015 года программа была проприетарной, но теперь выпускается как свободное программное обеспечение. Версии доступны для Linux, macOSи Windows и могут быть представлены в вариантах на базе CPU или GPU. Примерами алгоритмов хеширования, поддерживаемых хеш-кэтами, являются хеши Microsoft LM, MD4, MD5, семейство SHA, форматы Unix Crypt, MySQL и Cisco PIX.

Hashcat стал популярным благодаря найденным его создателем недостаткам в других программах, использующих шифрование данных. Например, была обнаружена ошибка в схеме хеширования менеджера паролей 1Password, которая позволяла подбирать мастер-пароли[1][2]. На данный момент Hashcat активно используется для подбора WPA/WPA2 паролей, взлома паролей от документов MS Office, PDF, 7-Zip, RAR, TrueCrypt. Активное развитие и использование Hashcat в качестве утилиты для взлома паролей заставляет разработчиков задумываться о безопасности создаваемых ими систем[3].

Версии

Раньше Hashcat выпускался в двух версиях:

  • hashcat — инструмент для восстановления пароля на базе процессора
  • oclHashcat / cudaHashcat — инструмент с графическим ускорением (OpenCL или CUDA)

С выпуском hashcat v3.00 инструменты GPU и CPU были объединены в один инструмент под названием hashcat v3.00.[4]Версия, предназначенная только для процессора, получила название hashcat-legacy. И CPU, и GPU теперь используют OpenCL.

Многие из алгоритмов, поддерживаемых hashcat-legacy, могут быть взломаны за более короткое время с помощью хорошо документированного ускорения за счет графического процессора (GPU), используемого в oclHashcat, cudaHashcat и hashcat v3.00 (например, MD5, SHA1 и другие). Однако не все алгоритмы могут быть ускорены за счет использования графических процессоров (например, bcrypt), поэтому oclHashcat/cudaHashcat не может считаться полноценной заменой для hashcat-legacy.

На данный момент hashcat доступен для macOS, Windows и Linux с GPU, CPU и общей поддержкой OpenCL, что позволяет использовать FPGA и другие ускорительные карты.

Принцип работы

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

Типы атак

Hashcat предполагает использование различных типов атак для достижения эффективного покрытия всевозможных хешей:

  • Атака «грубой силой» (Brute-force attack)
  • Атака по маске (Mask attack)
    • Идея состоит в том, чтобы с помощью частотного словаря (наиболее употребляемые пароли) построить маску и тем самым сократить количество комбинаций.
    • Например, достаточно стандартной являются комбинации с заглавной первой буквой и цифрами на конце (Julia1983). В случае обычного перебора количество комбинаций равняется [math]\displaystyle{ 62^9 (13.537.086.546.263.552) }[/math] комбинаций, что заняло бы чуть более чем 4 года на обычной для современного GPU скорости (100 Мега-хешей в секунду)
    • Используя стандартную для многих людей маску (заглавная буква в начале и год в конце), подобный пароль можно было бы перебрать за [math]\displaystyle{ 52 \cdot 26^4 \cdot 10^4 \; (237.627.520.000) }[/math] комбинаций, что заняло бы около 40 минут на той же скорости GPU.
  • Атака перебором всех комбинаций в словаре (Combinator attack)
  • Простой перебор по словарю (Dictionary attack)
  • Атака по следу (Fingerprint attack)
  • Гибридная атака (Hybrid attack)
  • Атака перемешиванием (Permutation attack)
  • Атака на основе правила (Rule-based attack)
    • Наиболее гибкий и эффективный способ. Атака на основе правил похожа на язык программирования, предназначенный для генерации предполагаемых паролей. У этой атаки есть функции для изменения, сокращения или расширения слов, а также условные операторы для пропуска некоторых.
  • Атака поиском по таблице (Table-lookup attack), только на CPU
  • Атака перебором по заглавным и прописным буквам (Toggle-Case attack)

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

Примечания

  1. Toward better Master Passwords | 1Password (англ.). 1Password Blog (28 августа 2018). Дата обращения: 13 декабря 2018. Архивировано 13 декабря 2018 года.
  2. hashcat. Support added to crack 1Password to oclHashcat-plus, 100% computed on GPU! Plus I found an exploitable design flaw http://hashcat.net/forum/thread-2238.html … (англ.). @hashcat (16 апреля 2013). Дата обращения: 13 декабря 2018. Архивировано 23 августа 2013 года.
  3. 1Password hashcat strong master passwords | 1Password (англ.). 1Password Blog (16 марта 2013). Дата обращения: 14 декабря 2018. Архивировано 14 декабря 2018 года.
  4. hashcat v3.00. hashcat.net. Дата обращения: 13 декабря 2018. Архивировано 20 сентября 2018 года.