Как взломать 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».


Рекомендуется Вам:

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

  1. freeman:

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

    • Alexey:

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

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

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

      • freeman:

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

        • 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:

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

       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:

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

          • rk:

            Дело в том что атака запустилась но не завершилась- вот в чем вопрос.

             

  4. alega:

    Добрый день, Алексей! Тестировал всю эту схему на знакомой мне ТД, т. е. пароль мне известен. Пароль простой, состоит только из цифр (номер телефона). Все прошло гладко, но уже на этапе перебора пароля просто проскачило не заметив его. В итоге простой пароль не найден. Не подскажите в чем может быть причина? Заранее спасибо…

  5. Аноним:

    #Data постоянно на 0, что делать?

  6. Ggeek:

    Здравствуйте. Я очень благодарен вам за Ваш труд. Это один из лучших ресурсов по ИБ в мире и без сомнения лучший в России. Я понимаю, что моя просьба странная, но я параноик. Вдруг интернет закроют, или Ваш сайт кому-то не понравится. А я не хочу лишаться такой литературы. Есть ли у Вас архив с Вашими статьями и можете ли Вы мне его предоставить. Благодарю.

  7. Zhuk:

    Здравствуйте, когда я пишу команду "cp /usr/share/wordlists/rockyou.txt.gz" мне идет ответ что пропущен операнд, задающий целевой файл) Что я делаю не так? Спасибо. 

    • Alexey:

      Приветствую. После этой команды поставьте пробел и точку, чтобы получилось так:

      cp /usr/share/wordlists/rockyou.txt.gz .

      В этой команде:

      • cp — исполнимый файл программы (она копирует файлы)
      • /usr/share/wordlists/rockyou.txt.gz — файл, который нужно скопировать (/usr/share/wordlists/ - это путь до файла, а rockyou.txt.gz — это имя файла)
      • . (точка) означает, что файл должен быть скопирован в текущую папку. Вместо точки можно указать новое имя (и тогда файл будет скопирован в текущую рабочую директорию с новым именем) или полный путь до нового файла.

      То есть использование команды cp следующее:

      cp ИСХОДНЫЙ_ФАЙЛ КОПИЯ_ФАЙЛА

      Также рекомендуется прочитать «Азы работы в командной строке Linux (часть 1)» и последующие части.

  8. gman:

    А смысл перебора с перехватом и т.д., если можно просто перебирать???

    • Alexey:

      ??? surprise

      Если имеется ввиду онлайн перехват, когда вы пытаетесь подключиться к Точке Доступа с разными паролями, то скорость такого перебора 1 пароль в 2-5 секунд.

      Если сравнивать с офлайн перебором, когда захвачено рукопожатие, то на средненькой видеокарте ноутбука скорость перебора 300 миллионов паролей в секунду и более.

      Вот такой вот смысл.

  9. Yan:

    Здравствуйте, на шаге подготовка словаря застрял, пишет: не удалось выполнить stat для '/usr/share/wordlists/rockyou.txt.gz': Нет такого файла или каталога

    • Alexey:

      В ошибке написано, что «нет файла или каталога». Значит он или в другом месте или отсутствует вовсе.

      Чтобы проверить, есть ли где-либо в системе файл rockyou.txt.gz:

      locate rockyou.txt.gz

      Если файл найден, используем его расположение, отредактировав команду. Если файла вообще нет, значит надо установить пакет, который его содержит.

      Пробуем найти:

      apt search rockyou

      Нам повезло:

      Сортировка… Готово
      Полнотекстовый поиск… Готово
      wordlists/kali-rolling,kali-rolling,now 0.3-1kali3 all [установлен, автоматически]
        Contains the rockyou wordlist

      Строка «Contains the rockyou wordlist» означает «содержит словарь rockyou».

      Пакет называется wordlists, устанавливаем его:

      sudo apt install wordlists

      Теперь, когда пакет установлен, файл rockyou.txt.gz должен присутствовать в системе. Поэтому возвращаемся к команде, которая вызвала проблему и продолжаем.

      Как можно увидеть, проблема решается элементарно, а уверенный пользователь Linux вообще бы здесь «не споткнулся». По этой причине авторы Kali Linux говорят, что этот дистрибутив для уверенных пользователей Linux. Поэтому перед, или хотя бы параллельно с изучением специализированных инструментов Kali Linux, нужно освоить работу в Linux и особенности этой ОС. Начать рекомендую с «Азов работы в командной строке Linux (часть 1)» и также прочитать все последующие части.

  10. saame:

    Здравствуйте, очень полезная статья

    Всё прошло отлично, кроме финального этапа. После команды ls -1 capture* идет бесконечный набор пакетов, ждал вплоть до получаса (на тот момент насчитывалось 60000 packages). Пробовал несколько раз на разных сетях. На англоязычных форумах пишут что такого быть не должно и связано это со слабым сигналом сети (пароль простой номер телефона, без букв). Не знаю отвечаете ли ещё, буду благодарен любому ответу.

     

  11. Александр:

    Добрый день,не подскажете столкнулся с проблемой на этапе sudo airodump-ng и номер интерфейса,выдает ошибку error while loading shared libraties: libaicrack-osdep-1.6.0.so: cannot open shared object file: no such file or directory

    из за чего может быть?Ubuntu 21.04

    • Alexey:

      Приветствую! В Ubuntu много чего не работает, связанного с аудитом безопасности Wi-Fi сетей, — просто выберите любой другой дистрибутив (даже в Linux Mint всё работает) или обратитесь с вашей проблемой к авторам Ubuntu.

  12. Пауло:

    Мой файл с хш был последним. Вероятно первые(неудачные попытки) делали запись без рукопожатия и файл с захваченными рукопожатиями был последним созданным. Пишу для тех кто не внимателен как и ни я 😉 Спасибо за статью. Затестил самого себя. Приятно понимать что всё надёжно;)

  13. Taff:

    Доброго времени суток! В Kali Linux (запускаюсь с флешки)  столкнулся с проблемой в создании словаря с помощью Сrunch
    Проблема в следующем - создает словарь не более 3.3 гб ~ 10.0000 вариантов. В предыдущих версиях Linux такой проблемы не было
    Подскажите есть ли вариант как устранить данную ситуацию.
    Заранее благодарю!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *