Hashcat

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Hashcat
Тип Взлом пароля
Разработчик Jens 'atom' Steube
Написана на Си
Операционные системы Linux, macOS, Windows
Последняя версия 6.1.1 / 29 июля 2020
Репозиторий github.com/hashcat/hashc…
Лицензия 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). В случае обычного перебора количество комбинаций равняется комбинаций, что заняло бы чуть более чем 4 года на обычной для современного GPU скорости (100 Мега-хешей в секунду)
    • Используя стандартную для многих людей маску (заглавная буква в начале и год в конце), подобный пароль можно было бы перебрать за комбинаций, что заняло бы около 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 года.