✍️ Статья Как использовать радужные таблицы для взлома паролей Wi-Fi в Hashcat и John the Ripper. Часть 1

The 146X Project Dublikat Web Studio Avram Lincoln AL Service Navigator Knyaz

BlackPope

Команда форума
Модератор DeepWeb ✔️
PR-Group DeepWeb 🔷
Регистрация
27.04.2020
Сообщения
230
Радужные таблицы — это предварительно рассчитанные хеши, которые используются для очень быстрого восстановления паролей из добытого хеша. Они представляют собой базы данных, в которых паролю соответствует вычисленный хеш.

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

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

Соль — это дополнительные уникальные данные, которые добавляются к паролю. В результате радужные таблицы становятся непригодными. Соль не является секретной, может храниться в открытом виде. Это не мешает ей делать непригодными радужные таблицы.

Итерация — это многократное хеширование, то есть когда полученные в результате хеширования данные хэшируются ещё раз и так много раз (сотни или десятки тысяч итераций не редкость).

Итак, что по поводу радужных таблиц для взлома Wi-Fi паролей? Дело в том, что это изначально алгоритм с солью — роль соли выполняет название точки доступа. То есть можно рассчитать радужную таблицу, но она будет пригодна только для точки доступа с определённым названием.

Какие преимущества использования радужных таблиц для брут-форса Wi-Fi?

Вычисление радужных таблиц занимает ровно столько же времени сколько и брут-форс. Но поиск по созданной радужной таблице занимает доли секунды. Отсюда следствие: если вы хотите проверить одно рукопожатие для Точки Доступа, то разницы между брут-форсом и использованием радужных таблиц нет.

Но всё меняется, если вы хотите проверить два и более рукопожатия для одной точки доступа. В этом случае вы можете проверить любое количество рукопожатий, затратив время как на одно. А это (проверка нескольких рукопожатий для одной ТД) не лишено смысла, ведь рукопожатия могут быть бракованными (составленными из нескольких), в результате не получится взломать пароль, даже если правильный пароль был проверен для такого бракованного рукопожатия.

Как уже было сказано, поиск по радужной таблице выполняется очень быстро и не требует серьёзных вычислительных ресурсов. То есть если вам нужно взломать Точку Доступа с известным именем, то вы можете предварительно рассчитать радужную таблицу для неё на мощном компьютере. А захватить и проверить по радужной таблице рукопожатие вы можете на маломощном (миниатюрном) оборудовании.

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

Виды радужных таблиц Wi-Fi. Состав радужных таблиц для взлома Wi-Fi

Главным элементом радужных таблиц для взлома Wi-Fi являются plainmasterkeys. Для их вычисления нужно название ТД (ESSID) и кандидат в пароли. Но: из plainmasterkeys невозможно извлечь пароль, с помощью которого он был вычислен (только если брут-форсом). Поэтому кроме plainmasterkeys в базе данных должны быть также исходные пароли.

Как именно это «оформить» программы решают по-своему. Среди знаменитых программ, которые уже давно используют радужные таблицы для взлома Wi-Fi, это Pyrit и coWPAtty. Причём Pyrit может использовать мощность видеокарты для выполнения вычислений, поэтому раньше справедливо назывался самым быстрым взломщиком Wi-Fi паролей. У Pyrit и coWPAtty разные форматы баз данных. Поскольку в настоящее время эти программы не очень актуальны, не будем на них останавливаться.

В настоящее время актуальными программами, которые могут использовать радужные таблицы для взлома Wi-Fi, являются Hashcat и John the Ripper. Обе эти программы могут использовать видеокарты. Но суть в том, что это неважно — эти программы только проверяют хеш перехваченного рукопожатия по радужной таблице. А саму радужную таблицу нужно создавать с помощью сторонней программы.

Hashcat и John the Ripper в качестве радужной таблицы принимают простой список plainmasterkeys, не содержащий соответствующих каждому PMK паролей! Запомним это…

Программа для генерации радужной таблицы Wi-Fi

Радужные таблицы Wi-Fi может создавать программа wlangenpmkocl из пакета hcxkeys.

Пакет hcxkeys включает две утилиты:
  • wlangenpmk — генерирует plainmasterkeys (используя CPU) из essid и пароля для использования в hashcat (с режимом хеша 2501) или в John the Ripper (тип хеша wpapsk-pmk)
  • wlangenpmkocl — генерирует plainmasterkeys (используя GPU) из essid и пароля для использования в hashcat (с режимом хеша 2501) или в John the Ripper (тип хеша wpapsk-pmk)
То есть разница между ними только в том, что wlangenpmkocl использует видеокарту, а wlangenpmk использует центральный процессор. Конечно же, предпочтительнее использовать версию для видеокарты (то есть wlangenpmkocl). Версия wlangenpmk только для крайних ситуаций — у вас нет дискретной видеокарты или вы не можете установить её драйвер для полноценной поддержки OpenCL

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

Чтобы использовать wlangenpmkocl, установите драйверы для видеокарты.

Установка в Kali Linux

sudo apt install openssl opencl-headers git # это необязательно, только если у вас какие-то проблемы
git clone https://github.com/ZerBea/hcxkeys
cd hcxkeys/
make
sudo make install


Если при выполнении команды make выведены следующие сообщения:

gcc -O3 -Wall -Wextra -std=gnu99 -DVERSION_TAG=\"6.0.0-2-gcc4549f\" -DVERSION_YEAR=\"2020\" -o wlangenpmk wlangenpmk.c -lcrypto
gcc -O3 -Wall -Wextra -std=gnu99 -DVERSION_TAG=\"6.0.0-2-gcc4549f\" -DVERSION_YEAR=\"2020\" -o wlangenpmkocl wlangenpmkocl.c -lcrypto -lOpenCL
In file included from /usr/include/CL/cl.h:20,
from wlangenpmkocl.c:26:
/usr/include/CL/cl_version.h:22:9: note: ‘#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)’
22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^~~~~~~
gcc -O3 -Wall -Wextra -std=gnu99 -DVERSION_TAG=\"6.0.0-2-gcc4549f\" -DVERSION_YEAR=\"2020\" -o pwhash pwhash.c -lcrypto


то это не ошибки — это информация. Компиляция всё равно должна завершиться успешно и можно продолжать.

Установка в BlackArch

sudo pacman -S hcxkeys

Как создать радужную таблицу для взлома в Hashcat или John the Ripper

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

К примеру, у меня есть захваченное рукопожатие, название ТД в нём можно посмотреть множеством способов, я воспользуюсь командой aircrack-ng:

aircrack-ng RT-WiFi_96.pcap

WARpfVI5BdM.jpg


Название показано в столбце ESSID, в моём случае это RT-WiFi_96.

Теперь нам нужно посмотреть номер устройства (видеокарты), которые мы укажем для использования в wlangenpmkocl. Если вы будете использовать wlangenpmk, то пропустите этот шаг.

Для вывода список OpenCL устройств используйте опцию -l:

wlangenpmkocl -l


IwLERPMrUo4.jpg


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

Intel(R) Gen9 HD Graphics NEO, OpenCL C 2.0 для этого устройства используйте опции -P 0 -D 0
GeForce GTX 1050 Ti, OpenCL C 1.2 для этого устройства используйте опции -P 1 -D 0
pthread-Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz, OpenCL C 1.2 pocl для этого устройства используйте опции -P 2 -D 0


Конечно же, я буду использовать GeForce GTX 1050 Ti, из представленного списка она самая мощная.

Теперь нужно запустить команду вида:

wlangenpmkocl -e ИМЯ-ТД -i СЛОВАРЬ ОПЦИИ-УСТРОЙСТВА -a ФАЙЛ-ВЫВОДА-PMK

Итак, имя ТД (ESSID) в моём случае RT-WiFi_96, имя словаря rockyou_cleaned.txt, опции выбора устройства OpenCL -P 1 -D 0 и вычисленные plainmasterkeys я хочу сохранить в файл pmk.txt, тогда команда следующая:

wlangenpmkocl -e RT-WiFi_96 -i rockyou_cleaned.txt -P 1 -D 0 -a pmk.txt

Для wlangenpmk всё точно также, но ну нужно использовать опции -P и -D.

Скорость генерации около 100 тысяч хешей в секунду.

x8-0657E-zQ.jpg


ВНИМАНИЕ: если в файле «ФАЙЛ-ВЫВОДА-PMK» уже есть строки, то файл будет дополнен, а не перезаписан!

Как в Hashcat использовать радужные таблицы для взлома Wi-Fi

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

То есть мы будем работать с хешами двух типов: PMK и хеш рукопожатия. Значения PMK должны указываться в качестве кандидатов в пароли.

Теперь с помощью программы cap2hccapx из пакета hashcat-utils, нам нужно конвертировать захваченное рукопожатие в хеш, который может взламывать hashcat.

Установка hashcat-utils в Kali Linux:

sudo apt install hashcat-utils


Установка hashcat-utils в BlackArch:

sudo pacman -S hashcat-utils


Для конвертации используется команда вида:

cap2hccapx РУКОПОЖАТИЕ.pcap ХЕШ

Пример:

cap2hccapx RT-WiFi_96.pcap RT-WiFi_96.hash

То есть хеш сохранён в файл RT-WiFi_96.hash.

Теперь нужно запустить hashcat. В качестве режима взлома нужно указать -m 2501 (WPA-EAPOL-PMK).

Общий вид команды:

hashcat -m 2501 ФАЙЛ-ХЕШ ФАЙЛ-PMK

В моём случае это следующая команда:

hashcat -m 2501 RT-WiFi_96.hash pmk.txt

Проверка по почти 10 миллионам plainmasterkeys заняла меньше секунды.

5Dg8dbZ0oeQ.jpg


Но радоваться пока рано, обычно взломанный пароль содержится после названия ТД через двоеточие, но посмотрим повнимательнее на нашу строку:

124d3f2ab17f5:dcf505807dcd:RT-WiFi_96:f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0

Там после двоеточия f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 — это plainmasterkey, мы можем даже найти его в файле pmk.txt, но толку от этого мало.

Как восстановить пароль из plainmasterkey

Есть два способа получить пароль — я покажу вариант от автора программы и второй, который я придумал сам. Вы сами можете выбрать, который вам нравится больше.

Нам нужен инструмент wlanpmk2hcx из пакета hcxtools.

Установка в Kali Linux

sudo apt install hcxtools

Установка в BlackArch

sudo pacman -S hcxtools

Теперь нужно выполнить команду вида

wlanpmk2hcx -e ИМЯ-ТД -p НАЙДЕННЫЙ-PMK

В моём случае это команда:

wlanpmk2hcx -e RT-WiFi_96 -p f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0

Результат:

_kwBa9wPODw.jpg


А вы думали вам покажут пароль? Неа. Нам дали новый хеш и мы его будет опять брут-форсить (не забывайте, дальше будет мой собственный способ, в котором можно обойтись без этого).

Итак, нам нужно использовать hashcat с режимом хеша 12000 (PBKDF2-HMAC-SHA1). Новый хеш:

sha1:4096:UlQtV2lGaV85Ng==:85Dgw/L89tbvH5gGdjFAZHirdsiwTSGNHOT1lB8WxOA=

Запускаем команду вида:

hashcat -m 12000 'ХЕШ' СЛОВАРЬ

ХЕШ обязательно поместите в кавычки или сохраните в файл и в строке команды укажите файл.

Пример:

hashcat -m 12000 'sha1:4096:UlQtV2lGaV85Ng==:85Dgw/L89tbvH5gGdjFAZHirdsiwTSGNHOT1lB8WxOA=' rockyou_cleaned.txt

Скорость перебора 247.5 kH/s и через 6 секунд хеш взломан.

XzuGyN1XxwY.jpg


Посмотрим на строку:

sha1:4096:UlQtV2lGaV85Ng==:85Dgw/L89tbvH5gGdjFAZHirdsiwTSGNHOT1lB8WxOA=:22011995

В ней подобранным паролем является 22011995 — это и есть пароль от ТД Wi-Fi.

Последняя стадия явно лишняя — мы сделали ненужную работу, которую можно было бы не делать. Давайте разберёмся с этим.

Продолжение следует…
 

📌 Золотая реклама

AnonPaste

Верх