Упражнения в прекрасном: подключаемся к домашнему Wi-Fi без пароля
Показываем, как взломать ваш роутер за 2–3 часа. Будьте бдительны!
tesla / youtube
В многоквартирных домах теснятся не только люди, но и множество маршрутизаторов. Получить доступ к соседскому Wi-Fi проще простого — достаточно знать пароль устройства. Обычные пользователи даже не догадываются, что у них проблемы с безопасностью и их роутеры прямо сейчас атакуют главную страницу «Яндекса».
Чтобы защититься от злоумышленников, нужно думать как злоумышленник. Поэтому попробуем взломать Wi-Fi. Практиковаться будем на своём роутере — мы же против нарушения законов! Попросите домашних изменить на нём пароль и не говорить вам.
Готово? Теперь у вас есть мотивация, цель и подробная инструкция.
Что нужно уметь?
- Установить Linux и работать с ОС на уровне рядового пользователя.
- Запускать терминал и выполнять простейшие команды.
Инструменты
- Kali Linux. Подойдёт любой дистрибутив Linux, но на Kali предустановлен необходимый софт.
- Wi-Fi-адаптер. Встроенный или внешний USB — разницы нет. Но есть нюансы, о которых поговорим далее.
- Aircrack-ng. Набор утилит для обнаружения Wi-Fi-сетей, анализа и перехвата трафика. Идёт в поставке Kali Linux.
Как роутер работает с запросами
Прежде чем надевать на голову чулок или балаклаву, нужно понять, как работает роутер. Для этого нужно немного вспомнить курс школьной физики. Беспроводной девайс ловит электромагнитные волны от ноутбука или смартфона, расшифровывает их, а полученные запросы отправляет в интернет через кабель.
Но чтобы обмениваться с роутером информацией, его надо как-то обнаружить — он же не кричит о себе на весь дом. Тут поможет… бекон.
Beacon frame — это пакет, который роутер рассылает, чтобы сообщить о себе. Смартфоны и другие пользовательские устройства периодически сканируют радиоканал и ловят «беконы». Они переключаются в режим монитора и выводят обнаруженные пакеты — это и есть доступные точки подключения.
После того как устройство обнаружило роутер, подключаемся. Давайте заглянем в этот процесс и познакомимся с терминами. Будем считать, что подключаемся через смартфон.
Если наш смартфон знает пароль, то передаёт его автоматически, если нет — роутер спрашивает его у нас. Во время подключения смартфон и роутер обмениваются «рукопожатием» (handshake).
Handshake — процесс знакомства клиента и сервера, во время которого устройства идентифицируют друг друга и обмениваются секретными ключами. Handshake происходит каждый раз, когда мы подключаемся к серверу.
После «рукопожатия» смартфон переключается на рабочий канал и безопасно работает с роутером.
Канал — рабочая частота, на которой устройства обмениваются данными. У роутеров обычно от 1 до 15 каналов.
Теперь устройства доверяют друг другу, а у вас есть доступ в интернет.
План атаки
Составим план взлома. Мы получим доступ к маршрутизатору в четыре шага:
- Найдём устройства с помощью Aircrack-ng.
- Выберем роутер и послушаем его трафик в ожидании handshake. Защита промышленных моделей наподобие Cisco, MikroTik может быть гораздо серьёзнее, и выполнить трюк будет сложнее.
- Возможно, дополнительно отправим сигнал отключения от точки для клиентских устройств, чтобы ускорить процесс.
- Перехватим handshake, расшифруем методом брутфорса и получим пароль.
Брутфорс — метод простого перебора паролей. Он примитивен и работает в лоб, поэтому и называется методом грубой силы. Это как если бы человек загадал трёхзначное число, а вы бы пытались его угадать, называя все числа от 100 до 999.
Плюсы нашей атаки:
- роутер со стандартными настройками — лёгкая цель;
- довольно простая реализация.
Минусы:
- Перебор возможных паролей может занять много времени — его количество зависит от мощности машины и длины словаря. В среднем на пароль из 8 цифр уходит более 8 часов.
- Если точкой никто не пользуется, то и handshake перехватить не получится: нет подключений, а значит, и нужных нам данных.
Как выбрать адаптер
Не все адаптеры годятся для нашего плана. Нам нужен такой, у которого есть режим монитора и режим инъекции. Это аппаратные методы для одновременного анализа всех точек вокруг и перехвата чужих пакетов информации. Чтобы узнать, поддерживает ли ваше устройство такие режимы, нужно определить модель чипсета. Её можно найти в интернете по модели адаптера или с помощью команд:
- lspci | grep «Network» — для встроенных адаптеров;
- lsusb — для внешних устройств.
По названию ищем в поисковике информацию о чипсете. Нам нужно найти, поддерживает ли он monitor mode и packet injection.
Можно сразу искать чипсет на сайте, но там может не быть нужных данных.
Начинаем атаку
Нам нужно узнать, как в системе именуется наше Wi-Fi-устройство. Запускаем терминал нажатием клавиш Ctrl + Alt + T и выполняем команду iwconfig для просмотра всех беспроводных адаптеров.
В моём случае найдено два устройства: wlx1cbfce4e2375 — внешний USB-адаптер и Wlp10s0 — встроенный.Чтобы проверить, способно ли устройство участвовать в атаке, нужно узнать его название. Встроенное — Realtek Semiconductor Co., Ltd. RTL8821CE — не поддерживает режим монитора и инъекции. А внешнее Ralink Technology, Corp. MT7601U Wireless Adapter — поддерживает. Его и будем использовать.
Нам необходимо переключить адаптер в режим монитора, в котором устройство анализирует весь беспроводной трафик вокруг себя.
Используем следующие команды:
sudo airmon-ng check kill
sudo airmon-ng start wlan0
Что делают:
- Выключают процессы, которые мешают работе с адаптером беспроводной сети.
- Включают режим монитора.
При запуске режима монитора утилита обнаружила, что моя карта заблокирована, и предложила выполнить команду для разблокировки. Выполняем команду.
sudo rfkill unblock 2
Далее она автоматически переименовала длинное и странное имя адаптера в более простое. Теперь моя сеть мониторинга называется wlan0mon.
Нужно осмотреться! Запускаем утилиту Airodump-ng и мониторим сети.
sudo airodump-ng wlan0mon
Сверху у нас подробная таблица с точками доступа, а внизу — клиенты. Наша сеть — TP-Link_77D0, из таблицы узнаём её BSSID и CH-канал.
Переключаем наш адаптер в режим работы с этой точкой. Теперь утилита анализирует трафик точки и её клиентов. Лучше открыть дополнительный терминал для этих целей.
sudo airodump-ng wlan0 --channel 1 -w mycap
С помощью команды переключаем адаптер на канал 1. В случае поимки handshake данные сохраняются в файл с названием mycap. Он находится в папке, в которой запущен терминал.
Можно ничего не делать и ждать, когда рыба сама клюнет. Как только захватим handshake, сообщение «fixed channel wlan0:» сменится на «WPA handshake B0:BE: 76:A9:77:D0».
Чтобы ускорить процесс, можно подкинуть «наживки». Клиенты, подключенные к точке, могут отключиться, если мы отправим им соответствующий сигнал — пакет деаутентификации. Это вынудит клиента вновь обменяться handshake с атакуемым устройством.
Пакеты деаутентификации используются для исправления ошибок, обновления ключей и так далее. Они передаются незашифрованными, поэтому утилита может их подделать. Когда целевое устройство получит пакет деаутентификации, оно вынуждено отключиться от роутера.
С помощью команды отправляем 100 пакетов всем клиентам указанной сети.
sudo aireplay-ng -0 100 -a B0:BE: 76:A9:77:D0 wlan0
«-0» — это пакет деаутентификации, «100» — количество пакетов, «-a» — цель атаки, а «wlan0mon» — наш монитор.
И, вуаля, мы поймали рыбку! Зашифрованный пароль теперь в файле mycap.cap. Об этом говорит надпись «WPA handshake B0:BE: 76:A9:77:D0» в левом верхнем углу.
Как расшифровать handshake
Пароль уже почти у нас. Осталось расшифровать полученный handshake. Сделать это несложно, но ресурсозатратно. Брутфорс требует больших мощностей и много времени.
Тут есть два пути.
Простой. Воспользоваться сайтами, которые расшифровывают данные. Их можно найти в поисковике по запросу «handshake decrypt online». У некоторых сервисов есть бесплатные тарифы, но обычно они берут небольшую сумму — выходит не дороже чашки кофе.
Сложный. Использовать специальный софт и подключать драйвера, которые будут использовать центральный процессор вместе с графическим для ускорения вычислений. Можно воспользоваться aircrack-ng — у неё есть модуль для расшифровки — или утилитой hashcat. Первая утилита содержит базовый набор функций, вторая — более серьёзный и расширенный.
Подведём итоги
Мы реализовали простую атаку на домашний роутер. Самое главное: мы научились не только взламывать чужие устройства, но и защищать свои:
- Не используйте стандартные слабые пароли. Для пароля из 8 цифр количество возможных комбинаций равно 134217728. Мощный компьютер расшифрует его довольно быстро. Но если добавить хотя бы одну латинскую букву, то количество вариантов возрастёт до 1.0633823966279327e+37, а шансы злоумышленников резко уменьшатся.
- Не использовать название модели роутера в имени сети. Зная модель роутера, злоумышленник может воспользоваться известными уязвимостями устройства. Например, для роутера TP-Link TL-WR840N есть эксплойт, позволяющий обойти аутентификацию. Кроме того, если вы не меняли пароль, взломщик может выяснить, какие заводские пароли использует роутер.
- Отключать обнаружение сети. Подключиться к такому устройству сложнее — придётся прописывать настройки вручную.
- Использовать фильтр подключений в роутере, который разрешает подключаться только известным устройствам. Даже если злоумышленник расшифрует пароль, фильтр не пропустит его в сеть.
Если хотите научиться защищать от хакерских атак не только домашние, но большие корпоративные сети, приходите на курс. «Специалист по кибербезопасности». Здесь студенты узнают о новых способах атак, учатся строить защиту, а лучшим мы помогаем с трудоустройством.