Как расшифровать handshake kali linux
В этой статье речь пойдет о том, как взломать Wi-Fi сеть с шифрованием WPA/WPA2 путем перехвата handshake. Но для начала теория.
Теория WPA/WPA2
WPA (или как иногда называют WPA v1) обычно использует алгоритм шифрования TKIP. TKIP был разработан для повышение шифрования WEP, не требующий изменения железа для работы. WPA2 в обязательном порядке использует алгоритм шифрования AES-CCMP, который более мощный и надежный по сравнению с TKIP.
WPA и WPA2 позволяют использовать либо EAS-bases аутентификацию (RADIUS Server “Enterprise”) или Pre-Shared Key (PSK) “Personal”-based аутентификацию.
Шифрования WPA/WPA2 PSK уязвимы к атакам по словарю. Для осуществления этой атаки, необходимо получить 4-way WPA handshake между wifi-клиентом и точкой доступа (АР), а также словарь содержащий парольную фразу.
WPA/WPA2 PSK работает следующим образом: он вытекает из ключа предварительной сессии, которая называется Pairwise Transient Key (PTK). PTK, в свою очередь использует Pre-Shared Key и пять других параметров — SSID, Authenticator Nounce (ANounce), Supplicant Nounce (SNounce), Authenticator MAC-address (MAC-адрес точки доступа) и Suppliant MAC-address (МАС-адрес wifi-клиента). Этот ключ в дальнейшем использует шифрование между точкой доступа (АР) и wifi-клиентом.
Злоумышленник, который в этот момент времени прослушивает эфир, может перехватить все пять параметров (см. предыдущий параграф). Единственной вещью, которой не владеет злодей это – Pre-Shared key. Давайте выясним, как создается Pre-Shared key.
Pre-Shared key получается/создается благодаря использованию парольной фразы WPA-PSK, которую отправляет пользователь, вместе с SSID. Комбинация этих двух параметров пересылается через Password Based Key Derivation Function (PBKDF2), которая выводит 256-bit’овый общий ключ.
В обычной/типичной WPA/WPA2 PSK атаке по словарю, злоумышленник будет использовать словарь с программой/инструментом. Программа будет выводить 256-bit’овый Pre-Shared Key для каждой парольной фразы и будет использовать ее с другими параметрами, которые были описаны в создании PTK. PTK будет использоваться для проверки Message Integrity Check (MIC) в одном из пакетов handshake. Если они совпадут, то парольная фраза в словаре будет верной, в противном случае наоборот (неверной). Именно так работает WPA/WPA2 PSK.
Практика
Важно: Не забываем о том, что нужно выбрать правильный wifi-клиент! Для этого внимательно смотрим питыподдерживаемых чипсетов. В качестве клиента я использую ALFA AWUS036H.
После того как куплено/выбрано “правильное” железо, приступаем к его настройке. Для начала выполним команду airmon-ng, чтобы узнать какие интерфейсы имеются в системе:
У меня ALFA определяется, как интерфейс wlan2. Переводим wifi-клиента в режим монитора:
Создался виртуальный интерфейс mon0, с ним мы и будем работать.
Теперь сканируем эфир с помощью airodump-ng:
Так как мы все “хорошие”, будем тестировать все на наших АР. В моем случае это TestWireless. Переключаемся на нее:
- -w – название дамп-файла
- -c – номер канала
- –bssid – MAC-адрес точки доступа
Видим, что к АР подключен клиент. Это то, что нам нужно, потому знаем – перехват handshake возможен тогда и только тогда, когда к АР подключен клиент.
Теперь оставляем окно терминала где работает airodump-ng открытым. Открываем новое окно, в котором пишем:
- -0 — деаутентификация
- 3 — количество пакетов
- -a — MAC-адрес точки доступа (АР)
- -c — MAC-адрес клиента, к которому применяется деаутентификация
Когда команда выполнилась, переходим в первое окно терминала (airodump-ng). Красным выделен перехваченныйhandshake. У вас должно быть тоже самое.
Все, теперь можно работать с aircrack-ng.
Для того, чтобы расшифровать handshake нам нужен будет словарь. Помним о том, что если пароля в словаре не будет, то и расшифровать не получится. Очень часто “домашние” пользователи ставят численные пароли. Так что начинайте с них.
Итак, словарь создали или скачали. Теперь приступаем к расшифровке. Но сначала еще раз проверим, перехватили ли мы handshake. Для этого вводим след. команду:
Текст статьи не является руководством к действию и публикуется для ознакомления с методами взлома и построения грамотной защиты. Напоминаем, что за преступления в сфере компьютерной информации предусмотрена ответственность по статье 274 УК РФ.
Разработчики Kali предупреждают , что в виртуальной машине не получится установить драйвера для Nvidia и соответственно мы не сможем проводить расчеты на ГП . Подтверждаю, у меня драйвера не установились. В таком случае лучше ставить Kali как вторую ОС. Расчет на ЦП в виртуальной машине работает нормально .
В статье представлены рецепты для Kali Linux 20.04 и Ubuntu 20.04. Если Kali не устраивает, у нее есть аналог – Parrot OS .
1. Установка Kali в VirtualBox
Устанавливаем последнюю версию VirtualBox и скачиваем Kali Linux VirtualBox 64-Bit (OVA) или 32-Bit. Запускаем VirtualBox и нажимаем на кнопку Импортировать .
Рис. 1. Установка Kali Linux в VirtualBox
Выбираем образ Kali Linux, назначаем количество ядер и ОЗУ для виртуальной машины и нажимаем на кнопку Импорт .
Рис. 2. Установка Kali Linux в VirtualBox
Запускаем Kali Linux и вводим логин kali и пароль kali .
Рис. 3. Ввод логина и пароля в Kali Linux
2. Установка aircrack-ng
Aircrack-ng – набор инструментов для мониторинга, пентестинга Wi-Fi сетей и взлома WEP, WPA 1 и 2. В Kali утилита aircrack-ng предустановлена. В Ubuntu выполним следующую команду:
3. Установка bettercap
Bettercap – программа для мониторинга и спуфинга . Установим bettercap из исходников. Введем в терминале следующие команды:
Перейдем в каталог с bettercap:
4. Мониторинг сети
Если к компьютеру подключен USB Wi-Fi адаптер, включим его следующим образом: Устройства → USB → MediaTek 802.11 n WLAN . Название Wi-Fi адаптера может отличаться.
Рис. 4. Включение беспроводного USB Wi-Fi адаптера в Kali Linux в VirtualBox Рис. 5. Wi-Fi адаптер из AliExpress за 150 руб., который использовался для мониторинга Wi-Fi
Узнаем имя Wi-Fi адаптера с помощью команды ifconfig или ip a .
Рис. 7. Запуск bettercap в Kali Linux
Начнем «слушать» Wi-Fi, введя в терминал wifi.recon on .
Рис. 8. Мониторинг Wi-Fi сетей с помощью bettercap в Kali Linux
Для просмотра списка обнаруженных сетей введем wifi.show .
Рис. 9. Просмотр обнаруженных W-Fi сетей с помощью bettercap в Kali Linux
5. Получение рукопожатий
Выберем цель – точка доступа NX531J . Попробуем получить рукопожатия (англ. handshake) между точкой доступа NX531J и подключенным к ней устройством. Ждем, когда клиент отключится и подключится снова, либо принудительно отключим его командой деаутентификации: wifi.deauth MAC-адрес точки доступа
MAC-адрес – уникальный идентификатор сетевого устройства. Его значение берем из столбца BSSID. В нашем случае: wifi.deauth 90:c7:aa:bb:cc:dd .
Повторяем эту команду, пока не перехватим рукопожатия.
wifi.deauth * и wifi.deauth all отключают все устройства на всех точках доступа.
Рис. 10. Перехват рукопожатий с помощью bettercap в Kali Linux
Четырехстороннее рукопожатие
Четырехстороннее рукопожатие (англ. four-way handshake) – механизм создания парного переходного ключа PTK для защиты трафика.
- временный ключ TK;
- ключ подтверждения ключа EAPOL;
- ключ шифрования EAPOL-key.
Самое важное рукопожатие – второе . В дополнение к нему необходимо первое и/или третье рукопожатие. Лучший минимальный вариант – второе и третье рукопожатия.
Рис. 11. Схема четырехстороннего рукопожатия точки доступа (AP) и клиента (STA)
Файл с рукопожатиями сохраняется в /root/bettercap-wifi-handshakes.pcap . Скопируем его в домашнюю директорию:
6. Выбор нужных рукопожатий
Чтобы выбрать интересующие нас рукопожатия и экспортировать их в отдельный файл, нам понадобится программа для анализа сетевых протоколов WireShark .
В Ubuntu установим WireShark:
Введем в терминале команду wireshark . Откроется программа с графическим интерфейсом. Нажмем Сtrl+O и откроем файл с рукопожатиями bettercap-wifi-handshakes.pcap
Отфильтруем данные по мак-адресу wlan.addr==90:c7:aa:bb:cc:dd и отсортируем по времени, кликнув по столбцу Time . Также можно отсортировать по номеру No. . Значения ANonce и SNonce меняются каждую сессию, поэтому выбираем рукопожатия, разделенные небольшим временным промежутком (десятки миллисекунд). Рукопожатия из разных сессий для взлома непригодны.
Рис. 12. Просмотр рукопожатий в программе WireShark
Как видно, мы получили первое, второе и третье рукопожатия. Выделим все рукопожатия EAPOL, файл с именем сети SSID (в нашем случае это Association Request) и нажмем File → Export Specified Packets .
Рис. 13. Экспорт рукопожатий в программе WireShark
Откроется диалоговое окно, в котором выберем Selected packets only и сохраним файл под названием hs.pcap .
Рис. 14. Сохранение рукопожатий в программе WireShark
7. Получаем пароль
Для начала, конвертируем файл hs.pcap в файл hs.hccapx (в команде новый файл пишется без расширения, только название):
Это нужно, чтобы программа по расшифровке хеша hashcat смогла прочесть файл. Она подбирает пароли с помощью ЦП и/или ГП.
Рис. 15. Конвертация из .pcap в .hccapx утилитой hashcat
8. Подбор по словарю
В Ubuntu установим hashcat командой:
Словарь – txt-файл с одним словом в каждой строке (рис. 16) Создадим или скачаем словарь (см. доп. материалы) и поместим его в /home/kali , либо /home/USERNAME для Ubuntu.
Рис. 16. Пример словаря для атаки по словарю
Пароль от моей точки доступа: qwerty12 . Он присутствует в словаре для подбора пароля.
Чтобы начать перебор по словарю введем команду:
Расшифруем значения опций:
--force – скрыть ошибки.
-m2500 – тип взламываемого хеша WPA-EAPOL-PBKDF2.
-a0 – атака по словарю. Можно без этого флага, так как он работает по умолчанию.
/home/kali/hs.hccapx – файл хеша.
В случае успеха статус взлома примет значение Cracked и мы получим пароль (рис. 17).
Рис. 17. Успешный взлом пароля атакой по словарю утилитой hashcat
9. Брутфорс и атака по маске
При брутфорсе (англ. brute force) перебираются все возможные символы. Используя маски, мы сужаем диапазон подбираемых символов, например, только числа или только числа и строчные символы. Таким образом на перебор требуется меньше времени. Этот подход удобен, если мы примерно знаем, как человек придумывает пароли. Из атаки по маске можно сделать брутфорс, включив в перебор все символы.
Для атаки по маске введем следующую команду:
Значения опций:
-m2500 – тип взламываемого хеша, WPA-EAPOL-PBKDF2.
-a3 – атака по маске.
-1?l – маска по прописным латинскими буквам (прописная буква L ).
-2?d – маска по цифрам.
hs.hccapx – файл хеша.
?1werty?2?2 – предполагаемый пароль с неизвестными символами. В данном случае задача упрощена для экономии времени.
Рис. 18. Успешный взлом пароля атакой по маске утилитой hashcat
Команда для расчета через видеокарту:
Здесь -D2 – устройство для расчета, ГП.
Номер | Устройство |
1 | ЦП |
2 | ГП |
3 | FPGA, DSP, Co-Processor |
10. Комбинаторная атака
В комбинаторной атаке используются два словаря. Слова из двух словарей конкатенируются. Если словари содержат следующие слова:
то после их соединения получим такой словарь:
Запустим комбинаторную атаку:
/home/kali/dic1.txt – первый словарь.
/home/kali/dic2.txt – второй словарь.
Рис. 19. Успешный взлом пароля комбинаторной атакой утилитой hashcat
11. Куда сохраняется пароль
После удачной расшифровки пароль выводится на экран и записывается в файл
Откроем его в текстовом редакторе, чтобы посмотреть результат:
12. Онлайн-сервисы по расшифровке хеша
Платформа passcrack.online получила пароль за 5 минут (рис. 21). С отправки в онлайн-сервисы лучше начинать расшифровку, так как вычислительных ресурсов у них больше, чем у домашнего компьютера.
Рис. 21. Результаты взлома пароля с помощью сервиса passcrack.online
13. Разница между WPA2 и WPA3
В июле 2018 года Wi-Fi Alliance выпустил протокол беспроводной безопасности WPA3. Посмотрим, чем он отличается от своего предшественника.
- уязвим к взлому через WPS;
- возможен перехват рукопожатий и получение пароля с помощью брутфорса;
Преимущества WPA3 в сравнении с WPA2:
- устранена уязвимость четырехстороннего рукопожатия за счет применения технологии SAE (Simultaneous Authentication of Equals), которая защищает от офлайн атак по словарю.
- поддержка PMF (Protected Management Frames) для контроля целостности трафика;
- шифрование 192 бит в режиме WPA3-Enterprise и 128 бит в WPA3-Personal;
- упрощенная настройка IoT-устройств.
Общее уязвимое место у WPA 2 и 3 – WPS (Wi-Fi Protected Setup).
14. Дополнительные материалы
Файл .hccapx для практики
На сайте hashecat доступен для скачивания файл .hccapx , на котором можно попрактиковаться в расшифровке. Зашифрованный пароль: hashcat! .
Онлайн-конвертер .pcap в .hccapx
Словари
Онлайн-платформы для расшифровки хеша
Бесплатные
-
– принимает файлы .cap и .hccapx; – принимает только файлы .hccapx размером не более 5Кб. Ссылка на страницу загрузки файла для расшифровки придет в письме после регистрации; – бесплатно, если пароль простой «12345678» или он есть в словаре из 20 млн слов. В ином случае используется брутфорс на ГП 9$/час. – распределенная система; – распределенная система;
Платные
-
– в случае успеха нужно заплатить 0.001BTC; – 100 руб. за пароль.
Чем открыть большой текстовой файл
Бесплатные программы для чтения и редактирования больших txt-файлов.
Чтение
Редактирование
-
(Windows, macOS, Linux); (Windows, macOS, Linux); (Windows); (Windows); (Windows);
Полезные ссылки
-
– Awesome-список по взлому/безопасности Wi-Fi. – еще один Awesome-список по Wi-Fi;
Законодательство
- Статья 274 УК РФ о преступлениях в сфере компьютерной информации.
Саундтреки из сериала «Мистер Робот»
Мы научились мониторить Wi-Fi сети, проводить деаутентификацию подключенных к точке доступа устройств, перехватывать рукопожатия, получать пароли методом подбора по словарю и брутфорсом. Также узнали разницу между WPA2 и WPA3, и определили их общее уязвимое место.
Несколько рекомендаций, повышающих информационную безопасность:
- использовать сложный пароль и периодически менять его;
- отключить функцию WPS в роутере;
- регулярно обновлять прошивку роутера;
- использовать VPN (виртуальная частная сеть): OpenVPN, WireGuard и прочие.
Источники
[1] Самль, С. Д., Роуминг в защищенных беспроводных сетях с использованием IEEE 802.11i. «Научно-практический электронный журнал Аллея Науки» №6(22) 2018.
[2] Кухта А. И., Анализ методов защиты беспроводной сети Wi-Fi. «Молодой исследователь Дона» №2(23) 2020.
Словарь для брутфорса
Для успешной атаки на Wi-Fi сеть необходимо иметь не только подходящий адаптер, но и так же словари с паролями, которые можно скачать из интернета или составить самому утилитой Crunch. В Kali Linux правда уже присутствует один словарь и расположен он по адресу: /usr/share/wordlists/rockyou.txt.gz. Можно воспользоваться им, что собственно для данной статьи я и сделаю. И так, что бы воспользоваться данным словарем, сначала его надо распаковать, давайте переместим его в директорию пользователя и распакуем:
Так же выложу на всякий случай архив с паролями, в нем содержаться такие словари как:
Это на тот случай если вы сами не хотите составлять словари для брутфорса. Описывать их не стану, при желании вы сами можете найти по ним информацию в сети:
Атакуем Wi-Fi сеть
-w указываем путь, куда будет записан хендшейк
wlxd03745710fa4 название Wi-Fi адаптера
После запуска команды, дожидаемся когда кто-нибудь подключиться к сети, но, можно выбрать устройство, которое уже подключено и заставить его переподключиться. Что собственно ускорит процесс получения хендшейка. Узнать какие устройства подключены можно из списка, который выводиться в самом низу:
-a MAC адрес точки доступа (BSSID)
-c MAC адрес подключенного клиента (STATION)
wlxd03745710fa4 Wi-Fi интерфейс
Расшифровываем Handshake
Для более удачной работы с Aircrack-ng и брутфорсом в целом лучше иметь несколько словарей, так как не известно какой пароль будет задан хозяином сети. Для этого можно воспользоваться например социальной инженерией, а на основе полученных знаний, уже составить словари. Но, это совсем иная тема, и она явно выходит за рамки данной статьи.
Заключение
Даже если вы не занимаетесь аудитом безопасности, и не помышляете об этом, вам все же стоит проверить свою сеть на устойчивость от взлома. Почему? Все просто, никто не застрахован от проникновения и взлома, а ваша Wi-Fi сеть может стать точкой выхода в сеть для злоумышленника. И кто знает, что он там будет делать через ваш Wi-Fi. Данная инструкция приведена лишь для ознакомления, помните, что подобные действия могут повлечь за собой уголовную ответственность, в случае применения этих знаний во вред. Применяйте полученные знания лишь для защиты собственной Wi-Fi сети.
P.S.
Как-нибудь в одной из следующих статей напишу еще об одном инструменте для атаки на беспроводную сеть, и в отличие от Aircrack-ng, она более автоматизирована. Но, об этом как нибудь в следующий раз.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X
Полный цифровой восьмизнак имеет 10^8 = 100 млн комбинаций что уже само по себе немало. Кроме того, в базовый словарь закера должны в обязательном порядке входить слова, наиболее часто используемые в качестве паролей, например internet, password, qwertyuiop, имена и др., а так же их мутации с популярными суффиксами-удлинителями паролей (единоличным лидером в этой области является конечно же суффикс 123). Т.е. если пароль diana слишком короток для соответствия стандарту WPA, находчивый юзер в большинстве случаев дополнит его до diana123, заодно увеличивая таким образом (на его опытный взгляд) секретность пароля. Таких популярных суффиксов также известно несколько десятков.
Если самостоятельно собирать словарь влом (а смысл? Все собрано до нас) можно погуглить по ключевым словам wpa wordlist и скачать готовый словарь. Незабываем о таргетировании, ведь довольно наивно будет надеяться что расшифровка хендшейка продет гладко если будем юзать китайский хендшейк по русскому словарю и наоборот. Можно еще поискать подходящий на просторах интернета, благо их ешь чем хочешь.
используем crunch для генерации различных комбинаций из базового набора
Aircrack-ng
Подготовив какой-никакой качественный, на наш не очень опытный взгляд, словарь (например wordlist.txt) переходим к подбору пароля, то есть к расшифровке хендшейка. Запускаем aircrack-ng с дополнительными настройками:
И вот результат наших трудов:
Наш пароль нашелся за 3 секунды, вот это да.
Расшифровка хендшейка средствами GPU
В рамках статьи для новичков я не буду, пожалуй, углубляться в дебри настройки ATI SDK и pyrit под Linux, отмечу только что потрахаться придется долго и качественно. Да и обладателей топовых радеонов с нвидиями, не так уж и много, думаю они вполне самостоятельно разберутся. Ну или погуглят)
Расшифровка хендшейка Elcomsoft Wireless Security Auditor
Используем на всю потраченные деньги)
Жмем “Импорт данных -> Импортировать файл TCPDUMP” и выбираем *.cap-файл с хендшейком (программа их проверит и предложит отметить те, которые мы хотим атаковать), после чего можно смело жать “Запустить атаку -> Атака по словарю”:
В данном тесте EWSA показала скорость всего лишь 135.000 паролей в секунду, хотя исходя из конфигурации железа я ожидал увидеть цифру около четырехсот тысяч.
Расшифровка хендшейка EWSA
Двигаемся далее
Указываем программе наш *.hccap-файл в качестве Hash file для атаки, в окошко Word lists добавляем файлы словарей (стрелками можно выставить желаемый порядок их прохождения), выбираем WPA/WPA2 в качестве Hash type и жмем на Start.
Должно появиться консольное окно с запуском выбранной весии hashcat-plus и кучей параметров, и если все в порядке утилита приступит к работе. В процессе расчета можно выводить на экран текущий статус по нажатию клавиши ‘s’. Можно и приостанавливать процесс по нажатию ‘p’ или прервать по нажатию ‘q’. Если hashcat-plus вдруг найдет пароль она вас обязательно вам его покажет..
Весь приведенный выше материал опубликован с целью ликвидации безграмотности населения в области безопастности сетей, а не как руководство к действию. Помните что взлом частной сети — ПРЕСТУПЛЕНИЕ!
Читайте также: