Hashcat
Hashcat — это инструмент командной строки с открытым исходным кодом для восстановления (подбора) паролей, работающий на основе атак по словарю, маске, перебору (брутфорсу) и комбинированным методам. Hashcat поддерживает широкий спектр хеш-функций и форматов дампов, а также использует вычислительные мощности центрального процессора (CPU) и графических процессоров (GPU) для ускорения вычислений. Инструмент распространяется под лицензией MIT и является одним из наиболее популярных в сфере тестирования на проникновение (пентеста) и анализа стойкости парольной политики.
История
Разработка Hashcat началась в 2009 году. Первоначально проект был создан австрийским программистом Йенсом Стеубе (известным под псевдонимом Atom) как инструмент для демонстрации уязвимости паролей, защищённых хешами MD5. Первая версия поддерживала только атаки по словарю и работала исключительно на CPU. В 2010 году вышла версия, поддерживающая GPU через OpenCL, что позволило значительно увеличить скорость подбора.
В 2015 году был выпущен hashcat-legacy (версия 3.0), который стал отдельной веткой для CPU, а основная разработка сосредоточилась на версии oclHashcat (для GPU). В 2016 году обе ветки были объединены в единый проект Hashcat 4.0.0, который поддерживает как CPU, так и GPU (через OpenCL и CUDA). С этого момента Hashcat активно развивается: добавляются новые режимы атак, поддержка современных хеш-алгоритмов (например, bcrypt, scrypt, Argon2) и оптимизации для видеокарт.
Архитектура и принцип работы
Hashcat работает по следующему принципу: пользователь предоставляет файл с хешами (например, дамп базы данных), а программа последовательно генерирует кандидаты в пароли и вычисляет их хеш, сравнивая с заданным. Если хеш совпадает, пароль считается найденным.
Режимы атак
Hashcat поддерживает несколько основных режимов атак:
- Атака по словарю (Dictionary Attack) — программа перебирает пароли из заранее подготовленного текстового файла (словаря). Это самый быстрый метод, если пароль присутствует в словаре.
- Атака по маске (Mask Attack) — пользователь задаёт шаблон пароля, указывая известные символы и позиции (например,
?l?l?d?d— две строчные буквы и две цифры). Позволяет сократить пространство перебора, если известны правила формирования пароля. - Атака полным перебором (Brute-Force Attack) — перебор всех возможных комбинаций символов заданной длины. Теоретически возможен для коротких паролей (до 6–8 символов), но для длинных требует огромных вычислительных ресурсов.
- Комбинированная атака (Combination Attack) — объединение двух словарей: например, все комбинации слов из первого и второго файлов.
- Атака с правилами (Rule-Based Attack) — модификация слов из словаря с помощью правил замены (например, замена
aна@, добавление цифр в конец). Позволяет эффективно подбирать пароли, построенные на основе слов с типичными изменениями. - Атака по маске гибридная (Hybrid Attack) — комбинация словаря и маски (например, слово из словаря + две цифры).
Поддерживаемые хеш-функции
Hashcat поддерживает более 300 типов хешей, включая:
- MD5, SHA-1, SHA-256, SHA-512 — классические криптографические хеши.
- NTLM, LM — хеши Windows.
- bcrypt, scrypt, PBKDF2, Argon2 — адаптивные хеш-функции с солью, устойчивые к GPU-ускорению.
- MySQL, PostgreSQL, Oracle — хеши баз данных.
- WPA/WPA2, WPA3 — хеши Wi-Fi.
- SHA-512crypt, MD5crypt — хеши Unix-систем.
Использование GPU
Основное преимущество Hashcat перед многими аналогами — эффективное использование графических процессоров. GPU (NVIDIA, AMD) содержат тысячи ядер, способных выполнять множество параллельных вычислений. Это позволяет Hashcat достигать скорости в миллиарды хешей в секунду для простых алгоритмов (например, MD5, NTLM). Для адаптивных хешей (например, bcrypt) скорость ниже, но всё равно значительно выше, чем на CPU.
Применение
Hashcat используется в нескольких областях:
- Тестирование на проникновение (пентест) — для проверки стойкости парольной политики организации. Специалисты по информационной безопасности могут подбирать пароли из дампов баз данных, чтобы оценить, насколько легко их взломать.
- Криминалистика и восстановление доступа — в случаях, когда пароль утерян, а доступ к данным (например, к зашифрованному архиву или документу) необходимо восстановить. Hashcat может использоваться для подбора пароля к файлам (например, RAR, ZIP, PDF, Office).
- Образовательные цели — изучение криптографии и методов атак на пароли.
- Исследование безопасности — анализ стойкости новых алгоритмов хеширования.
Критика и ограничения
Hashcat, как и любой инструмент подбора паролей, может быть использован как в легитимных целях (тестирование безопасности), так и в злонамеренных (взлом учётных записей). В связи с этим его распространение и использование регулируется законодательством многих стран. В России, согласно Уголовному кодексу РФ (статья 272 «Неправомерный доступ к компьютерной информации»), использование подобных инструментов без согласия владельца системы может быть признано преступлением.
Основные ограничения инструмента:
- Зависимость от оборудования — скорость подбора напрямую зависит от производительности GPU. Для сложных хешей (bcrypt, Argon2) даже мощные видеокарты могут быть неэффективны.
- Необходимость в словарях — для атаки по словарю требуется качественный словарь (например, RockYou, Have I Been Pwned). Без него эффективность снижается.
- Ограничения по длине пароля — полный перебор для паролей длиннее 10–12 символов практически невозможен на современном оборудовании.
- Отсутствие графического интерфейса — работа только через командную строку, что требует от пользователя определённых технических навыков.
Интересные факты
- Hashcat является одним из немногих инструментов, поддерживающих атаку на хеши WPA3 (через атаку на SAE).
- В 2019 году сообщество Hashcat организовало конкурс «Hashcat Challenge», в котором участники пытались подобрать пароли к хешам, используя только публичные словари и правила.
- Инструмент используется в крупных проектах по анализу утечек данных, таких как Have I Been Pwned, для проверки, какие пароли были скомпрометированы.
- Hashcat может работать в распределённом режиме с помощью Hashcat-Utils, позволяя объединять мощности нескольких компьютеров.
Альтернативы
Среди аналогов Hashcat можно выделить:
- John the Ripper — инструмент с открытым исходным кодом, поддерживающий CPU и GPU, но с меньшей производительностью для простых хешей.
- oclHashcat — предшественник Hashcat, ныне объединённый с ним.
- Cain & Abel — утилита для Windows с графическим интерфейсом, но с ограниченной поддержкой современных алгоритмов.
- Hydra — инструмент для атак на сетевые протоколы (например, SSH, FTP, HTTP), а не на хеши.
Источники
- Официальная документация Hashcat (hashcat.net/wiki)
- Steube, J. (2016). «Hashcat: Advanced Password Recovery». Proceedings of the 2016 ACM Workshop on Security and Privacy in Smartphones and Mobile Devices.
- Goodin, D. (2019). «How I cracked 10,000 hashes per second using a $200 GPU». Ars Technica.
- Книга «Penetration Testing: A Hands-On Introduction to Hacking» (Georgia Weidman, 2014) — раздел о подборе паролей.
- Статья «Understanding Password Cracking: Techniques and Tools» (SANS Institute, 2020).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →