Инструкция по hashcat: запуск и использование программы для взлома паролей

В последнее время стали задавать довольно много вопросов по использованию Hashcat. Многие из этих вопросов являются элементарными и даже уже рассмотрены в русскоязычной документации. Тем не менее, из-за большого объёма документации новичкам не всегда просто в ней сориентироваться и найти ответ на свой вопрос.

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

Как запустить и использовать hashcat (инструкция для взлома паролей)

Hashcat – это программа для взлома паролей, это мощный комбайн с большим количеством возможностей.

Тем не менее, это не самая простая в использовании программа – необходимо потратить время на её изучение. В данной инструкции раскрыты самые типичные ситуации работы с hashcat.

Будут рассмотрены как совсем «детские» вопросы, вроде того, «как запустить hashcat», так и довольно сложные, вроде правильного составления масок, пользовательских наборов символов, опции программы, решение проблем и прочее.

Особенностью hashcat является очень высокая скорость перебора паролей, которая достигается благодаря одновременному использованию всех видео карт, а также процессоров в системе. Возможна работа если установлено несколько видеокарт или карты разных производителей (например, AMD и NVIDIA).

Когда я кликаю на hashcat64.exe мелькает чёрное окно, а затем исчезает

Hashcat – это утилита командной строки. Т.е. у неё нет графического интерфейса в виде привычного окна. Поэтому пользователям Windows может показаться, что программа запускается необычным образом.

Для запуска программы необходимо открыть окно командной строки (либо PowerShell). Чтобы это сделать нажмите сочетание клавиш Win+x, и выберите Windows PowerShell:

Далее можно действовать двумя способами.

Первый вариант: можно просто перетащить исполнимый файл в окно командной строки. Исполнимым файлом является hashcat64.exe или hashcat32.exe в зависимости от вашей системы.

Второй вариант: в командной строке можно сменить текущую рабочую директорию на ту, где размещены исполнимые файлы hashcat. К примеру, у меня программа расположена в папке C:\Users\Alex\Downloads\hashcat-4.1.0\, чтобы сменить текущую рабочую папку используется команда cd, после которой указывается папка, в которую требуется перейти, в моём случае команда выглядет так:

cd C:\Users\Alex\Downloads\hashcat-4.1.0\

Как можно увидеть из скриншота, папка C:\WINDOWS\system32 изменена на C:\Users\Alex\Downloads\hashcat-4.1.0.

Теперь для запуска программы достаточно набрать имя исполнимого файла с указанием на текущую папку. Текущая папка обозначается точкой (.), затем необходимо поставить обратный слеш, получается так:

.\hashcat64.exe

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

На протяжении всей инструкции мы будем запускать исполнимый файл hashcat с опциями. Простейшей опцией является -h, если написать её, то будет выведена справка по использованию программы:

.\hashcat64.exe -h

Скачать hashcat

Скачайте hashcat с официального сайта по ссылке: https://hashcat.net/hashcat/

Вы увидите:

На сайте присутствует hashcat binaries и hashcat sources. Первое – это бинарные (исполнимые) файлы, второе – это исходный код. Нам нужны бинарники, т.е. hashcat binaries.

Как установить hashcat

Как таковая установка hashcat не требуется, поскольку это портативная программа. Достаточно распаковать скаченный архив. Если у вас проблемы с распаковкой формата .7z, то используйте программу 7-Zip (архиватор с высокой степенью сжатия).

Для работы hashcat необходимо, чтобы были установлены свежие версии драйверов видеокарт.

Драйверы для hashcat

Необходимы следующие драйвера для видеокарт:

  • Видеокарты AMD на Windows требуют "AMD Radeon Software Crimson Edition" (15.12 или более поздняя версия)
  • Intel CPUs требует "OpenCL Runtime for Intel Core and Intel Xeon Processors" (16.1.1 или более поздняя версия)
  • Intel GPUs на Windows требует "OpenCL Driver for Intel Iris and Intel HD Graphics"
  • Видеокарты NVIDIA требуют "NVIDIA Driver" (367.x или более поздняя версия)

Скорее всего, драйверы для видеокарт AMD и NVIDIA в Windows у вас уже установлены, либо вы знаете как это сделать.

Поэтому я расскажу только об установке OpenCL Runtime и драйвера OpenCL.

OpenCL Runtime поставляется вместе с драйвером Windows, поэтому вам нужно скачать только один файл OpenCL Runtime for Intel Coreand Intel Xeon Processors for Windows, например, сейчас последней версией является: «OpenCL™ Runtime 16.1.2 for Intel® Core™ and Intel® Xeon® Processors for Windows* (64-bit & 32-bit)». Ранее они распологались на странице загрузки https://software.intel.com/en-us/articles/opencl-drivers#graph-win

Ранее Intel CPU Runtime for OpenCLApplications for Windows OS скачивался в одном файле вместе с графическим драйвером центрального процессора. Сейчас ситуация поменялась: графический драйвер процессора и CPU Runtime for OpenCLApplications разделены на два файла. Причём драйвер можно просто скачать с сайта, а для скачивания среды выполнения нужно регистрироваться на сайте Intel.

Чтобы скачать последнюю версию драйвера для CPU Intel  перейдите на страницу драйверов и ПО, а затем выберите там Graphics Drivers. Например, если у вас версия Windows 10 и центральный процессор 6го, 7го, 8го, 9го поколений, Apollo Lake, Gemini Lake, Amber Lake или Whiskey Lake, тогда выберите опцию «Intel® Graphics Driver for Windows® 10» (самая верхняя строка). Это самая последняя версия на момент написания 25.20.** Если у вас другая версия Windows или более старый процессор, то выберите соответствующий вариант загрузки. Скорее всего, придётся установить какую-то из версий 15.**

Чтобы скачать Intel® CPU Runtime for OpenCL™ Applications for Windows* OS, перейдите на эту страницу: https://registrationcenter.intel.com/en/forms/?productid=3207 (для доступа к файлу требуется регистрация).

Если ссылки станут неактуальными, то перейдите на эту страницу и попробуйте найти ссылки самостоятельно: https://software.intel.com/en-us/articles/opencl-drivers

Опции hashcat

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

В выведенной справке вы наверняка заметили большое количество информации. Эта информация в большей части посвящена именно опциям.

Опции указываются после запускаемого файла через пробел. Некоторые опции требуют указания определённого значения. Некоторые используются без значений (такие опции ещё называют «флагами»).

Опции могут применяться по одной или сразу по несколько. С помощью опций можно очень точно настроить программу, использовать её на максимальных возможностях.

С одной опцией мы уже познакомились – это -h, которая выводит справку по программе, далее мы познакомимся с ещё большим количеством опций и их возможными значениями.

Следующей на очереди является опция -b.

Запуск бенчмарка hashcat

Опцией -b запускается бенчмарк hashcat. Этот бенчмарк меряет, с какой скоростью перебираются пароли.

Запуск бенчмарка пройдёт успешно только если драйвера установлены правильно и всё в порядке. Т.е. бенчмарк это ещё и способ сделать проверку системы и hashcat.

Чтобы запустить проверку скорости перебора по самым популярным алгоритмам в командной строке выполните:

.\hashcat64.exe -b

Для досрочной остановки нажмите CTRL+c. Этим сочетанием клавиш досрочно останавливаются все утилиты командной строки. Запомните эту комбинацию!

Скорость выводится для каждого устройства в отдельности, а также для всех устройств вместе взятых (запись Speed.Dev.#*).

Пример:

Hashmode: 2500 - WPA/WPA2 (Iterations: 4096)

Speed.Dev.#1.....:     5591 H/s (46.19ms) @ Accel:512 Loops:256 Thr:1 Vec:4
Speed.Dev.#2.....:    22374 H/s (69.23ms) @ Accel:128 Loops:32 Thr:256 Vec:1
Speed.Dev.#3.....:      171 H/s (1205.03ms) @ Accel:1024 Loops:128 Thr:1 Vec:4
Speed.Dev.#*.....:    28136 H/s

Какое именно устройство какой имеет номер написано в самом начале при запуске программы, например:

OpenCL Platform #1: Intel(R) Corporation
========================================
* Device #1: Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz, 4085/16342 MB allocatable, 8MCU

OpenCL Platform #2: Advanced Micro Devices, Inc.
================================================
* Device #2: Capeverde, 1523/2048 MB allocatable, 10MCU
* Device #3: Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz, 4085/16342 MB allocatable, 8MCU

Предупреждения и ошибки при запуске hashcat

Сразу при запуске бенчмарка могут начаться выводиться ошибки. К примеру:

* Device #3: Not a native Intel OpenCL runtime. Expect massive speed loss.
             You can use --force to override, but do not report related errors.

В ошибке сказано, что используется не родная среда выполнения OpenCL и ожидается значительное падение скорости. По этой причине устройства OpenCL будут пропущены (на скриншоте ниже это видно по слову skipped, т.е. пропущено). Если мы всё равно хотим их использовать, то нужно добавить опцию --force.

Запуск бенчмарка с двумя опциями:

.\hashcat64.exe -b --force

Если у вас всё равно пропущены некоторые устройства, то вы можете добавить ещё одну опцию -D. После этой опции нужно добавить цифру или цифры, обозначающие тип устройства:

  # | Типы устройств
 ===+=============
  1 | CPU
  2 | GPU
  3 | FPGA, DSP, Co-Processor

Обратите внимание на очень важную вещь – для опции используется заглавная буква. Регистр букв влияет на значение опции! Т.е. опция с буквой в другом регистре (большая вместо маленькой или маленькая вместо большой) может иметь совершенно другое значение, вплоть до противоположного.

Т.е. 1 – это центральные процессор, а 2 – это графический процессор, тогда полная команда вместе с выбором всех доступных у меня устройств будет выглядеть :

.\hashcat64.exe -b --force -D 1,2

clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR

Ошибка

clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR

возникает в том случае, если не найдено устройств, на которых может работать Hashcat. Если подходящие устройства имеются, значит всё дело в неправильных драйверах или в отсутствии драйверов.

Графический интерфейс hashcat

Для hashcat отсутствуют официальные графические интерфейсы. Тем не менее имеется несколько интерфейсов, которые были созданы энтузиастами. Самым актуальным является этот: https://www.hashkiller.co.uk/hashcat-gui.aspx

Для установки графического интерфейса hashcat скачайте архив со страницы, на которую выше дана ссылка.

Распакуйте скаченный архив, в него уже включены:

Требования для работы графического интерфейса hashcat:

  • только операционная система Windows
  • dotNET Framework: v4
  • hashcat версии 3.00 или более поздний

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

После того, как вы распаковали Hashcat GUI и саму Hashcat, вам нужно папку с Hashcat переместить в папку с Hashcat GUI. Должна получиться примерно следующая структура папок:

Подсвечена папка с Hashcat – hashcat-4.1.0. Обратите внимание, что переименовывать каталог с хешкэт не нужно.

Для запуска программы дважды кликните файл HashcatGUI.exe. Посмотрите на графический интерфейс Hashcat:

На мой взгляд, он сложный. По моему субъективному ощущению, проще разобраться с опциями командной строки, чем с графическим интерфейсом в котором, между прочим, всё равно присутствуют не все функции.

Более того, без понимания концепций работы Hashcat, вряд ли вы что-то сможете сделать даже в графическом интерфейсе. Поэтому продолжайте чтение данной статьи, а к графическому интерфейсу мы вернёмся позже на страницах сайта HackWare.ru.

Как использовать hashcat

Запуск программы выполняется следующим образом:

hashcat [опции]... хеш|файл_хеша|файл_hccapx [словарь|маска|директория]...

Здесь под hashcat подразумевается имя исполнимого файла, в моих примерах это .\hashcat64.exe.

После имени исполнимого файла через пробел следуют опции, с которыми мы уже начали знакомство.

Символ | (труба) в данном случае означает логическое «ИЛИ». Т.е. после опций следует ИЛИ файл, ИЛИ файл с хешем, ИЛИ файл hccapx. А затем через пробел указывается ИЛИ словарь, ИЛИ маска, ИЛИ директория – в зависимости от выбранной атаки.

Рассмотрим использование программы на конкретных примерах. Допустим нам дан хеш 53ab0dff8ecc7d5a18b4416d00568f02, который нужно взломать. Об этом хеше известно, что он получен с помощью алгоритма хеширования MD5 (т.е. это MD5 хеш). Также известно, что зашифрованная строка состоит только из маленьких букв английского алфавита и имеет длину от шести до десяти символов.

Далее будет показано, как запускать атаку, используя разнообразные приёмы перебора паролей.

Указание типа хеша

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

В исходных условиях нам дано, что предоставленный хеш является MD5. Значит на странице https://kali.tools/?p=3825 мы ищем «MD5»:

Напротив найденного хеша, смотрим столбец «#», т.е. номер. В нашем случае этот номер равен «0».

Значит, к команде запуска Hashcat необходимо добавить -m 0 - опция и её значение.

Если бы нам был дан хеш SHA1, то его номер бы был 100 и к команде запуска Hashcat мы бы добавили -m 100 и аналогично для любого другого алгоритма.

Обычно тип хеша известен исходя из источника, где этот хеш был получен. В случае, если достоверно неизвестен тип атакуемого хеша, его можно попытаться угадать с помощью специализированных инструментов, как это сделать описано в статье «Хеши: определение типа, подсчёт контрольных сумм, нестандартные и итерированные хеши».


Режимы атаки Hashcat

Hashcat поддерживает различные режимы атак, самыми распространёнными являются:

  • атака по словарю, когда в качестве кандидатов в пароли используется список слов
  • атака по маске (брут-форс, полный перебор), когда кандидаты в пароли генерируются исходя из описанных критериев.

Для указания режима атаки используется опция -a. С помощью неё можно указывать любой тип атаки, поддерживаемый в Hashcat, самыми популярными является атака по словарю – значение 0 – и атака по маске (брут-форс, полный перебор) – значение 3.

Т.е. если мы запускаем атаку по словарю, значит мы указываем -a 0, а если атаку по маске, то -a 3.

Атака по словарю в Hashcat

Запуск атаки по словарю происходит следующим образом:

hashcat [опции]... хеш|файл_хеша|файл_hccapx [путь_до_словаря]...

Чтобы взломать наш хеш, создайте небольшой словарик – обычный текстовый файл с именем dictionary.txt и скопируйте в него:

Примечание: кстати, с Hashcat поставляется пример словаря, он называется example.dict.

Итак, на данном этапе у нас имеется всё необходимое для запуска атаки по словарю. Собираем всё воедино:

.\hashcat64.exe -m 0 -a 0 53ab0dff8ecc7d5a18b4416d00568f02 dictionary.txt

Здесь:

  • .\hashcat64.exe – исполнимый файл
  • -m 0 – опция, устанавливающая тип хеша MD5
  • -a 0 – опция, значение который запускает атаку по словарю
  • 53ab0dff8ecc7d5a18b4416d00568f02 – хеш, который необходимо взломать
  • dictionary.txt – путь до файла словаря.

Поскольку словарь очень маленький, то программа завершит свою работу очень быстро:

Результат работы программы:

53ab0dff8ecc7d5a18b4416d00568f02:hackware

Session..........: hashcat
Status...........: Cracked
Hash.Type........: MD5
Hash.Target......: 53ab0dff8ecc7d5a18b4416d00568f02
Time.Started.....: Mon Mar 05 07:23:25 2018 (0 secs)
Time.Estimated...: Mon Mar 05 07:23:25 2018 (0 secs)
Guess.Base.......: File (dictionary.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:    17783 H/s (0.04ms) @ Accel:1024 Loops:1 Thr:1 Vec:4
Speed.Dev.#2.....:        0 H/s (0.00ms) @ Accel:256 Loops:1 Thr:256 Vec:1
Speed.Dev.#3.....:    12530 H/s (0.03ms) @ Accel:1024 Loops:1 Thr:1 Vec:4
Speed.Dev.#*.....:    30313 H/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 24/48 (50.00%)
Rejected.........: 0/24 (0.00%)
Restore.Point....: 0/48 (0.00%)
Candidates.#1....: aaaaaaaaaa -> dancing2009
Candidates.#2....: [Copying]
Candidates.#3....: danciotu -> hackware
HWMon.Dev.#1.....: N/A
HWMon.Dev.#2.....: Util: 37% Core: 800MHz Mem:1000MHz Bus:16
HWMon.Dev.#3.....: N/A

Первая строка 53ab0dff8ecc7d5a18b4416d00568f02:hackware содержит атакуемый хеш и после двоеточия взломанный пароль – в данном случае это hackware.

Об успешном взлома говорит строка Status………..: Cracked

Хеш необязательно указывать в строке команды – он может быть записан в файл, тогда при запуске взлома указывается путь до файла, содержащего хеш. Например, создадим файл hashmd5.txt и скопируем в него 53ab0dff8ecc7d5a18b4416d00568f02.

Тогда запускаемая команда будет такой:

.\hashcat64.exe -m 0 -a 0 hashmd5.txt dictionary.txt

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

Примечание: поскольку в учебных целях мы взламываем один и тот же хеш разными способами, то в случае если вы повторяете примеры, вы увидите сообщение:

INFO: All hashes found in potfile! Use --show to display them.

Оно означает, что хеш, который вы пытаетесь взломать, уже был взломан ранее. Все взломанные хеши храняться в файле hashcat.potfile в той же директории, что и Hashcat. Это обычный текстовый файл, его можно открыть и посмотреть содержимое, в моём случае это:

53ab0dff8ecc7d5a18b4416d00568f02:hackware

Этот файл можно удалить, чтобы запускать заново атаку на один и тот же хеш различными способами.

Также имеется опция --show, после которой нужно указать интересующий хеш:

.\hashcat64.exe --show 53ab0dff8ecc7d5a18b4416d00568f02

и если он найден в файле hashcat.potfile, то будет выведена информация о взломанном пароле.

Атака по маске в Hashcat (полный перебор, брут-форс)

В Hashcat нет такого режима как брут-форс – полного перебора паролей. Его поглатил режим «атака по маске». Это более гибкий тип атаки, который позволяет как реализовать полный перебор, так и перебор по тонко настроенным критериям.

В общем виде атака по маске имеет следующий вид:

hashcat [опции]... хеш|файл_хеша|файл_hccapx [маска]...

Т.е. она аналогична предыдущей, но вместо словаря указывается маска.

Как составлять маски в Hashcat

Для составления масок используются наборы символов. Наборы символов в Hashcat бывают двух видов:

  • встроенные наборы символов
  • пользовательские наборы символов

Начнём с разбора встроенных наборов символов, т.к. для многих ситуаций их бывает достаточно.

В Hashcat встроенными наборами символов являются:

  ? | Набор символов
 ===+=========
  l | abcdefghijklmnopqrstuvwxyz
  u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
  d | 0123456789
  h | 0123456789abcdef
  H | 0123456789ABCDEF
  s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
  a | ?l?u?d?s
  b | 0x00 - 0xff

Первая колонка означает условное обозначение набора символов. Для использования в масках, перед данным обозначением необходимо поставить знак вопроса. Например, ?u означает все заглавные буквы, ?d – все цифры.

Допустим, нам известно, что пароль состоит из четырёх символов, первыми двумя символами являются прописные буквы, а третьим и четвёртым символами являются цифры, тогда маска будет следующая:

?l?l?h?h

Чтобы взломать пароль из нашего хеша, данного в качестве примера, необходимо составить маску, состоящую из восьми символов, каждый из которых является маленькой буквой. Это маска: ?l?l?l?l?l?l?l?l

.\hashcat64.exe -m 0 -a 3 53ab0dff8ecc7d5a18b4416d00568f02 ?l?l?l?l?l?l?l?l

Здесь:

  • .\hashcat64.exe – исполнимый файл
  • -m 0 – опция, устанавливающая тип хеша MD5
  • -a 3 – опция, значение который запускает атаку по маске
  • 53ab0dff8ecc7d5a18b4416d00568f02 – хеш, который необходимо взломать
  • ?l?l?l?l?l?l?l?l – маска, которая задаёт генерацию паролей длиной в восемь символов, состоящих из маленьких букв.

Менее чем через минуту пароль успешно взломан:

Обратите внимание на строку:

Progress.........: 15724838912/208827064576 (7.53%)

Т.е. было перебрано 15724838912 вариантов паролей из 208827064576 общего количества вариантов.

Маска при неизвестной длине пароля

Не всегда точно известна длина пароля. Даже по условию нашей задачи пароль имеет длину от шести до десяти символов.

Для того, чтобы генерировались пароли различной длины, имеются следующие опции:

  • -i - Включить режим приращения маски
  • --increment-min | Числ | Начать прирост маски на X, пример использования: --increment-min=4
  • --increment-max | Числ | Остановить прирост маски на X, пример использования: --increment-max=8

Опция -i является необязательной. Если она используется, то это означает, что длина кандидатов в пароли не должна быть фиксированной, она должна увеличиваться по количеству символов.

Опция --increment-min также является необязательной. Она определяет минимальную длину кандидатов в пароли. Если используется опция -i, то значением  --increment-min по умолчанию является 1.

И опция --increment-max является необязательной. Она определяет максимальную длину кандидатов в пароли. Если указана опция -i, но пропущена опция --increment-max, то её значением по умолчанию является длина маски.

Правила использования опций приращения маски:

  • перед использованием --increment-min и --increment-max необходимо указать опцию -i
  • значение опции --increment-min может быть меньшим или равным значению опции --increment-max, но не может превышать его
  • длина маски может быть большей по числу символов или равной числу символов, установленной опцией --increment-max, НО длина маски не может быть меньше длины символов, установленной --increment-max.

Итак, скорректируем команду запуска для нашей задачи (пароль имеет длину от шести до десяти символов):

.\hashcat64.exe -m 0 -a 3 -i --increment-min=6 --increment-max=10 53ab0dff8ecc7d5a18b4416d00568f02 ?l?l?l?l?l?l?l?l?l?l

Эта команда аналогична предыдущей, но здесь добавлены три новые опции (которые объяснены чуть выше):

  • -i
  • --increment-min=6
  • --increment-max=10

А также увеличена длина маски до 10 символов: ?l?l?l?l?l?l?l?l?l?l (как это требуют правила использования опций приращения).

На перебор понадобилось чуть больше времени, поскольку дополнительно были опробованы кандидаты в пароли длиной 6 (+1 секунда на моём железе) и 7 символов (+22 секунды):

Обратите внимание на новое значение строки Status:

Status...........: Exhausted

Оно означает, что перебраны все кандидаты в пароли, но ни один из них не подошёл.

Взлом пароля, когда известны некоторые символы

Бывают ситуации, когда известны некоторые из символов пароля. Например, нам дан тот же самый хеш 53ab0dff8ecc7d5a18b4416d00568f02 и каким-то образом нам стало известно, что первыми тремя символами в пароле являются «hac». Тогда эти символы можно указать прямо в маске:

hac?l?l?l?l?l?l?l

Получается команда:

.\hashcat64.exe -m 0 -a 3 -i --increment-min=6 --increment-max=10 53ab0dff8ecc7d5a18b4416d00568f02 hac?l?l?l?l?l?l?l

Известные символы могут находится в любом месте маски – в начале, середине, конце; это могут быть одиночные символы или группы символов.

Пользовательские наборы символов Hashcat

Выше уже перечислены встроенные наборы символов, которых обычно бывает достаточно. Тем не менее, вы можете задать до четырёх своих собственных, пользовательских наборов.

Предположим, нам известно, что первыми тремя символами в пароле являются цифры, причём не все, а только цифры от 0 до 4, четвёртым символом являются только большие буквы, а пятым и шестым символом являются буквы от a до h, а также цифры от 5 до 9.

Если в маске для первых трёх символов мы укажем просто цифры, то будут перебраны также заведомо не подходящие кандидаты в пароли – содержащие в первых трёх позициях цифры, не входящие в диапазон от 0 до 4. Нужно стараться всячески исключить заведомо неподходящие пароли. Это можно сделать с помощью пользовательских наборов символов.

Всего доступно четыре пользовательских набора символов. Они задаются в опциях и обозначаются цифрами. Но в опциях перед цифрой ставится дефис (например, первый пользовательский набор -1), а в маске перед цифрой ставится знак вопроса (например, использование символов из первого пользовательского набора ?1).

Итак, для решения поставленной задачи начинаем с того, что в опциях задаём необходимое количество пользовательских набора. Эти наборы могут состоять из непосредственно перечисленных символов, также можно использовать встроенные наборы символов, например ?l или ?d или ?u (в любых комбинациях).

Первый пользовательский набор символов для нашей задачи (только цифры от 0 до 4):

-1 01234

Второй пользовательский набор символов (буквы от a до h, а также цифры от 5 до 9)

 -2 abcdefgh56789

Напомню – пользовательские наборы символов пишутся среди опций (т.е. до маски и до хеша).

Теперь создаём маску (первыми тремя символами в пароле являются цифры, причём не все, а только цифры от 0 до 4, четвёртым символом являются только большие буквы, а пятым и шестым символом являются буквы от a до h, а также цифры от 5 до 9):

?1?1?1?u?2?2

Разберём маску – первые три символа обозначены как ?1?1?1 (это единички, а не маленькая буква эль) – это символы из первого пользовательского набора. Далее идёт ?u – это встроенные набор символов, обозначающий только заглавные буквы. Последующие два символа обозначены как ?2?2 – это символы из второго пользовательского набора.

При указании пользовательских наборов можно использовать обозначения встроенных наборов символов, например:

-1 ?l?u

обозначает первый пользовательский набор, состоящий только из больших и маленьких латинских букв.

А

-1 ?l?u?d

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

Как уже было показано выше, в маске можно использовать пользовательские и встроенные наборы символов в любых комбинациях.

Как показать пароли (создать словарь) в Hashcat без запуска взлома

После создания сложных масок, особенно с использованием пользовательских наборов символов, хочется проверить, всё ли правильно мы сделали. Также, благодаря гибкости синтаксиса Hashcat её удобно использовать для генерации словарей по любым критериям.

Для того, чтобы только показать пароли без запуска взлома, используется опция --stdout. Эта опция требует -a 3 (режим атаки по маске). Поскольку взлом в этом случае не запускается, то не нужно указывать какие-либо хеши.

Пример генерации паролей для рассмотренной чуть выше задачи (известно, что первыми тремя символами в пароле являются цифры, причём не все, а только цифры от 0 до 4, четвёртым символом являются только большие буквы, а пятым и шестым символом являются буквы от a до h, а также цифры от 5 до 9):

.\hashcat64.exe --stdout -a 3 -1 01234 -2 abcdefgh56789 ?1?1?1?u?2?2

Поскольку паролей будет создано много (более полумиллиона), то вместо отображения на экране, их можно сохранить в файл. Для этого после основной команды нужно поставить символ > (означает перенаправление вывода в файл) и написать имя файла. Например, для сохранения всех паролей в файл lab1.dic, который будет создан в той же папке, где размещён исполнимый файл hashcat64.exe:

.\hashcat64.exe --stdout -a 3 -1 01234 -2 abcdefgh56789 ?1?1?1?u?2?2 > lab1.dic

Образцы хешей

В программу Hashcat встроена не только справка, но и примеры хешей. Они могут быть полезными, если у вас трудности с правильным написанием формата хешей.

Чтобы вывести сразу все примеры хешей, запустите программу с опцией --example-hashes:

.\hashcat64.exe --example-hashes

Можно посмотреть образец одного определённого хеша. К примеру, мне нужно узнать, как выглядит хеш для взлома пароля архива RAR5; тогда я перехожу на страницу справки программы https://kali.tools/?p=578 и ищу RAR5 (используйте CTRL+f). Нахожу, что номер данного хеша 13000; далее я запускаю программу с опцией --example-hashes и уже известной нам опцией -m (после которой указывается номер режима хеша)

.\hashcat64.exe --example-hashes -m 13000

Итак, для взлома паролей от архивов RAR5 хеш должен иметь вид:

$rar5$16$38466361001011015181344360681307$15$00000000000000000000000000000000$8$cc7a30583e62676a

Дополнительный материал для изучения Hashcat

В данной статье рассмотрены самые базовые концепции по работе с Hashcat, без понимания которых вряд ли получится запустить взлом пароля.

Для продолжения знакомства с программой рекомендуется к прочтению:

Вы уже знаете о факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

Рекомендуется Вам:

49 комментариев to Инструкция по hashcat: запуск и использование программы для взлома паролей

  1. Прохожий:

    Как организовать кластер из нескольких машин для брутфорса в хешкет?)

  2. aavveerr:

    хешкат можно запустить с того момента на котором остановился брут, если я закрою программу??

    • Alexey Alexey:

      Да, про это целая статья "Как в hashcat продолжить перебор с места остановки (сессии hashcat)".

      • aavveerr:

        О спасибо Алексей, разобрался.

        Если не затруднит вас, подскажите… Что означает функция "Blockchain, My Wallet" ? Как она работает? Вот есть образцы хешей… а как создать свой? Мне надо обязательно ставить ПИТОН что бы запустить office2hashcat.py и сконструировать свой хеш, или я могу через ВИНДОВС это сделать как то?

        • Alexey Alexey:

          Для Биткоин кошелька нужно использовать скрипт blockchain2john.py, он идёт в комплекте с JohnTheRipper. Т.е. скачайте его по ссылке или на Kali Linux / в BlackArch найдите этот скрипт:

          locate blockchain2john.py

          и запустите, указав в качестве аргумента файлы кошелька.

          Файл office2hashcat.py нужен для получения хеша для взлома пароля офисного документа. Да, для использования нужен Python. Наверно, если установить всё необходимое сгенерировать хеш можно и в Windows, но Python (и импортируемые библиотеки), нужны в любом случае. На мой взгляд, проще загрузится в Linux и там получить хеш.

  3. emel9:

    подскажите как написать маску если длина пароля 8 символов содержит заглавные буквы и цифры а то чегото догнать не могу если можно приведите пример

    • Alexey Alexey:

      Нам нужно создать пользовательский набор символов, который включает в себя большие латинские буквы и цифры. Первый пользовательский набор символов обозначается -1, большие латинские буквы обозначаются ?u, а цифры ?d.

      Получается, что первый пользовательский набор мы задаём следующим образом:

      -1 ?u?d

      Теперь нам нужно составить маску длиной в восемь символов, состоящую полностью из символов, включённых в первый пользовательский набор. Нужно помнить, что в маске вместо дефиса нужно использовать знак вопроса, то есть вместо -1 пишем ?1. И таким образом получаем маску:

      ?1?1?1?1?1?1?1?1

      Пример запуска атаки по заданным условиям:

      .\hashcat64.exe -m 0 -a 3 -1 ?u?d ХЕШ ?1?1?1?1?1?1?1?1
      
  4. Дмитрий:

    Доброго времени. Подскажите пожалуйста, в чем может быть дело? При запуске бенчмарка, появляется ошибка: ./hashcat.hctune: No such file or directory

    С чем это может быть связано? Пробовал запускать сразу брут, точно такая же ситуация. Перевод ошибки понимаю, но не понимаю, как это исправить.

    • Alexey Alexey:

      Как именно запускаете? Предварительно переходите в папку, куда распакована программа? Какой именно командой запускаете? Ну и тот самый вопрос — а файл hashcat.hctune в действительности есть?

  5. Nikolay:

    такой вопрос, какую версию hashcat  скачать БЕЗ OpenCL под вынь ?

    как собрать для линукс БЕЗ OpenCL? мне быстродействие особо не нужно, по словарю перебор 3-5 знаков в дополнение 2-3 часа хватает

    про параметр --force вкурсе, но почему то в линукс не срабатывает

  6. Аноним:

    ах да, и где найти старую утилиту cap2hccap , перекачал 3 версии, там везде под новый формат

    а мне бы старый

    • Alexey Alexey:

      Такой программы никогда не существовало в природе — сразу была добавлена cap2hccapx.

      В те времена (до Hashcat v3.6+ (HCCAPX)) переводили CAP в хеш с помощью aircrack-ng и опции -J

      aircrack-ng cleaned.cap -J cleaned

      Для предварительной очистки использовали wpaclean:

      wpaclean <out.cap> <in.cap>

      На HackWare.ru я уже обновил инструкцию, а на моём англоязычном сайте по прежнему старая, посмотрите, как это раньше было: https://miloserdov.org/?p=45

  7. rengi:

    Подскажите пожалуйста, как написать маску , если знаем что пароль от 8-10 символов, который содержит только 1 большую букву, 1 цифру , а все остальное маленькие буквы ..

    • Alexey Alexey:

      Я правильно понимаю, что это заглавная буква и цифра могут быть в любом месте пароля? То есть получаются скользящие символы.

      Задача очень интересная — заставила задуматься. Но другого решения, кроме экстенсивного, я не придумал. Единственная идея, это создать 218 масок (8*7 + 9*8 + 10*9), в каждой из которых заглавный символ и цифра находится в разных местах.

      Hashcat поддерживает файлы масок (.hcmask), то есть всё это добро можно разместить в одном файле. Про файлы масок информация здесь: https://hackware.ru/?p=283.

      Сами маски необязательно писать вручную — можно на каком-нибудь языке программирования автоматизировать этот процесс. Хотя по сравнению с временем, необходимым на брутфорс по этим условиям, относительные временные затраты на написание масок исчезающе малы.

  8. Александр:

    У меня такая проблема, Hashcat установил давно и пользовался им без проблем. Последние 4-5 месяцев не пользовался. Сейчас возникла необходимость, а программа не работает. Ввожу "-b" выскакивает

    "Benchmarking uses hand-optimized kernel code by default.
    You can use it in your cracking session by setting the -O option.
    Note: Using optimized kernel code limits the maximum supported password length.
    To disable the optimized kernel code in benchmark mode, use the -w option." 

    Поставил Hashcat 5.0.0, тоже самое. Операционку не менял и железо тоже, раньше все работало исключительно. А сейчас не понятно что происходит. Драйвера уже несколько раз переустонавливал. Этот "opencl_runtime_16.1.2_x64_setup" пишет об какой-то ошибке и не ставится, но когда я устанавливал hashcat изначально, полгода назад, я  opencl установил. Прошу помощи, уже измотался и не знаю куда ткнуть. Заранее благодарю.

    • Alexey Alexey:

      Это обычное информационное сообщение при каждом запуске. Если всё остальное работает, то не обращайте внимание.

      • Аноним:

        Alexey, 10-20 минут и ничего не происходит, ранее же информация показывалась. 

        • Alexey Alexey:

          Попробуйте запустить с опцией -D 1,2, то есть всё вместе -b -D 1,2

          Странно, что никаких ошибок нет. На скриншоте вы находитесь в Windows PowerShell, попробуйте перейти в обычную командную строку, для этого выполните прямо там

          cmd

          а затем опять запустите Hashcat — может быть там напишет ошибки.

          Ещё попробуйте добавить к команде ключ --force

          • Аноним:

            Без изменений…

            • Alexey Alexey:

              На скриншоте красным написано, что один экзепляр Hashcat уже запущен. Попробуйте перезагрузить Windows и снова запустить с -b -D 1,2

  9. Аноним:

    В общем ничего не работает, кроме --help.

  10. Александр:

    Я уже все это делал много раз. Вот очередной раз перезагрузился. Сообщений никаких нет, ну и все равно программа не работает.

  11. Аноним:

    Alexey, я проверил еще одно подозрение и отключил интернет и все работающие в фоне приложения (которые знаю), антивирус, acronis, кериш доктор, и попробывал запустить hashcat. При каждом запуске выскакивало сообщение об ошибке (на скриншоте). А о чем это?

    • Alexey Alexey:

      Не знаю — что-то совсем не так. Программа даже не доходит до своих процедур, которые показывают ошибки более высокого уровня.

      Файл программы не повреждён? Пробовали заново скачать с официального сайта?

      Можно попробовать поискать в интернете по фразам

      • Memory Could Not be Read Error
      • Память не может быть Read

      Кстати, а сколько оперативной памяти в системе? (Пишут, что ошибка может возникать в том числе из-за недостатка ОЗУ). Другие приложения работают нормально?

      • Аноним:

        Я уже писал ранее, что все началось с предыдущей версии, которая работала исключительно хорошо, а потом долго оставалась невостребованой. И вот сегодня запустил и на тебе…Ну я зашел на оф.сайт и скачал уже свежую версию.Попробую еще раз переустановить хотя я думаю это не причина.А памяти у меня оперативной 16 Гб., тоже не может быть причиной. Все приложения в норме. Странно что это сообщение выскакивает когда я отключился от сети и отключил 3 приложения. Может как-то связано с БИОС?

        • Alexey Alexey:

          Тогда совсем не знаю. Похожие ошибки, в принципе, видел у других программ, но очень давно. Идей нет. Как может быть связана с БИОСом не знаю.

          • Александр:

            Да, я не ошибся, это все крылось в БИОСЕ. Там есть переключатель обьединения дискретной и интегрированной графики и он был отключен, это видимо произошло когда я обновлял БИОС. И у меня еще есть просьба, можно ли мне как то увеличить скорость перебора, исходя из имеющегося железа. Я подразумеваю подключение для этого мощностей процессора. И мне почему то кажется, что где то я не догоняю что нужно включить и это у меня не работает. И как ваше мнение, судя по скриншоту, достаточная ли у меня скорость обработки?

            • Alexey Alexey:

              У меня точно такая же видеокарта smiley И цифры похожие.

              Попробуйте добавить опцию -D 1,2 — она включает и процессор и видеокарту. Если всё равно не будет задействован процессор, то добавьте ещё и опцию --force.

              Если понадобиться, опять попробуйте установить OpenCL Runtime for Intel Core — возможно, после внесённых изменений это удастся.

              UPD: только что прочитал на скриншоте - там написано, что сейчас драйвера OpenCL сломаны и нужно ждать их обновление - у меня на Linux эта же самая надпись и не получается использовать центральный процессор.

               

  12. Аноним:

    Большое спасибо за поддержку и за внимание! А эти опции -D 1,2 и --force в каком порядке ставятся, после -m 2500 и после -a 3 или между?

    • Alexey Alexey:

      Опции (которые начинаются с одного или двух дефисов) можно ставить в любом порядке — разницы нет.

  13. Pavel:

    Добрый день!

    Подскажите плз, есть архив zip с паролем, есть его хэш типа sha-256. 

    Надо узнать ключ от архива zip. Знаю что в пароле только цифры. Запускаю подбор по маске  - пишет Exhausted.

    • Alexey Alexey:

      В смысле хеш sha-256? То есть вы вычислили контрольную сумму и из этой контрольной суммы хотите извлечь пароль? Это троллинг или вы действительно до такой степени в этом не разбираетесь? Чтобы было понятно: это как пустая обёртка от шоколадки и вы спрашиваете, как извлечь из этой пустой обёртки шоколадку, ведь на обёртке написано «Шоколадка» - значит там должна быть шоколадка. Примерно такой же уровень понимания ситуации…

      «Хеш» для взлома паролей называется «хешем» из-за того, что представляет собой длинную непонятную строку, внешне напоминающую результат работы функции по вычислению хеш суммы. На самом деле, это особым образом извлечённые и структурированные данные, не имеющие никакого отношения к «обычным хешам», то есть к контрольным суммам, например, той же самой sha-256.

      Для формирования хеша, предназначенного для восстановления пароля, используются специальные утилиты. Примеры смотрите в этой статье.

  14. Clone:

    Привет. Запускаю Hashcat последнюю версию на WIndows, требуется перебор MD5, выходит ошибка hashcat no such file or directory. 

    Нужна помощь -)

    • Alexey Alexey:

      Перевод ошибки: «нет такого файла или каталога» - ошиблись при написании имени файла или не перешли в папку, где этот файл.

  15. Timbulimbu:

    Здравствуйте, помогите пожалуйста.  Не могу запустить Hashcat на видеокарте. 

    GTX7010 драйвер версия 417,35.  OpenCL 18,1. центральнй процессор cire i3 4 ядра 3,6 ггц.

    при запуске команды

    hashcat64.exe -b --force -D1,2 

    работает только центральый процессор.

    • Alexey Alexey:

      Приветствую! GTX 7010? Я что-то даже в Гугле ничего не нашёл про эту карту.

      Запустите hashcat с опцией -I и напишите, что будет выведено (или сделайте скриншот).

  16. Timbulimbu:

    Спасибо. проблема с драйверами была. и порядке установки. сперва OpenCL затем графический драйвер.

    и еще возможно настройки UEFI(BIOS). выставил все поддержки касаемых видео.

  17. Sergey:

    Алексей, добрый  день! подскажите, есть хэш мд5 , точно знаем маску  73611425.20. и что после точки 16 цифр,  73611425.20.?d?d?d?d?d?d?d?d?d?d?d?d?d?d?d?d верна ли маска? есть ли альтернатива ?

    применил команду --force -D 2, но очень долго, подскажите, возможное примерное время на современных аппаратах.

    заранее спасибо

  18. 1:

    Доброго времени суток. Подскажите как можно быстро расшифровать md5 зная первые 8 чисел. 

    Например md5 20269436fe05c3115fbd064bb22e8c0d . исходный текст 66629664.67.8828773676667257 , изначально знаем 66629664. По факту важно только значение между точками ( 67 ), но число может быть от 0 до 100.

    • Аноним:

      Не парься, не взломаешь ты гидру. 

      Чтобы узнать значение рулетки, тебе нужно около 10 000 компов как минимум с 2 видеокартами GTX 1070 так что гуляй

    • Макс:

      И да, ты еще не сможешь зайти на все эти 10 000 компов чтобы одновременно запустить перебор, а даже если и запустишь то время рулетки уже истечет. 

  19. Иван:

    при попытке запустить мне пишет вот это hash hash file hccap file dictionary mask, что это?

    драйвера 417 гтх 1050 путь к файлу такой

      c:\Users\user>  C:\Users\User\Desktop\tt\hashcat-5.1.0\hashcat64.exe

  20. Иван:

    при попытке запустить мне пишет вот это hash hash file hccap file dictionary mask, что это?

    драйвера 417 гтх 1050 путь к файлу такой

      c:\Users\user>  C:\Users\User\Desktop\tt\hashcat-5.1.0\hashcat64.exe

  21. Valeriy:

    Добрый вечер.Для hashcat не могу установить драйвер графики Intel® для Windows® 10 Версия: DCH 25.20.100.6519 Процессор Intel® Core™ i5-7300HQ.Пишет система не удовлетворяет минимальным требованиям.Подскажите пожалуйста выход.Спасибо

  22. Valeriy:

    При запуске benchmark определяет только  один девайс-Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz, 2036/8144 MB allocatable, 4MCU.Установил opencl_runtime_18.1_x64,видео карта Nvidia Geforce GTX 1060.Скорость перебора очень низкая без видеоадаптера.Заранее спасибо

  23. Руслан:

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

    Пример:1njh553m/.2-=1

     

    тоесть что бы он начал перебебирать начиная с одного символа и до 10 предположим. Но что бы ипользовалсиь как латинские буквы так цифры и спец символы

Добавить комментарий

Ваш e-mail не будет опубликован.