1

В Mac OS X я могу включить беспроводной интерфейс в режим монитора, как описано в статье 2007 OSXdaily .

Для этого я также могу использовать встроенную утилиту беспроводной диагностики. К сожалению, ни один из этих двух вариантов не предлагает способ вернуть мой интерфейс в режим «клиента» (по умолчанию, также называемый управляемым режимом в кругах Linux). Единственный способ сделать это - перезагрузка. Есть ли лучший вариант?

3 ответа3

2

Ни один процесс не может покинуть интерфейс в режиме монитора после выхода.

Хотя это справедливо большую часть времени, когда мы бежим (на El Capitan):

# sudo tcpdump -p -I -i enX -y IEEE802_11 

Интерфейс может зависнуть в режиме монитора после выхода из tcpdump (где X - беспроводная сетевая карта, которая поддерживает режим монитора). Обратите внимание, что я говорю "может". Это не ошибка. Несколько раз он возвращался в нормальный режим. В большинстве случаев это не так.

Выполнение этой команды впоследствии исправило ее (это мой ответ на ваш вопрос):

# sudo tcpdump  -I -i enX -p

Это привело нас к мысли, что что-то не так с tcpdump или Mac OS X и с тем, как они взаимодействуют друг с другом (проблема также может быть в libpcap, который находится между ними).

Мы приступили к чтению исходного кода libpcap и обнаружили множество драгоценных камней в радости режима монитора в Mac OS X, который, в свою очередь, указал нам на тот факт, что выбор определенного режима DLT (с использованием флага -y на tcpdump) заставить Mac OS X перевести интерфейс в режим монитора (без дополнительной работы libpcap). Кроме того, в отличие от других систем, в libpcap не выполняется никакой специальной очистки состояния режима монитора при работе в Mac OS X.

В нашем случае крайне важно, чтобы мы могли получать кадры управления 802.11 (тестовые запросы), сохраняя при этом связь и связь с базовой станцией.

В итоге мы создали программу, которая напрямую взаимодействовала с libpcap и просто запросила режим монитора pcap_set_rfmon(pcap, 1) (без выбора режима DLT), прежде чем активировать захват на интерфейсе. При выходе программа просто закрывает дескриптор захвата, и все возвращается в норму (исчезает глаз Саурона), и сетевая карта все еще связана с сетью. Доступ в интернет работает на протяжении всего исполнения.

1

Ни один процесс не может покинуть интерфейс в режиме монитора после выхода. Поэтому независимо от того, какой инструмент вы используете, чтобы войти в режим мониторинга, просто выйдите / выйдите / убейте этот инструмент, и вы вернетесь в нормальный режим работы.

Вы узнаете, что ваш интерфейс находится в режиме монитора, если значок «Меню Wi-Fi Extra» превратится в Глаз Саурона / Глаз Иллюминатов вместо полос. Если он показывает столбцы (даже все серые столбцы), или восклицательный знак, или значок AP-режима "стрелка вверх", или значок "компьютерный компьютер" (значок "ad hoc", IBSS), или значок пустого клина «Wi-Fi выключен» или значок "X" "драйвер не загружен" означает, что он не находится в режиме монитора.

Я думаю, что вы можете смешивать режим монитора с интерфейсом, который просто отключен (не подключен к сети, полоски все серые). Если интерфейс не связан ни с одной сетью, просто выберите сеть. Или просто выключите и снова включите Wi-Fi, чтобы выбрать его автоматически.

0

Запустите top в терминале и найдите airportd, а слева проверьте номер PID, у меня 1748, теперь нажмите Ctrl+C, чтобы выйти из верха, теперь запустите sudo kill 1748 и все, подключитесь к Wi-Fi, и все хорошо идти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .