Как перевести сетевую карту в режим мониторинга windows

Обновлено: 04.07.2024

Захват сетевого трафика – это одна из тех дисциплин, в которых «легко освоить базу, тяжело достичь высот» (“easy to learn, hard to master”). Достаточно легко захватить трафик на ПК, используя встроенную сетевую карту, но получить результат, который вы хотели, может стать задачей потяжелее или вообще обернуться настоящим испытанием. Давайте посмотрим, на что нужно обратить внимание при захвате Ethernet-трафика (WiFi будем рассматривать позже):

  1. Права пользователя в системе
  2. Фильтр MAC-адреса получателя и неразборчивый режим (“Promiscuous Mode”)
  3. Пассивность
  4. Возможности и функции сетевой карты
  5. Тип трафика и эффективность захвата

Права пользователя в системе

Пользователи Wireshark под ОС Windows сейчас думают «о чем это вообще. » Но пользователи Linux легко могут попасть в не очень приятную ситуацию, когда они не состоянии захватить трафик до тех пор, пока не запустят Wireshark от рутовой учетной записи. Проблема в том, что захват трафика считается потенциально опасной с точки зрения security операцией – ведь он позволяет получить доступ к данным, к которым пользователь не должен этот доступ иметь. Существуют компании, которые имеют политики безопасности, запрещающие запускать софт захвата трафика на компьютерах пользователей.

Windows

Wireshark (скорее всего, как и любой другой софт анализа трафика) в ОС Windows решает эту проблему созданием и использованием специальной службы захвата, которая выполняется с правами, достаточными для доступа к имеющимся сетевым картам. Wireshark (а точнее, dumpcap) взаимодействует с драйвером (который называется “NPF”), делая возможным захват трафика, даже если сам Wireshark запущен из-под не-админской учетной записи. В противном случае (без NPF) так бы не вышло.

Если вы захотите проверить текущий статус службы NPF, вы её не найдете в списке служб Windows. Вместо этого нужно воспользоваться утилитой “sc.exe” с командой “query” из командной строки:

Утилиту sc ещё можно использовать для того, чтобы остановить или наоборот запустить службу NPF. Но для этого нужно, чтобы командная строка была запущена с администраторскими привилегиями.

Linux

А вот с Linux ситуация немного другая. Вместо службы сам пользователь должен иметь доступ к сетевой карте для задач по захвату. Как это реализовать – зависит от дистрибутива Linux, который вы используете. Вот несколько ссылок, которые могут быть очень полезны в этом вопросе:

И запомните: не надо запускать Wireshark (или любой другой софт захвата) от рута, если есть возможность этого избежать. Причина проста: пакеты, которые вы захватываете, могут использовать уязвимость или баги софта захвата, если они сформированы специальным образом с этой целью. Тем самым они смогут вызвать компрометирование всей системы. А так как любой софт захвата/анализа пакетов – это очень сложная махина (не верите – взгляните на исходный код Wireshark), то практически нет шансов, что там не будет багов.

Фильтр MAC-адреса получателя и неразборчивый режим

Каждая сетевая карта Ethernet имеет уникальный (ну да, в теории, но давайте в это не будем сейчас углубляться) физический адрес, который ещё называется МАС-адрес, “Media Access Control address”. Это 6-байтное поле, и мы сейчас опять же не будем рассматривать разные подробности типа OID. «Проблема» с захватом пакетов состоит в том, что сетевая карта Ethernet в нормальном режиме работы принимает только пакеты (правильнее сказать «кадры», на уровне L2), которые имеют MAC-адрес получателя именно этой карты, или кадры Broadcast/Multicast. Это значит, что сетевая карта, увидев кадр с чужим МАС-адресом получателя, отфильтрует его (кадр). В то же время сетевая карта настоящего получателя, увидев совпадение, кадр пропустит:

ПК с сетевой картой в нормальном режиме

Это – проблема для нас, ведь мы всеми силами стремимся избежать захвата трафика локально (на самом получателе или отправителе). И нам было бы хорошо отключить фильтр МАС-адресов на сетевой карте, которой мы захватываем трафик. Отключение такого фильтра называют «неразборчивым режимом» (Promiscuous Mode). Работая в таком режиме, сетевая карта пропускает каждый кадр, который на неё приходит, пусть даже ей и не предназначенный:

ПК с сетевой картой в неразборчивом режиме

Подытожим: в оптимальной схеме устройство захвата должно быть переведено в Promiscuous Mode, чтобы была возможность видеть и пропускать кадры, предназначенные другим получателям, а не только свои же, Broadcast’ы и Multicast’ы. Wireshark по умолчанию включает такой режим при захвате:


Включение неразборчивого режима в Wireshark

Пассивность

Захваченный дамп всегда должен иметь определенную точность, а иначе он не будет иметь ценности для анализа производительности или безопасности. Давайте выделим два основных требования при захвате:

  1. Захват лучше всегда производить устройством, которое не участвует в обмене данными (т.е., выделенным, обособленным устройством). Исключением может быть только случай, когда нет такой возможности, и при этом вы должны осознавать все побочные эффекты. Запомните, захват на любом устройстве, которое принимает активное участие в обмене данными (т.е., на брандмауэре, роутере, балансировщике нагрузки, WAN-акселераторе, прокси и т.д.) будет считаться «локальным», а потому очень нежелательным.
  2. Обособленное устройство захвата должно быть жестко настроено в режим listen only – только прием кадров. Оно никогда не должно отправлять в сеть свои собственные пакеты, искажая тем самым картину.

Пассивность – ключевая функция профессиональных карт захвата. Такие карты никогда не «шумят» в сеть и в дамп. «Обычные» сетевые карты в составе ПК или ноутбука созданы для операций приема/передачи данных, поэтому они имеют тенденцию постоянно что-то дополнительно передавать/принимать во время захвата, например, DHCP-запросы и т.д. (конечно, сама сетевая карта тут ни при чем, это фоновая активность ОС, но, тем не менее, она присутствует – прим. перев.) Для того, чтобы «успокоить» сетевую карту, можно отключить все протоколы в окне настройки.

Windows

В ОС Windows заходим в свойства сетевой карты и просто убираем все отметки возле названий протоколов:

Выключение протоколов в Windows

Wireshark, как и любой другой софт захвата трафика, и после отключения протоколов сможет использовать данную карту, а вот передавать карта уже ничего не сможет.

Linux

Кратко суть происходящего: выставляем режим «IP-адрес вручную», но не задаем сам адрес; включаем Promiscuous Mode; при помощи утилиты ethtool в цикле выключаем все дополнительные встроенные функции сетевой карты.

Дополнительные вычислительные возможности сетевой карты

Сетевую карту вполне можно считать маленьким компьютером внутри большого. Этот «маленький компьютер» ограничен рамками приема/передачи, а также обработки сетевых пакетов.

Обработка и связанные с ней вычисления включают:

  1. Расчет контрольных сумм (IP, TCP, UDP).
  2. Дробление больших кусков информации на части определенного размера, который определяется средой передачи.
  3. Наоборот, сливание входящих пакетов в большие куски, которые передаются вверх по стеку.

Не забывайте, что карта также является неким «сторожем»: она может принимать решения, какие пакеты передавать компьютеру для обработки, а какие отбросить. Причем в случае «отбросить» ваш ПК даже понятия не будет иметь, что эти пакеты вообще стучались в сетевую карту.

Раньше мы уже рассмотрели, что карта выкинет все пакеты/кадры, у которых был «не наш» destination MAC, если она не в Promiscuous Mode. Но также запомните, что обычная сетевая карта выкинет все кадры, у которых не сходится контрольная сумма, все кадры слишком большого размера (“oversize”), все слишком маленькие (“runt”). Или любые, поврежденные как-либо иначе. И вам тут Promiscuous Mode никак не поможет. Что это означает? То, что вы не сможете траблшутить проблемы на втором уровне модели OSI без профессиональной карты. Только такие карты смогут пропустить битые кадры дальше на обработку. Но, к счастью, траблшутингом на втором уровне модели OSI при помощи захвата трафика практически не занимаются – обычно это задача тестировщиков кабелей или администраторов сети, которые проверяют счетчики ошибок на портах коммутаторов/маршрутизаторов.

Тип пакетов и эффективность захвата

Обычно стоит принять за правило, что гигабитная сетевая карта вряд ли потянет скорость больше 200-300 Мбит/с, но может повезти и больше. Для многих становится неожиданным тот факт, что в вопросе «а сколько я смогу захватить без дропов?» больше важно не количество мегабит в секунду, а количество пакетов в секунду. Даже захват почти полного гигабита в секунду возможен, если у вас трафик – большие, напакованные кадры (как правило, размером в 1518 Байт включая контрольную сумму Ethernet). Но такой фокус уже не пройдет, если вы попытаетесь захватить поток очень маленьких кадров (вплоть до 64 Байт размером). Если линк насыщен мелкими кадрами, скорее всего, карта не вытянет больше нескольких сотен мегабит в секунду. Это не то, для чего она разрабатывалась. Такая ситуация похожа, как если бы вы пытались съесть полную тарелку супа чайной ложкой – это сработает, но эффективность не впечатлит. Но если у вас нет нормальной большой ложки – маленькая тоже выполнит свою работу, не столь эффективно, конечно.

И что же делать? Есть два варианта на выбор:

  1. Пользуйтесь своей обычной картой, только протестируйте, в каких ситуациях и насколько её хватит. А насколько её хватит – зависит от вашей цели (ещё раз просмотрите вторую статью, часть про процент дропов)
  2. Если процент дропов вырос до значения, которое вас не устраивает, придется подумать о покупке профессиональной карты. Такие карты мы тоже рассмотрим в одной из следующих статей.

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

VLAN-теги: есть карты, которые беспроблемно захватывают тегированные кадры, но некоторые могут повести себя не совсем предсказуемо, например:

Поэтому лучше проследите за поведением вашей карты в таких условиях заранее.

Размер кадров: обычная карта скорее всего проигнорирует кадр, больший, чем 1518 Байт (или 1522 Байта в случае, если есть VLAN-тег) и не доставит его дальше по стеку (стоит ли говорить, что в дамп такие кадры не попадут). Будет неприятно, если у вас в линке бегают подобные кадры, и они вам нужны для анализа (например, это могут также быть Jumbo Frames, или какое-нибудь шифрующее оборудование, добавляющее пару байтов к нешифрованному кадру). Проверьте, доступна и включена ли функция приема Jumbo frames в настройках сетевой карты.


Нарушенный порядок пакетов

Заключение

Захват при помощи обычной пользовательской сетевой карты – это нормально, если:

  1. Она не инжектирует в сеть свои собственные кадры (DHCP, ARP, IPv6 Multicast,…).
  2. Вы можете пережить тот факт, что нет возможности захватить битые кадры.
  3. Вы можете включить Promiscuous Mode на карте.
  4. Ваша карта достаточно быстра, чтобы захватить всё, что вы хотите (её процент дропов в пределах допустимого для вас).

Ну, а если нет – вам нужна профессиональная карта. Признаюсь, все последние захваты трафика за последние пару лет, кроме случаев захвата на ПК конечного пользователя (то есть, каждый раз, когда мне нужно было идти в датацентр), я проводил только при помощи профессионального оборудования. Просто это совсем не смешно – звонить заказчику и говорить «ну.. мой дамп оказался не очень хорошим, и нам лучше бы сделать все заново…» Особенно, когда процедура захвата трафика потребовала много времени и усилий на согласование.

В начале 1990-х годов, когда Wi-Fi только появился, был создан алгоритм Wired Equivalent Privacy, который должен был обеспечивать конфиденциальность Wi-Fi сетей. Однако, WEP оказался неэффективным алгоритмом защиты, который легко взломать.

На смену пришел новый алгоритм защиты Wi-Fi Protected Access II, который сегодня применяют большинство точек доступа Wi-Fi. WPA2 использует алгоритм шифрования, AES, взломать который крайне сложно.

А где же уязвимость?

Недостаток WPA2 заключается в том, что зашифрованный пароль передается при подключении пользователей во время так называемого 4-way handshake (4-х стороннего рукопожатия). Если мы поймаем handshake, то узнаем зашифрованный пароль и нам останется лишь расшифровать его. Для этой цели мы воспользуемся aircrack-ng.

Так как же взломать?

Шаг 1. Определяем интерфейс

Для начала нужно узнать, какой сетевой интерфейс нам нужен, для этого вводим команду:


В моем случае всего три интерфейса, два из которых не имеют беспроводных расширений (no wireless extensions). Поэтому нас интересует только wlan0.

Шаг 2. Переводим сетевой адаптер в режим мониторинга

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


Обратите внимание, что airmon-ng переименовал ваш интерфейс (у меня он стал называться mon0, но вам, все же, стоит проверить).

Шаг 3. Перехватываем трафик

Теперь, когда наш сетевой адаптер находится в режиме мониторинга, мы можем захватить, подходящий мимо нас трафик, используя команду airodump-ng. Вводим:


image

Обратите внимание, что все видимые точки доступа перечислены в верхней части экрана, а клиенты — в нижней части экрана.

Шаг 4. Концентрируем перехват на конкретной точке доступа.

Наш следующий шаг — сосредоточить наши усилия на одной из точек доступа и на ее канале. Нас интересует BSSID и номер канала точки доступа, которую мы будем взламывать. Давайте откроем еще один терминал и введем:


image

  • 08:86:30:74:22:76 BSSID точки доступа
  • -c 6 канал на котором работает точка доступа Wi-Fi
  • WPAcrack файл в который запишется handshake
  • mon0 сетевой адаптер в режиме мониторинга

Шаг 5. Получение handshake

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

То есть нам просто нужно отключить подключенных пользователей, чтобы они подключились снова. Для этого открываем ещё один терминал и вводим:


image

  • 100 количество пользователей, которые будут деаутентифицированы
  • 08:86:30:74:22:76 BSSID точки доступа
  • mon0 сетевой адаптер

image

Обратите внимание на верхнюю строку справа, airodump-ng вывел: «Handshake WPA». То есть, мы успешно захватили зашифрованный пароль! Это первый шаг к успеху!

Шаг 6. Подбираем пароль

Теперь, когда у нас есть зашифрованный пароль в нашем файле WPAcrack, мы можем запустить подбор пароля. Но для этого нам нужно иметь список с паролями которые мы хотим использовать. Найти такой список можно за 5 минут в Гугле. Я, же, буду использовать список паролей по умолчанию, включенный в aircrack-ng: BackTrack darkcOde.

Открываем новый терминал и вводим:


image

  • WPAcrack-01.cap файл в который мы записывали handshake (airodump-ng приписал в конце -01.cap)
  • /pentest/passwords/wordlist/darkc0de абсолютный путь к списку паролей

Сколько времени это займёт?

Этот процесс может занять много времени. Все зависит от длины вашего списка паролей, вы можете ждать от нескольких минут до нескольких дней. На моем двухъядерном процессоре Intel aircrack-ng подбирает чуть более 800 паролей в секунду.

Когда пароль будет найден, он появится на вашем экране. Будет ли подбор пароля успешным или нет, зависит от вашего списка. Если у вас не получилось подобрать пароль по одному списку, не отчаивайтесь, попробуйте другой.

Программа Wireshark использует для захвата сетевого трафика библиотеки libpcap или WinPcap для Windows. Библиотека WinPcap не поддерживает использование беспроводных сетевых карт, поэтому напрямую не позволяет захватывать Wi-Fi трафик с помощью Wireshark и других приложений, таких как Cain & Abel или Elcomsoft Wireless Security Auditor для Windows.

Ограничения WinPcap и Wi-Fi трафик в Wireshark

Ограничения захвата WiFi пакетов в Windows зависят от Winpcap, а не от самого Wireshark. Wireshark, однако, включает в себя поддержку Airpcap, специального WiFi сетевого адаптера, драйверы которого поддерживают мониторинг сетевого трафика в режиме мониторинга в Windows, что называется перехватом трафика в WiFi сети в беспорядочном режиме. Однако этот тип карт устарел и не может перехватывать трафик в сетях с новейшими стандартами WiFi (802.11ac).

Acrylic Wi-Fi является инновационной альтернативой для захвата сетевого трафика Wi-Fi в режиме монитора из Windows, включая новейшие стандарты 802.11ac.

Acrylic Wi-Fi Sniffer

Acrylic WiFi Sniffer также позволяет захватывать пакеты WiFi в режиме монитора с помощью Wireshark из Windows (в последних версиях Wireshark 3.0.0 или выше) и с помощью других продуктов Acrylic WiFi, таких как Heatmaps или Professional. Поскольку он был разработан как экономичная и легко конфигурируемая альтернатива конкретному оборудованию типа AirPCAP, он может восстанавливать все данные, доступные на картах этого типа, включая значения SNR, а также быть совместим с последними стандартами 802.11ac со всеми полосами пропускания (20, 40, 80 и 160 МГц).

Акриловый Wi-Fi Sniffer e интерфейсы WiFi en Wireshark


Подсветка панели управления Acrylic Wi-Fi Sniffer с секцией интеграции и конфигурации.

После завершения установки мы запустим Wireshark от имени администратора и увидим интерфейсы, доступные в Acrylic Wi-Fi Sniffer.


Выберите интерфейс, который мы хотим использовать с Acrylic Wi-Fi Sniffer, нажмите на колесо настройки слева, как показано на предыдущем скриншоте, и настройте каналы и полосу пропускания, в которых мы хотим сделать снимок.

После настройки мы можем начать перехват WiFi сети в Wireshark и получать пакеты.

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


Захват WiFi трафика с помощью Wireshark в Windows


Видеоруководство Акриловый Wi-Fi Con Wireshark в Windows

Мы подготовили видео, которое объясняет процесс, посмотрите на него, если у вас есть сомнения или вы хотите посмотреть, как захватить WiFi трафик с помощью Wireshark в окнах.

Вы также можете скачать Acrylic Wi-Fi Sniffer, который также позволяет интегрироваться с Wireshark в ознакомительной версии.

Захват WiFi трафика с Wireshark и Acrylic Wi-Fi Sniffer
Проанализируйте WiFi пакеты с помощью Wireshark в Windows благодаря Acrylic Wi-Fi Sniffer.

Мы благодарны вам за ваши комментарии или за то, что вы поделились этой статьей в социальных сетях с помощью кнопок ниже. Не забудьте просмотреть информацию о картах, поддерживающих Acrylic Wi-Fi Sniffer.

Здарова народ! Столкнулся с проблемой, в этом деле я не спец вот и прошу вашей помощи, у меня адаптер TP-Link TL-WN7227N и я его перевёл в режим монитора, как сделать всё обратно, как было?

Какой командой ты это сделал? Пробрвал ломать сеть соседа?

airmon-ng start. Ну типо да xD


Посмотри в man airmon-ng

AIRMON-NG(8) System Manager's Manual AIRMON-NG(8)

NAME airmon-ng - POSIX sh script designed to turn wireless cards into monitor mode.

SYNOPSIS airmon-ng <start|stop> <interface> [channel] airmon-ng <check> [kill]

DESCRIPTION airmon-ng This script can be used to enable monitor mode on wireless interfaces. It may also be used to go back from monitor mode to man‐ aged mode. Entering the airmon-ng command without parameters will show the interfaces status. It can also list/kill programs that can interfere with the wireless card operation.

OPTIONAL PARAMETERS start <interface> [channel] Enable monitor mode on an interface (and specify a channel). Note: Madwifi-ng is a special case, 'start' has to be used on wifi interfaces and 'stop' on ath interfaces.

stop <interface> Disable monitor mode and go back to managed mode (except for madwifi-ng where it kills the ath VAP).

check [kill] List all possible programs that could interfere with the wireless card. If 'kill' is specified, it will try to kill all of them.

--verbose This flag must precede start/stop/check and can be combined with with other parameters or used alone. This flag will increase the verbosity to provide additional useful information which may not be needed for normal operation.

--debug This flag must precede start/stop/check and can be combined with with other parameters or used alone. This flag will increase the verbosity to debug level to assist in troubleshooting errors in airmon-ng. Use this flag when opening a bug, but only use --verbose when requesting support in irc.

--elite WARNING: DO NOT USE: This flag must precede start or stop and will prevent airmon-ng from removing interfaces. WARNING: Use of this flag will immediately disqualify receiving any support from the aircrack-ng team, due to the fact that this behavior is known to be

Читайте также: