Обзор Hashcat

Обзор Hashcat

https://t.me/Torchik_Ru

Доброго времени суток, господа. Сегодня на повестке дня у нас статья про Hashcat в Kali Linux.

Hashcat

Hashcat, как скромно замечают сами авторы, это самый быстрый инструмент по восстановлению паролей, использующий графический процессор. Программа бесплатна, хотя она содержит проприетарную кодовую базу. Доступны версии для Linux, OSX и Windows, есть варианты для использования центрального вычислительного процессора и для использования графического процессора. Hashcat в настоящее время поддерживает огромное количество алгоритмов хеширования, включая Microsoft LM Hashes, MD4, MD5, семейство SHA, форматы Unix Crypt, MySQL, Cisco PIX и многие другие (их там сотни). Hashcat популярна, т. к. много раз попадала с сводки новостей благодаря оптимизации и недостаткам в алгоритмах, которые были открыты её создателем, а затем эксплуатировались в дальнейших выпусках hashcat (например, недостаток в схеме хеширования 1Password).

Типы атак Hashcat

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

  • Атака брут-форсом (перебором)
  • Комбинаторная атака
  • Атака по словарю
  • Атака по отпечаткам
  • Гибридная атака
  • Атака по маске
  • Перестановочная атака
  • Атака основанная на правиле
  • Табличная атака
  • Атака с переключением раскладки

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

Варианты Hashcat

Hashcat поставляется в двух вариантах:

  • Hashcat – Инструмент по восстановлению использующий центральный процессор
  • oclHashcat – Инструмент использующий графический процессор

Многие алгоритмы, поддерживаемые Hashcat, могут быть взломаны в более короткое время, при использовании хорошо документированных возможностей GPU. Для этого и предназначена программа oclHashcat, при её использовании достигается значительный прирост в таких алгоритмах как MD5, SHA1 и других. Тем не менее, не все алгоритмы могут быть ускорены использованием GPU. Bcrypt — хороший этому пример. Из-за таких факторов как ветвление зависимостей данных, сериализация и память (упомянуты только некоторые), oclHashcat не является всеобъемлющей заменой для Hashcat. Hashcat доступна для Linux, OSX и Windows. oclHashcat доступна для Linux и Windows из-за неправильной реализации OpenCL на OSX.

Мои настройки

На машине с Kali Linux у меня графическая карта Radeon HD 7870M Series, и я буду использовать словарь rockyou в большинстве упражнений. В этой заметке я покажу пошаговый взлом паролей WPA2 WPA с Hashcat (файлов рукопожатий — .cap- файлов) с помощью cudaHashcat или oclHashcat или Hashcat на Kali Linux. Я буду использовать команду oclHashcat, т. к. я использую AMD GPU. Если вы используете NVIDIA GPU, то для вас cudahashcat. Для включения взлома видеокартой, вам нужно установить или CUDA для видеокарты NVIDIA или fglrx для AMD. Как это сделать было рассказано в предыдущих постах.

Пользователи NVIDIA:

Пользователи AMD:

Зачем использовать Hashcat для взлома файлов рукопожатий WPA WPA2

Pyrit самый быстрый, когда нам нужно взломать файлы рукопожатий WPA2 WPA. Так почему мы используем Hashcat для взлома файлов рукопожатий WPA2 WPA?

Потому что мы можем?

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

Hashcat позволяет нам использовать следующие встроенные наборы символов для атаки на файл рукопожатия WPA2 WPA.

Встроенные наборы символов

?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?s = !”#$%&'()*+,-./:;⇔?@[\]^_`{|}~
?a = ?l?u?d?s
?b = 0x00 - 0xff

Цифровые пароли

Допустим, ваш пароль 12345678. Вы можете использовать пользовательскую МАСКУ вроде такой

?d?d?d?d?d?d?d?d

Это означает, что мы пробуем сломать пароль из восьми цифр вроде 12345678 или 23456789 или 01567891. Уверен, вы уловили смысл.

Буквенный пароль — все заглавные буквы

Если ваш пароль набран капсом, вроде ABCFEFGH или LKHJHIOP или ZBTGYHQS и т. д., тогда вы можете использовать следующую МАСКУ:

?u?u?u?u?u?u?u?u

Она будет взламывать все пароли из восьми заглавных букв.

Буквенный пароль — все строчные буквы

Если ваш пароль набран строчными буквами, вроде: abcdefgh или dfghpoiu или bnmiopty и т. д., тогда вы можете использовать следующую МАСКУ:

?l?l?l?l?l?l?l?l

Она будет взламывать все пароли из восьми строчных букв. Думаю, и это тоже понятно.

Пароль — буквы нижнего регистра и цифры

Если вы знаете, что пароль наподобие a1b2c3d4 или p9o8i7u6 или n4j2k5l6 и т. д. (буквы и цифры чередуются), тогда вы можете использовать следующую МАСКУ:

?l?d?l?d?l?d?l?d

Пароль — заглавные буквы и цифры

Если вы знаете, что пароль вроде такого A1B2C3D4 или P9O8I7U6 или N4J2K5L6 и т. д. (буквы и цифры чередуются), тогда вы можете использовать следующую МАСКУ:

?u?d?u?d?u?d?u?d

Пароли — смесь из заглавных, строчных букв, цифр и специальных символов

Если ваш пароль исключительно случайный, тогда вы можете просто использовать МАСКУ вроде этой:

?a?a?a?a?a?a?a?a

Обратите внимание: ?a символизирует что угодно... Надеюсь, идея понятна. Чем меньше известно о пароле, тем дольше срок его подбора. Использование атаки по словарю может значительно увеличить шанс успеха.

Пароль — когда вы знаете некоторые символы

Если вы каким-то образом знаете несколько символов в пароле, то дела будут двигаться намного быстрее. Каждая известная буква сохранит огромное количество компьютерного времени. МАСКИ можно использовать совместно. Давайте предположим, что нам нужно подобрать пароль из восьми символов, который начинается с abc, не содержит каких-либо специальных символов. Тогда вы можете создать МАСКИ вроде таких:

abc?l?l?l?l?l
abc?u?u?u?u?u
abc?d?d?d?d?d
abc?l?u??d??d?l
abc?d?d?l?u?l

Кто-то посчитал, что получится 125 комбинаций для такого случая. Их использование значительно сократит время на подбор пароля. В этом и есть настоящая сила cudaHashcat или oclHashcat или Hashcat на Kali Linux для взлома WPA2 WPA паролей. Но не нужно бояться запутаться в этих масках, в нашем распоряжении такой мощный инструмент как пользовательские наборы символов. О них чуть ниже. Вы можете ещё более ускорить процесс, если вы знаете, что лицо, чей пароль вы разгадываете, использует только ЗАГЛАВНЫЕ буквы в начале пароля, несколько строчных букв и заканчивает цифрами.

Например так: Abcde123.

Ваша маска будет:

?u?l?l?l?l?d?d?d

Взлом произойдёт значительно быстрее.

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

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

Синтаксис этих параметров следующий:

--custom-charset1=CS
--custom-charset2=CS
--custom-charset3=CS
--custom-charset4=CS

Где CS — это и есть пользовательский набор символов. CS можно задавать как перебором символов, встроенными наборами символов и т. д. Чуть ниже будут примеры, которые помогут разобраться, если не совсем понятно.

У этих параметров командной строки есть и короткие аналоги: -1, -2, -3 и -4. Их можно использовать прямо в командной строке и в так называемых файлах пользовательских наборов символов hashcat (обычный текстовый файл с расширением .hcchr, который содержит символы/цифры, которые будут использоваться в первой строке файла).

Посмотрите эти примеры:

Примеры

Каждая следующая команда определяет одинаковый пользовательский набор символов, который состоит из следующих символов “abcdefghijklmnopqrstuvwxyz0123456789” (aka “lalpha-numeric”):

-1 abcdefghijklmnopqrstuvwxyz0123456789
-1 abcdefghijklmnopqrstuvwxyz?d
-1 ?l0123456789
-1 ?l?d
-1 loweralpha_numeric.hcchr # это файл, который содержит все цифры + символы (abcdefghijklmnopqrstuvwxyz0123456789)

Следующая команда задаёт набор символов, в который вохдят “0123456789abcdef”:

-1 ?dabcdef

Следующая команда задаёт полный набор 7-битных символов ascii charset (aka “mixalpha-numeric-all-space”):

-1 ?l?d?s?u

Следующая команда устанавливает в качестве первого пользовательского набора (-1) символы, специфичные для русского языка:

-1 charsets/special/Russian/ru_ISO-8859-5-special.hcchr

На Kali Linux посмотреть все доступные файлы пользовательских наборов символов .hcchr для разных языков можно командами:

tree /usr/share/maskprocessor/charsets/

Или так:

tree /usr/share/hashcat/charsets/

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

Задаём пользовательский набор, который включает все большие и маленькие буквы, а также цифры:

-1 ?l?d?u

Подставляем наш пользовательский набор в МАСКУ:

abc?1?1?1?1?1

Report Page