Содержание статьи
- Смена и автоматическая генерация нового MAC-адреса при новом подключении к Wi-Fi
- Зачем менять MAC?
- Практика
- Включаем автоматическую генерацию рандомных MAC-адресов
- Устанавливаем определенный MAC
- Другие способы программно поменять MAC
- Изменение MAC с помощью iproute2
- Изменение MAC с помощью macchanger
- Обнаружение скрытого SSID
- Получаем скрытый SSID при помощи Airodump-ng
- Обход MAC-фильтрации путем заимствования адреса из белого списка
- Глушение сети Wi-Fi
- Еще эффективный скрипт для глушения Wi-Fi
WARNING
Все советы настоятельно рекомендуется использовать только в целях образования. Блокировка передачи данных и применение рассмотренных средств может преследоваться по закону. Для проведения тестов на проникновение требуется получить соответствующее письменное подтверждение заказчика. Помни, что данные о деавторизации сохраняются в логах роутера.
Смена и автоматическая генерация нового MAC-адреса при новом подключении к Wi-Fi
MAC (Media Access Control) — уникальный идентификатор, выдается каждой единице активного оборудования (то есть сетевому адаптеру, роутеру, свичу и так далее) или некоторым их интерфейсам.
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», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»