В этой статье я покажу несколько простых и распространенных, но довольно эффективных приемов из практики пентеста сетей Wi-Fi: скрытие MAC-адреса при сканировании сети и атаке на WPA2, выявление «спрятанных» сетей, обход MAC-фильтрации и глушение чужой точки доступа.

WARNING

Все советы настоятельно рекомендуется использовать только в целях образования. Блокировка передачи данных и применение рассмотренных средств может преследоваться по закону. Для проведения тестов на проникновение требуется получить соответствующее письменное подтверждение заказчика. Помни, что данные о деавторизации сохраняются в логах роутера.

 

Смена и автоматическая генерация нового 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. Особенность всех этих способов в том, что изменения будут теряться после перезагрузки системы либо после переподключения адаптера.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


1 комментарий

  1. Аватар

    mitrofanzzz

    10.03.2020 в 13:03

    Про глушилки показалось интересным. Спасибо.

Оставить мнение