взлом WIFI сетейвзлом WIFI сетей

О взломе WIFI написано не мало. Но это на столько обширная и интересная тема что о ней всегда есть что сказать нового. Ведь взлом WIFI является началом практически у всех хакеров ))) Так и сегодня, мы собрали для вас 4 лучших приема взлома WIFI сетей. Эти методы помогут вам в ваших пентестах работать эффективнее!

1. Смена и автоматическая генерация нового MAC-адреса при новом подключении к Wi-Fi

MAC (Media Access Control) — уникальный идентификатор, выдается каждой единице активного оборудования (то есть сетевому адаптеру, роутеру, свичу и так далее) или некоторым их интерфейсам.

MAC прошит в оборудование при изготовлении и используется в сети для идентификации отправителя и получателя фрейма. Предполагается, что при появлении в сети нового устройства администратору не придется задавать ему MAC вручную.

Схема строения шестиоктетного MAC-адреса
Схема строения шестиоктетного MAC-адреса

MAC уникален (или, по крайней мере, должен быть) для каждого сетевого интерфейса. При этом у устройства их может быть несколько — например, у ноутбуков их как минимум два: один у контроллера проводного подключения по Ethernet, второй — у адаптера Wi-Fi. У роутера или у свитча адреса уникальны для каждого порта, а если это роутер Wi-Fi, то различаться будут адреса у каждого беспроводного интерфейса (у современных роутеров это 2,4 ГГц и 5 ГГц).

Зачем менять MAC?

MAC позволяет однозначно идентифицировать устройство и не меняется при смене операционной системы — он прошит в микросхему, которая предоставляет сетевой интерфейс.

Пентестеры и хакеры скрывают свой MAC, чтобы не допустить идентификации оборудования при атаке. Думаю, ты понимаешь, зачем это может понадобиться: если использовать реальный MAC, то он может быть засвечен при подключении к другим сетям. Существуют и средства сопоставления MAC с географическими координатами — например, скрипт iSniff-GPS из набора Kali.

Практика

Итак, предположим, что ты используешь 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

2. Обнаружение скрытого 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 — количество отправленных пакетов.

Результат поступит практически мгновенно, и ты увидишь строку с полным названием скрытой точки доступа.

3. Обход 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 кого-то из легитимных пользователей, записывай в настройки своей сетевой карты — и можешь проводить задуманную атаку.

4. Глушение сети Wi-Fi

При пентесте бывает нужно заглушить какую-то из точек доступа. Для этого я рекомендую использовать утилиту LANs. Она умеет не только глушить Wi-Fi, но и другие вещи: шпионит за пользователями, индивидуально травит таблицы ARP целевой машины, роутера и при необходимости — сервера DNS.

Радиус действия глушения сильно зависит от мощности адаптера, но у скрипта есть настройки, которые позволяют глушить всех подряд или только одного клиента. Здесь все просто: качаем и ставим зависимости и скачиваем сам скрипт.

$ sudo apt install -y python-nfqueue python-scapy python-twisted nbtscan
$ git clone https://github.com/DanMcInerney/LANs.py.git
$ cd LANs.py/

Теперь можно запускать наш скрипт, чтобы начать глушение.

$ python lans.py -u -p

Ключи -u и -p означают активное обнаружение цели для ARP-спуфинга и вывода всех интересных незашифрованных данных, которые они отправляют или запрашивают. Опции -ip здесь нет, поэтому будет выполнено ARP-сканирование сети и его результаты будут сравниваться с результатами живого «неразборчивого» захвата. В результате получится список всех клиентов сети.

Нажимай Ctrl + C для остановки поиска, когда построишь карту сети и посмотришь списки подключенных клиентов. Для тех же целей, кстати, можно успешно использовать Nmap.

Точечный вариант глушения будет выглядеть так:

$ python lans.py --jam --accesspoint <MAC роутера> -s <MAC для пропуска>

Здесь:

  • —jam — глушить все или некоторые беспроводные точки 2,4 ГГц и клиентов в пределах досягаемости; если необходимо, то вместе с этим можно использовать дополнительные аргументы (ниже);
  • -s — так можно задать MAC, который не будет деавторизован;
  • —accesspoint — тут можно ввести MAC конкретной точки доступа, которая будет выступать в качестве цели.

Глушение всех сетей Wi-Fi будет выглядеть так:

$ python lans.py --jam

Глушение только одной точки доступа:

$ python lans.py --jam --accesspoint <BSSID>

Здесь тоже можно задать некоторые дополнительные опции:

  • -ch — ограничить глушение одним каналом;
  • —directedonly — не отправлять пакеты деаутентификации на широковещательные адреса точек доступа, а только парам из клиента и хотспота;
  • —accesspoint — так можно указать конкретную точку доступа в качестве цели.

Еще эффективный скрипт для глушения Wi-Fi

Для глушения Wi-Fi бывает удобно использовать утилиту wifijammer. Она крайне проста в использовании, так что обсуждать здесь почти нечего: без параметров она просто будет заглушать все, что найдет в радиусе досягаемости адаптера. Чтобы не задеть своих, можно исключить некоторые MAC-адреса с опцией -s.

Устанавливаем wifijammer:

$ sudo apt install -y python-nfqueue python-scapy python-twisted nbtscan
$ git clone https://github.com/DanMcInerney/LANs.py.git
$ cd LANs.py/

И запускаем:

$ sudo python2 wifijammer.py -s <MAC для исключения>

На этом все! Надеюсь, ты нашел что-то новое и интересное среди показанных мной фишек и тебе это пригодится в работе.

От KaligulBorhes

"How long, ignoramuses, will you love ignorance? How long will fools hate knowledge?"