Miroslav Kungurov 10 декабря 2020

🕵 Как взломать Wi-Fi с помощью Kali Linux 2020.4 и Ubuntu 20.04

В пошаговом руководстве рассказываем о мониторинге точек доступа Wi-Fi, перехвате рукопожатий, расшифровке хешей паролей перебором по словарю и брутфорсом с помощью ЦП и видеокарты.
6

Текст статьи не является руководством к действию и публикуется для ознакомления с методами взлома и построения грамотной защиты. Напоминаем, что за преступления в сфере компьютерной информации предусмотрена ответственность по статье 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
Рис. 1. Установка Kali Linux в VirtualBox

Выбираем образ Kali Linux, назначаем количество ядер и ОЗУ для виртуальной машины и нажимаем на кнопку Импорт.

Рис. 2. Установка Kali Linux в VirtualBox
Рис. 2. Установка Kali Linux в VirtualBox

Запускаем Kali Linux и вводим логин kali и пароль kali.

Рис. 3. Ввод логина и пароля в Kali Linux
Рис. 3. Ввод логина и пароля в Kali Linux

2. Установка aircrack-ng

Aircrack-ng – набор инструментов для мониторинга, пентестинга Wi-Fi сетей и взлома WEP, WPA 1 и 2. В Kali утилита aircrack-ng предустановлена. В Ubuntu выполним следующую команду:

        sudo apt install aircrack-ng
    

3. Установка bettercap

Bettercap – программа для мониторинга и спуфинга. Установим bettercap из исходников. Введем в терминале следующие команды:

        sudo apt update
sudo apt install golang git build-essential libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev

#эта команда выполняется долго
go get github.com/bettercap/bettercap
    

Перейдем в каталог с bettercap:

        #в Kali:
cd /home/kali/go/src/github.com/bettercap/bettercap/

#в Ubuntu:
cd /home/USERNAME/go/src/github.com/bettercap/bettercap/

#Затем введем:
make build
sudo make install
    

4. Мониторинг сети

Если к компьютеру подключен USB Wi-Fi адаптер, включим его следующим образом: УстройстваUSBMediaTek 802.11 n WLAN. Название Wi-Fi адаптера может отличаться.

Рис. 4. Включение беспроводного USB Wi-Fi адаптера в Kali Linux в VirtualBox
Рис. 4. Включение беспроводного USB Wi-Fi адаптера в Kali Linux в VirtualBox
Рис. 5. Wi-Fi адаптер из AliExpress за 150 руб., который использовался для мониторинга Wi-Fi
Рис. 5. Wi-Fi адаптер из AliExpress за 150 руб., который использовался для мониторинга Wi-Fi

Узнаем имя Wi-Fi адаптера с помощью команды ifconfig или ip a.

Рис. 6. Узнаем имя адаптера командой <code class="inline-code">ifconfig</code>
Рис. 6. Узнаем имя адаптера командой ifconfig

В нашем случае адаптер называется wlan0.

Сначала отключим ненужные процессы:

        sudo airmon-ng check kill
    

Затем переключим адаптер в режим мониторинга:

        sudo airmon-ng start wlan0
    

Запустим bettercap следующей командой:

        sudo bettercap --iface wlan0
    
Рис. 7. Запуск bettercap в Kali Linux
Рис. 7. Запуск bettercap в Kali Linux

Начнем «слушать» Wi-Fi, введя в терминал wifi.recon on.

Рис. 8. Мониторинг Wi-Fi сетей с помощью bettercap в Kali Linux
Рис. 8. Мониторинг Wi-Fi сетей с помощью bettercap в Kali Linux

Для просмотра списка обнаруженных сетей введем wifi.show.

Рис. 9. Просмотр обнаруженных W-Fi сетей с помощью bettercap в Kali Linux
Рис. 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
Рис. 10. Перехват рукопожатий с помощью bettercap в Kali Linux

Четырехстороннее рукопожатие

Четырехстороннее рукопожатие (англ. four-way handshake) – механизм создания парного переходного ключа PTK для защиты трафика.

PTK содержит:

  • временный ключ TK;
  • ключ подтверждения ключа EAPOL;
  • ключ шифрования EAPOL-key.
Первое рукопожатие
Точка доступа отправляет клиенту случайное 32-байтное число ANonce.
Второе рукопожатие
Клиент в ответ генерирует свое случайное 32-байтное число SNonce. ANonce, SNonce и общий PMK (парный мастер-ключ) образуют PTK (парный переходной ключ). Во втором сообщении клиент отправляет SNonce и MIC (код целостности сообщения) точке доступа.
Третье рукопожатие
Точка доступа генерирует свой PTK для проверки значений MIC из второго сообщения. Если все верно, точка доступа отправляет клиенту сообщение о применении PTK.
Четвертое рукопожатие
Клиент подтверждает использование ключа PTK. [1]

Самое важное рукопожатие – второе. В дополнение к нему необходимо первое и/или третье рукопожатие. Лучший минимальный вариант – второе и третье рукопожатия.

Рис. 11. Схема четырехстороннего рукопожатия точки доступа (AP) и клиента (STA)
Рис. 11. Схема четырехстороннего рукопожатия точки доступа (AP) и клиента (STA)

Файл с рукопожатиями сохраняется в /root/bettercap-wifi-handshakes.pcap. Скопируем его в домашнюю директорию:

        #в Kali:
sudo cp /root/bettercap-wifi-handshakes.pcap /home/kali/

#в Ubuntu:
sudo cp /root/bettercap-wifi-handshakes.pcap /home/USERNAME/
    

6. Выбор нужных рукопожатий

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

В Ubuntu установим WireShark:

        sudo apt install wireshark
    

Введем в терминале команду wireshark. Откроется программа с графическим интерфейсом. Нажмем Сtrl+O и откроем файл с рукопожатиями bettercap-wifi-handshakes.pcap

Отфильтруем данные по мак-адресу wlan.addr==90:c7:aa:bb:cc:dd и отсортируем по времени, кликнув по столбцу Time. Также можно отсортировать по номеру No.. Значения ANonce и SNonce меняются каждую сессию, поэтому выбираем рукопожатия, разделенные небольшим временным промежутком (десятки миллисекунд). Рукопожатия из разных сессий для взлома непригодны.

Рис. 12. Просмотр рукопожатий в программе WireShark
Рис. 12. Просмотр рукопожатий в программе WireShark

Как видно, мы получили первое, второе и третье рукопожатия. Выделим все рукопожатия EAPOL, файл с именем сети SSID (в нашем случае это Association Request) и нажмем FileExport Specified Packets.

Рис. 13. Экспорт рукопожатий в программе WireShark
Рис. 13. Экспорт рукопожатий в программе WireShark

Откроется диалоговое окно, в котором выберем Selected packets only и сохраним файл под названием hs.pcap.

Рис. 14. Сохранение рукопожатий в программе WireShark
Рис. 14. Сохранение рукопожатий в программе WireShark

7. Получаем пароль

Для начала, конвертируем файл hs.pcap в файл hs.hccapx (в команде новый файл пишется без расширения, только название):

        #в Kali:
sudo aircrack-ng -j /home/kali/hs /home/kali/hs.pcap

#в Ubuntu:
sudo aircrack-ng -j /home/USERNAME/hs /home/USERNAME/hs.pcap
    

Это нужно, чтобы программа по расшифровке хеша hashcat смогла прочесть файл. Она подбирает пароли с помощью ЦП и/или ГП.

Рис. 15. Конвертация из .pcap в .hccapx утилитой hashcat
Рис. 15. Конвертация из .pcap в .hccapx утилитой hashcat

8. Подбор по словарю

В Ubuntu установим hashcat командой:

        sudo apt install hashcat
    

Словарь – txt-файл с одним словом в каждой строке (рис. 16) Создадим или скачаем словарь (см. доп. материалы) и поместим его в /home/kali, либо /home/USERNAME для Ubuntu.

Рис. 16. Пример словаря для атаки по словарю
Рис. 16. Пример словаря для атаки по словарю

Пароль от моей точки доступа: qwerty12. Он присутствует в словаре для подбора пароля.

Чтобы начать перебор по словарю введем команду:

        #в Kali:
hashcat --force -m2500 -a0 /home/kali/hs.hccapx /home/kali/dic.txt

#в Ubuntu:
hashcat --force -m2500 -a0 /home/USERNAME/hs.hccapx /home/USERNAME/dic.txt
    

Расшифруем значения опций:

--force – скрыть ошибки.

-m2500 – тип взламываемого хеша WPA-EAPOL-PBKDF2.

-a0 – атака по словарю. Можно без этого флага, так как он работает по умолчанию.

/home/kali/hs.hccapx – файл хеша.

/home/kali/dic.txt – словарь.

В случае успеха статус взлома примет значение Cracked и мы получим пароль (рис. 17).

Рис. 17. Успешный взлом пароля атакой по словарю утилитой hashcat
Рис. 17. Успешный взлом пароля атакой по словарю утилитой hashcat
Тип атаки Пример команды
Словарь hashcat -a0 -m2500 example.hash example.dict
Словарь + Правила hashcat -a0 -m2500 example0.hash example.dict -r rules/best64.rule
Брутфорс hashcat -a3 -m2500 example.hash ?a?a?a?a?a?a
Комбинаторная атака hashcat -a1 -m2500 example.hash example1.dict example2.dict

9. Брутфорс и атака по маске

При брутфорсе (англ. brute force) перебираются все возможные символы. Используя маски, мы сужаем диапазон подбираемых символов, например, только числа или только числа и строчные символы. Таким образом на перебор требуется меньше времени. Этот подход удобен, если мы примерно знаем, как человек придумывает пароли. Из атаки по маске можно сделать брутфорс, включив в перебор все символы.

Для атаки по маске введем следующую команду:

        #в Kali:
hashcat -m2500 -a3 -1?l -2?d /home/kali/hs.hccapx ?1werty?2?2

#в Ubuntu:
hashcat -m2500 -a3 -1?l -2?d /home/USERNAME/hs.hccapx ?1werty?2?2
    

Значения опций:

-m2500 – тип взламываемого хеша, WPA-EAPOL-PBKDF2.

-a3 – атака по маске.

-1?l – маска по прописным латинскими буквам (прописная буква L).

-2?d – маска по цифрам.

hs.hccapx – файл хеша.

?1werty?2?2 – предполагаемый пароль с неизвестными символами. В данном случае задача упрощена для экономии времени.

Рис. 18. Успешный взлом пароля атакой по маске утилитой hashcat
Рис. 18. Успешный взлом пароля атакой по маске утилитой hashcat
? Символы
l (прописная буква L) abcdefghijklmnopqrstuvwxyz
u ABCDEFGHIJKLMNOPQRSTUVWXYZ
d 0123456789
h 0123456789abcdef
H 0123456789ABCDEF
s !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
a ?l?u?d?s
b 0x00 – 0xff

Команда для расчета через видеокарту:

        hashcat -D2 -m2500 -a3 -1?l -2?d hs.hccapx ?1werty?2?2
    

Здесь -D2 – устройство для расчета, ГП.

Номер Устройство
1 ЦП
2 ГП
3 FPGA, DSP, Co-Processor

10. Комбинаторная атака

В комбинаторной атаке используются два словаря. Слова из двух словарей конкатенируются. Если словари содержат следующие слова:

        Hello
World
5588
!
    

то после их соединения получим такой словарь:

        HelloHello
HelloWorld
Hello5588
Hello!
WorldHello
WorldWorld
World5588
World!
5588Hello
5588World
55885588
5588!
!Hello
!World
!5588
!!

    

Запустим комбинаторную атаку:

        #в Kali:
hashcat -m2500 -a1 /home/kali/hs.hccapx /home/kali/dic1.txt /home/kali/dic2.txt

#в Ubuntu:
hashcat -m2500 -a1 /home/USERNAME/hs.hccapx /home/USERNAME/dic1.txt /home/USERNAME/dic2.txt
    

Здесь:

/home/kali/dic1.txt – первый словарь.

/home/kali/dic2.txt – второй словарь.

Рис. 19. Успешный взлом пароля комбинаторной атакой утилитой hashcat
Рис. 19. Успешный взлом пароля комбинаторной атакой утилитой hashcat

11. Куда сохраняется пароль

После удачной расшифровки пароль выводится на экран и записывается в файл ~/.hashcat/hashcat.potfile.

Откроем его в текстовом редакторе, чтобы посмотреть результат:

        sudo nano ~/.hashcat/hashcat.potfile
    

12. Онлайн-сервисы по расшифровке хеша

Также хеш был отправлен в бесплатный онлайн-сервис по расшифровке хеша onlinehashcrack.com и через 12 часов 6 минут пришло письмо, что пароль получен (рис. 20).

Рис. 20. Результаты взлома пароля с помощью сервиса onlinehashcrack.com
Рис. 20. Результаты взлома пароля с помощью сервиса onlinehashcrack.com

Платформа passcrack.online получила пароль за 5 минут (рис. 21). С отправки в онлайн-сервисы лучше начинать расшифровку, так как вычислительных ресурсов у них больше, чем у домашнего компьютера.

Рис. 21. Результаты взлома пароля с помощью сервиса passcrack.online
Рис. 21. Результаты взлома пароля с помощью сервиса passcrack.online

13. Разница между WPA2 и WPA3

В июле 2018 года Wi-Fi Alliance выпустил протокол беспроводной безопасности WPA3. Посмотрим, чем он отличается от своего предшественника.

Недостатки WPA2:

  • уязвим к взлому через WPS;
  • возможен перехват рукопожатий и получение пароля с помощью брутфорса;

Преимущества WPA3 в сравнении с WPA2:

  • устранена уязвимость четырехстороннего рукопожатия за счет применения технологии SAE (Simultaneous Authentication of Equals), которая защищает от офлайн атак по словарю.
  • поддержка PMF (Protected Management Frames) для контроля целостности трафика;
  • шифрование 192 бит в режиме WPA3-Enterprise и 128 бит в WPA3-Personal;
  • упрощенная настройка IoT-устройств.

Недостатки WPA3:

  • уязвим к взлому через WPS. [2]

Общее уязвимое место у WPA 2 и 3 – WPS (Wi-Fi Protected Setup).

14. Дополнительные материалы

Файл .hccapx для практики

На сайте hashecat доступен для скачивания файл .hccapx, на котором можно попрактиковаться в расшифровке. Зашифрованный пароль: hashcat!.

Онлайн-конвертер .pcap в .hccapx

Словари

Онлайн-платформы для расшифровки хеша

Бесплатные

  • crypt-fud.ru – принимает файлы .cap и .hccapx;
  • passcrack.online – принимает только файлы .hccapx размером не более 5Кб. Ссылка на страницу загрузки файла для расшифровки придет в письме после регистрации;
  • onlinehashcrack.com – бесплатно, если пароль простой «12345678» или он есть в словаре из 20 млн слов. В ином случае используется брутфорс на ГП 9$/час.
  • wpa-sec.stanev.org – распределенная система;
  • kraken-client – распределенная система;

Платные

  • gpuhash.me – в случае успеха нужно заплатить 0.001BTC;
  • xsrc.ru – 100 руб. за пароль.

Чем открыть большой текстовой файл

Бесплатные программы для чтения и редактирования больших txt-файлов.

Чтение

Редактирование

Полезные ссылки

Законодательство

  • Статья 274 УК РФ о преступлениях в сфере компьютерной информации.

Саундтреки из сериала «Мистер Робот»

***

Мы научились мониторить Wi-Fi сети, проводить деаутентификацию подключенных к точке доступа устройств, перехватывать рукопожатия, получать пароли методом подбора по словарю и брутфорсом. Также узнали разницу между WPA2 и WPA3, и определили их общее уязвимое место.

Несколько рекомендаций, повышающих информационную безопасность:

  • использовать сложный пароль и периодически менять его;
  • отключить функцию WPS в роутере;
  • регулярно обновлять прошивку роутера;
  • использовать VPN (виртуальная частная сеть): OpenVPN, WireGuard и прочие.

Источники

[1] Самль, С. Д., Роуминг в защищенных беспроводных сетях с использованием IEEE 802.11i. «Научно-практический электронный журнал Аллея Науки» №6(22) 2018.

[2] Кухта А. И., Анализ методов защиты беспроводной сети Wi-Fi. «Молодой исследователь Дона» №2(23) 2020.

МЕРОПРИЯТИЯ

Комментарии 6

ВАКАНСИИ

Golang Backend Developer
Казань, от 70000 RUB до 150000 RUB
Менеджер по маркетингу
от 50000 RUB до 100000 RUB
Middle PHP Developer (Symfony)
от 1000 USD до 1300 USD
Программист Go
по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

BUG