• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Статья Взлом паролей WPA2/WPA с помощью Hashcat в Kali Linux (атака перебором Wi-Fi паролей по маске)

Если у вас какие-либо проблемы с беспроводными устройствами, то следует ознакомиться со статьёй «Лучшие совместимые с Kali Linux USB Wi-Fi адаптеры».

Недавно просматривал темы на форуме Античат. При беглом осмотре самой живой мне показалась одна тема — тема о взломе Wi-Fi сетей. Причём довольно часто там попадаются сообщения с просьбами сгенерировать пароли по маске. Кто-то это делает, потом запрашивающий выкачивает эту базу. Базы могут быть и в 20 Гб… Впоследствии эта сгенерированная база паролей используется для перебора (взлома).

По моему мнению, это очень точный пример мартышкиного труда, вызванного незнанием довольно простых вещей, давным-давно реализованных (и не только в Hashcat). Для ликвидации этого пробела в знаниях и предназначена эта статья. За основу взята статья с сайта Блэкмора. Но она: 1) дополнена; 2) исправлена (судя по всему, Блэкмор не смог осилить пользовательские наборы символов — я в своей статье этот пробел устраняю). Лучше него никто не может растянуть на семь листов то, что можно описать в нескольких строчках команд. ))

Ах да, если вам всё-таки нужно сгененировать пароли по маске, то это может сделать команда maskprocessor.

Hashcat (cudaHashcat или oclHashcat) на Kali Linux дают возможность расшифровать (взломать) пароль WPA2 WPA. Hashcat атакует файлы рукопожатий — .cap файлы. Есть только одно ограничение — нужно конвертировать файл .cap в файл формата .hccap. Но это не трудно.

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 1.1.0a у меня графическая карта 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
Не знаю, хорошо ли вам видно, но там используются цифра 1. Буква l не используется.

Ну хватит про МАСКи. Захватывать файлы рукопожатий (хэндшейки) можно разными программами. Об одном из методов было, например, рассказано в предыдущей инструкции о взломе Wifi WPA2 WPA паролей с использованием pyrit и cowpatty в Kali Linux. Будем считать, что файлы рукопожатий у вас уже есть или вы знаете как их раздобыть.

Очистка ваших файлов .cap программой wpaclean

Следующим шагом мы конвертируем файл .cap в формат, который будет понятен Hashcat (cudaHashcat или oclHashcat).

Для ручной конвертации .cap используйте следующую команду в Kali Linux.
Код:
wpaclean <out.cap> <in.cap>[/ICODE]
Обратите внимание, что, вопреки логике, сначала идёт выходной файл, а потом входной <out.cap> <in.cap>. Казалось бы, логичнее было <in.cap> <out.cap>. Обратите на это внимание, чтобы не терять время на выяснение проблемы.

В моём случае команда выглядит так:
[CODE]wpaclean hs/out.cap hs/Narasu_3E-83-E7-E9-2B-8D.cap
Конвертация файлов .cap в формат .hccap

Нам нужно конвертировать этот файл в формат, понятный Hashcat (cudaHashcat или oclHashcat).

Для его конвертирования в формат .hccap с помощью “aircrack-ng” нам нужно использовать опцию -J
Код:
aircrack-ng <out.cap> -J <out.hccap>
Обратите внимание -J это заглавная J а не маленькая j.

В моём случае команда следующая:
Код:
aircrack-ng hs/out.cap -J hs/out
Взлом WPA2 WPA рукопожатий с Hashcat

Hashcat (cudaHashcat или oclHashcat) очень гибкие. Я охвачу только два наиболее общих и базовых сценария:
  • Атака по словарю
  • Атака по маске
Атака по словарю

Раздобудьте какие-нибудь словари, вроде Rockyou.Прочитайте эту заметку для детальных инструкций о том как получить файл словаря, отсортировать/очистить и т.д.

Для начала нам нужно узнать, какой режим использовать для файла хендшейка WPA2 WPA. Этот вопрос раскрыт в полной мере в статье «Взлом хешей паролей MD5, phpBB, MySQL и SHA1 с помощью Hashcat в Kali Linux». Здесь только краткое изложение:
Код:
hashcat --help | grep WPA
Т.е. это 2500.

Мы используем следующую команду для старта процесса взлома:
Код:
hashcat -m 2500 /root/hs/out.hccap /root/rockyou.txt
Команда может отличаться. Например, я использую следующий вариант:
Код:
oclHashcat --force -m 2500 /root/hs/out.hccap /root/rockyou.txt
Поскольку я установил oclHashcat.

У тех, кто установил cudaHashcat, команда выглядить так:
Код:
cudaHashcat -m 2500 /root/hs/out.hccap /root/rockyou.txt
У меня всё получилось быстро, поскольку пароль для беспроводной ТД был простым. Это заняло секунды. В зависимости от размера словаря, процесс может занять довольно много времени.

Не забываем, что если использовать атаку по словарю, то Pyrit будет намного-намного быстрее чем любая из троицы cudaHashcat или oclHashcat или Hashcat.

Про атаку по словарю уже рассказано, не будем повторяться. Если пропустили, то читайте «Взлом хешей паролей MD5, phpBB, MySQL и SHA1 с помощью Hashcat в Kali Linux» там тема атаки по словарю раскрыта в полной мере.

Атака методом перебора — брутфорс

Теперь главная часть этой инструкции. Использование атаки методом перебора по МАСКе.

Для взлома файла рукопожатия WPA WPA2 с Hashcat (cudaHashcat или oclHashcat) используйте следующую команду:
Код:
hashcat -m 2500 -a 3 capture.hccap ?d?d?d?d?d?d?d?d
  • Где -m = 2500 означает атаку на файл рукопожатия WPA2 WPA.
  • -a = 3 означает использование брутфорса (она совместима с атакой по маске).
  • capture.hccap = Наш конфертированный файл .cap. Мы сгенерировали его программами wpaclean и aircrack-ng.
  • ?d?d?d?d?d?d?d?d = Это наша маска, где d = цифра. Это означает, что пароль полностью состоит из цифр, например, 78964352 или 12345678 и т.д.
Я сделал маску под свою задачу, чтобы ускорить процесс. Вы можете создавать ваши собственные маски подобным образом, как объяснено выше. Если планируется использовать МАСКу многократно, то своё драгоценное творение можно сохранить в файл. Назовём его, к примеру codeby-1.hcmask. Поместить его можно к остальным маскам.

/usr/share/oclhashcat/masks/codeby-1.hcmask.

Кстати, посмотреть дефолтныей файлы МАСОК, поставляемых с oclHashcat можно здесь:

ls /usr/share/oclhashcat/masks/
Когда я вновь захочу использовать созданную мной маску, то команда будет примерно следующая:
Код:
cudahashcat -m 2500 -a 3 /root/hs/out.hccap /usr/share/oclhashcat/masks/codeby-1.hcmask
Пример файлов .hcmask file

Вы можете проверить содержимое файла образца .hcmask следующей командой:
Код:
tail -10 /usr/share/oclhashcat/masks/8char-1l-1u-1d-1s-compliant.hcmask
Эти файлы образцов можно использовать в оригинальном виде с Hashcat (cudaHashcat или oclHashcat) или отредактировать под свои нужды.

Расположение взломанных паролей

Hashcat (cudaHashcat или oclHashcat) сохраняет все раскрытые пароли в файл. Вы найдёте его в той же рабочей директории, где вы запустили Hashcat. В моём случае я запускал все команды из моей домашней директории, т. е. в /root.
Код:
cat hashcat.pot
Заключение

Мы рассмотрели все основные приёмы перебора паролей по маске. Тем не менее, отсылаю вас к официальному сайту hashcat.net, к его вики и инструкциям. Там вы найдёте дополнительную информацию.

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

Информацию о них вы найдёте на официальном сайте (на английском языке), либо в инструкциях на codeby.net. Заходите почаще, чтобы не пропустить ничего интересного!
 

Сергей Попов

Кодебай
30.12.2015
4 693
6 589
BIT
348
ВАЛЕРК
18.06.2015 в 10:30
Спасибо вам за ваши статьи,все очень доходчиво написано,как раз недавно заинтересовался этим вопросом.

АНДРЕЙ
04.08.2015 в 12:49
хотелось бы подробную статью как это зделат на windows

L@NSVANS
24.10.2017 в 08:01
Не нужно вам это на винде. Скачайте кали, запишите на флешку или в виртуалку. Сэкономите себе массу времени. Не нужно боятся линукса.

АНДРЕЙ
04.08.2015 в 13:05
вот статья на вышеупомянутом форуме

KREIZ
30.08.2015 в 13:30
есть вопрос.
отступление:
в hascat версии 0.49 при атаке по маске ?a?a?a?a?a?a?a?a?a?a, перебор начинается с однозначных комбинаций, потом переходит на двухзначные и так далее, о чем говорится в строке статуса. Тоесть не зная конечной длинны пароля,можно выставить маску максимальной длины и, рано или поздно, до него добраться. (или я ошибаюсь?)

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

Теперь вопрос: есть ли какой-нибудь универсальный способ заставить hashcat работать соответственно логике v0.49 и, при этом, начинать перебор с n-значной комбинации? При атаке на WPA очень долго и неудобно ждать, пока он пройдет первые семь кругов.

WEBWARE TEAM
30.08.2015 в 14:36
Можно, есть режим приращения:
Код:
  -i,  --increment                     Включить режим приращения
       --increment-min=ЦИФРА           Начать приращение с ЦИФРЫ
       --increment-max=ЦИФРА           Закончить приращение на ЦИФРЕ

KREIZ
30.08.2015 в 15:15
спасибо. это для v0.50 а для v.049
Код:
       --pw-min=NUM                  Password-length minimum
       --pw-max=NUM                  Password-length maximum

KREIZ
09.12.2015 в 12:41
Еще вопрос возник у меня. Я правильно понимаю, что если задать маску ?l?d?l?d?l?d?l?d, то при подборе под каждый нечетный знак будет подставляться буква а под четный цифра? если вот к примеру известно, что в буквенном пароле в произвольном месте стоит цифра — как задавать маску? ну чтобы что-то вроде ?a , только чтобы ограничивались строчные буквы и цифры без всех остальных символов. И как комбинировать другие типы символов?

KREIZ
09.12.2015 в 13:09
да и вот еще: cudaHashcat нагружает только графическое ядро, я процессор простаивает. так и должно быть или же нужно еще что-то сделать, чтобы задействовать и процессор и видео одновременно?

СЕРГЕЙ
24.04.2016 в 23:27
Здравствуйте, помогите пожалуйста с проблемой.
Уже весь инет перерыл и наш и забугорный, очень мало информации( практически нет)
о том как быть если необходимо подобрать пароль для учетной записи windows если пароль состоит из русских букв.
Hashcat словари с русскими буквами внутри не ест (ест но не правильно)
Пробовал словари делать в кодировках Iso-8859-5 и cp1251, не помогло.
Объясните как быть с пользовательскими наборами?? как их подключить?? Полностью пример стоки напишите пожалуйста, типа: hashcat -m 1000 -a 0 hash.txt (вот здесь должен быть польз.набор?,КАК ЕГО УКАЗАТЬ) -o winpass.txt -1 rus.hcchr указывал не ест.
 
  • Нравится
Реакции: murzik-murz
A

am29f010b

Статья устаревшая (возможно где-то есть заметка, что это перенос статьи из блога?)
Кали Линукс 1, oclhashcat...
Не знаю о каком Блэкморе идет речь, явно конкурент, но не о рок музыканте.

Hashcat хорош, но вот в чем дело: есть и JohnTheRipper.
JtR умеет ломать gpg/pgp ключи или local code Telegram, а Hashcat не умеет, но умеет ломать Veracrypt и Скайп, чего JtR не умеет. И они друг за другом наблюдают, и в своих экспериментах так же друг на друга ссылаются.
Есть еще некоторые прикольные исторические сведения, в которых Казу Ямомото помог им всем.
 
A

am29f010b

Посмотрите пожалуйста год комментариев под статьей.
В первом посте "статья" (вижу дату сегодня). Неплохо бы в конце статьи написать что о чем.
Ниже идут какие-то комменты. от 15-18 год.
Но Ричи Блэкмор уже давно первоначальный состав сменил.
 
  • Нравится
Реакции: Сергей Попов

Xulinam

Grey Team
02.03.2017
1 015
240
BIT
62
hashcat в настоящие время использует формат .hccapx и конвертируеться программой cap2hccapx.
 
A

am29f010b

Не только, вышел ПРО пак, который для Hashcat и JTR конвертировать умеет, аналог x2y. Но не суть.
 

sulla

Green Team
11.01.2018
45
22
BIT
7
Не знаю о каком Блэкморе идет речь, явно конкурент, но не о рок музыканте.
Знаменитый Блэкмор, когда еще не было codebi.net, только он мог помочь установить, например пропроетарные драйвера.

 
19.12.2019
19
0
BIT
0
Здравствуйте.
Разобрался с хэшкет более-менее на латинице и цифрах. Всё отлично, но не понимаю как быть с паролями на кириллице.. вроде и на hackware.r# почитал.. там как-то нужно путь указать к пользовательской кодировке (кои 8), которая уже есть в дистрибутиве - -1 charsets/special/Russian/ru_ISO-8859-5-special.hcchr

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

вот его хеш
f4091876df6a5d39e6690b7395a95399

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

Вложения

  • Снимок.JPG
    Снимок.JPG
    158,3 КБ · Просмотры: 1 237
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!