Admin
Администратор
Руководство по использованию инструмента «AngryOxide».
Руководство по использованию инструмента «AngryOxide» для тестирования безопасности беспроводных сетей стандарта IEEE 802.11 Wi-Fi.1. Введение.
«AngryOxide» — современный инструмент для автоматизированного анализа и эксплуатации уязвимостей в сетях стандарта IEEE 802.11 (Wi-Fi), разработанный на языке программирования Rust [1].
Поддерживаются все основные диапазоны частот: 2,4 ГГц, 5 ГГц, 6 ГГц (Wi-Fi 6E) и 60 ГГц (IEEE 802.11ad).
Основное назначение утилиты – захват и валидация сообщений EAPOL (Extensible Authentication Protocol over LAN) в отношении сетей WPA/WPA2/WPA3, а также идентификаторов PMKID (Pairwise Master Key Identifier) уязвимых точек доступа (AP) для последующей криптоаналитической обработки с использованием инструментов типа «Hashcat».
Данное руководство предназначено для специалистов в области информационной безопасности и сетевых администраторов, желающих освоить практические аспекты применения утилиты «AngryOxide».
2. Основные возможности.
Полная функциональность реализована на базе ОС Linux с использованием драйверов nl80211.
На платформе macOS поддержка варьируется: для процессоров Intel обеспечены мониторинг и инъекция (с ограничениями), для Apple Silicon (M1/M2/M3) – только пассивный мониторинг через tcpdump.
Рекомендуется использование внешних USB-адаптеров для достижения максимальной совместимости.
Далее в тексте применение AngryOxide рассматривается в среде ОС Linux.
Ключевые функциональные возможности инструмента включают:
1. Механизм атаки на основе состояний по принципу конечного автомата, который позволяет минимизировать генерируемый трафик и повысить скрытность воздействия.
2. Возможность указания целей по MAC-адресу и SSID, что обеспечивает адресную работу. Дополнительно реализована функция белого списка (whitelist) для исключения конкретных сетей из зоны воздействия, особенно полезная при отсутствии явных целей.
3. Самостоятельное обнаружение целевых каналов и динамическое переключение между ними без ручного вмешательства (режим «--autohunt»).
4. Отображение всей релевантной информации посредством Terminal-UI в удобном формате, оптимизированном для удаленного доступа по SSH. Режим "Headless" генерирует grep-совместимый вывод, удобный для перенаправления в лог-файлы, что упрощает автоматизацию и анализ.
5. Ограничение количества излучаемых кадров деаутентификации, чтобы избежать избыточного нарушения работы атакуемых сетей.
6. Валидацию 4-шагового рукопожатия EAPOL (4-Way Handshake) с использованием проверки значений Nonce, счетчика Replay Counter и временных меток. Автоматическое извлечение PMKID из доступных точек доступа.
7. Поддержку протокола GPSD [10] с возможностью указания удаленного адреса сервиса и функцию геозонирования (geo-fencing) для ограничения выполнения атак только внутри заданной геометрической области (по широте, долготе и радиусу).
8. Запись GPS-данных в формате Kismet в выходные файлы в формате PCAPNG, а также сохранение базы данных KismetDB [6] со всеми кадрами для последующей обработки. Все файлы упаковываются в сжатый архив (gzipped tarball).
3. Сравнение с аналогами.
Для объективной оценки «AngryOxide» целесообразно провести сравнение с аналогами типа «hcxdumptool» [3] (фокус на захвате сообщений EAPOL), «Aircrack-ng» [4] (модульный набор утилит), «Wifite» [7] (скрипт автоматизации атак) и «Kismet» (пассивный анализатор).
Ключевые характеристики утилит на основе анализа документации и эмпирических тестов (данные на октябрь 2025 г.) представлены в Таблице №1.
Таблица №1
| Характеристика | AngryOxide | hcxdumptool | Aircrack-ng | Wifite | Kismet |
|---|---|---|---|---|---|
| Язык реализации | Rust | C | C | Python | C++ |
| Режим мониторинга | Linux: + macOS Intel: + macOS M: ограничения | Linux: + macOS: – | Linux: + macOS: + | Linux: + macOS: – | Linux: + macOS: + |
| Инжекция пакетов | Linux: + macOS Intel: + macOS M: – | Linux: + macOS: – | Linux: + macOS: – | Linux: + macOS: – | Отсутствует |
| Реализация атак | Deauth, PMKID, Anonymous Reassociation, CSA, RogueM2, Disassociation (Wi-Fi 6E) | Deauth, PMKID | Deauth, Fake Auth, ARP Replay | Deauth, PMKID, WPS, Evil Twin | Отсутствует |
| Автоматизация | Высокая (система управления на основе состояний, режимы auto-hunt, autoexit) | Средняя (скрипты) | Низкая (ручная) | Высокая (автоматизированная) | Средняя (логирование) |
| Интерфейс | TUI, headless | CLI | CLI | CLI | Web UI, CLI |
| GPS/Геофенсинг | GPSD, геозонирование | GPSD | Отсутствует | Отсутствует | GPSD |
| Формат вывода данных | pcapng, kismetdb, hc22000 (tar.gz) | pcapng, hc22000 | pcap, cap | pcap, hc22000 | pcapng, kismetdb |
AngryOxide выделяется высоким уровнем автоматизации и уникальными функциями, такими как геозонирование (ограничение операций географической зоной) и TUI для интерактивного мониторинга.
В сравнении с hcxdumptool, инструмент предлагает расширенный интерфейс и поддержку macOS, минимизируя необходимость в дополнительных скриптах.
По отношению к Aircrack-ng AngryOxide упрощает рабочий процесс, интегрируя модули в единую утилиту.
Wifite уступает AngryOxide в сложности атак (отсутствие RogueM2 или Wi-Fi 6E-оптимизаций), а Kismet – в активных возможностях, фокусируясь только на пассивном анализе.
4. Совместимые модели Wi-Fi адаптеров для AngryOxide.
Эффективность работы AngryOxide напрямую зависит от аппаратной совместимости, в частности от внешних USB Wi-Fi адаптеров, поддерживающих режим мониторинга (monitor mode) и инжекцию кадров (packet injection).
Эти возможности обеспечиваются специфическими чипсетами и драйверами ядра Linux.
Разработчики проекта подчеркивают, что приведенный ниже список не является исчерпывающим, но включает проверенные модели с оптимальной совместимостью. Адаптеры классифицированы по стандартам Wi-Fi для удобства: Wi-Fi 6E (максимальная скорость и спектр), Wi-Fi 5 (базовый вариант), Wi-Fi 4 (бюджетный вариант), см. Таблицу 2.
Полный каталог поддерживаемых адаптеров доступен в репозитории USB-WiFi Adapters (morrownr) [5].
Таблица №2
| Стандарт | Производитель | Модель | Чипсет | Драйвер | Примечания |
|---|---|---|---|---|---|
| WiFi 6e | ALFA | AWUS036AXM | mt7921aun | mt7921u | Ядро 5.19+ (активный мониторинг не работает) |
| WiFi 6e | ALFA | AWUS036AXML | mt7921aun | mt7921u | Ядро 5.19+ (активный мониторинг не работает) |
| WiFi 6e | Netgear | A8000 | mt7921aun | mt7921u | Ядро 6.4+ (активный мониторинг не работает) |
| WiFi 5 | ALFA | AWUS036ACM | mt7612u | mt76x2u | Полная совместимость |
| WiFi 5 | Panda | PAU0D | mt7612u | mt76x2u | Полная совместимость |
| WiFi 5 | Netgear | A6210 | mt7612u | mt76x2u | Полная совместимость |
| WiFi 5 | ALFA | AWUS036ACHM | mt7610u | mt76x0u | Полная совместимость |
| WiFi 5 | Panda | PAU0B | mt7610u | mt76x0u | Полная совместимость |
| WiFi 5 | Panda | PAU0A | mt7610u | mt76x0u | Полная совместимость |
| WiFi 5 | Panda | PAU09 | rt5572 | RT5572 | Без активного мониторинга |
| WiFi 4 | Panda | PAU03 | rt5370 | RT5370 | Без активного мониторинга |
| WiFi 4 | ALFA | AWUS036NHA | ar9271 | ath9k_htc | Без активного мониторинга |
Приоритетные чипсеты mt76x2u/mt7612u и mt76x0u/mt7610u обеспечивают максимальную функциональность («chefs kiss» в терминологии разработчиков).
5. Установка AngryOxide и начальная конфигурация.
Установка бинарных файлов (рекомендуется).
Bash:Скопировать в буфер обмена
tar -xf angryoxide-linux-x86_64.tar.gz
chmod +x install.sh
sudo ./install.sh
Компиляция исходного кода.
Bash:Скопировать в буфер обмена
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone --recurse-submodules https://github.com/Ragnt/AngryOxide.git
cd AngryOxide
make && sudo make install
Перевод беспроводного интерфейса в режим мониторинга.
Пример активации режима для сетевого адаптера EDUP AX3000:
Bash:Скопировать в буфер обмена
sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode monitor
sudo ifconfig wlan0 up
Конкретный набор команд зависит от модели устройства.
6. Запуск инструмента: базовые сценарии.
6.1. Пассивный сбор информации без излучения сигналов.
Пассивный режим работы обеспечивает скрытное определение топологии атакуемых сетей и их параметров без излучения сигналов.
Алгоритм сбора информации основан на захвате и анализе кадров типа «control» и «management», позволяя извлекать следующие параметры:
– SSID (включая скрытые, через анализ содержимого кадров «Probe Response»);
– BSSID AP (mac-адрес AP) и идентификатор производителя (OUI);
– уровень сигнала RSSI AP;
– частотный канал AP;
– тип шифрования (OPN/WPA/WPA2/WPA3/Enterprise);
– mac-адреса и уровни сигнала RSSI подключенных устройств (STA).
Пример команды:
sudo angryoxide -i wlan0 --notransmit -b 5 --autohunt --dwell 3 --headless --gpsd 192.168.1.100:2947 > passive_capture.log
В качестве аргументов в примере указаны:
«-i wlan0»: сетевой интерфейс;
«--notransmit»: пассивный режим работы;
«-b 5»: режим анализа всех частотных каналов в диапазоне 5 ГГц (альтернативы: «-b 2/6/60» для 2,4/6/60 ГГц);
Режимы анализа каналов:
«-b <диапазон>»: все поддерживаемые каналы выбранного диапазона;
«c <список>» (например, «-c 1,6,48»): конкретные каналы (независимо от диапазона).
По умолчанию: каналы 1, 6, 11 (2,4 ГГц).
«--auto-hunt»: динамическая идентификация и фиксация на каналах с активными AP (исключает пустые каналы);
«--dwell 3»: время пребывания на канале (в секундах; по умолчанию — 2 с);
«--headless»: режим без UI, с выводом в stdout для логирования;
«--gpsd 192.168.1.100:2947»: интеграция с удаленным GPSD-сервером для геопривязки данных.
6.2. Атака на конкретную сеть.
Выбор целей и методов атак в AngryOxide определяется уровнем защиты цели и приоритетами (скрытность или эффективность).
По умолчанию инструмент циклически атакует все доступные AP в радиусе действия с применением полного спектра атак до ручного завершения работы пользователем или после успешной атаки, если указан ключ « --autoexit».
Пример команды:
sudo angryoxide -i wlan0 \
-t "CORP-GUEST" \
--autoexit \
--combine
В качестве аргументов в примере указаны:
«-t "CORP-GUEST"»: цель по SSID (и/или MAC: «-t aa:bb:cc:dd:ee:ff»); множественные: файл «--targetlist targets.txt»;
«--autoexit»: завершение работы по успешному захвату всех хешей целей;
«--combine»: объединение всех «.hc22000»-файлов в единый для общей обработки (Hashcat).
Также в инструменте предусмотрено использование «белого списка» сетей, которые не подлежат атаке:
«-w Home_Network» или «--whitelist-entry Home_Network»; множественные: файл: «--whitelist whitelist.txt».
Пример комбинированной команды:
sudo angryoxide -i wlan0 -t 00:11:22:33:44:55 -w Home_Network
В данном случае AP с mac-адресом 00:11:22:33:44:55 будет атакована при условии, что SSID AP не совпадает с именем «Home_Network».
6.3. «Wardriving» с геозонированием.
Режим геозонирования («--geofence») ограничивает активные операции строго заданной геометрической областью, снижая риски. Требует GPSD для работы.
Bash:Скопировать в буфер обмена
sudo angryoxide -i wlan0 \
--autohunt \
--gpsd 192.168.1.100:2947 \
--geofence \
--center 55.7558,37.6173 \
--distance 300
В качестве аргументов в примере указаны:
«--gpsd <host
«--geofence»: активация режима;
«--center <широта,долгота>»: центр зоны;
“--distance <метры>”: радиус зоны (здесь - 300 м);
Дополнительно: «--geofence-timeout <секунды>» Таймаут при потере сигнала GPS (по умолчанию 300 секунд).
7. Продвинутые режимы и автоматизация.
7.1. Обзор атак: классификация и технические принципы.
Систематическая классификация атак с указанием технических механизмов, условий срабатывания и практических сценариев применения представлена в Таблице 3.
Таблица №3
| Атака | Краткое описание | Алгоритм | Условия срабатывания | Сценарии применения | Ключ отключения |
|---|---|---|---|---|---|
| PMKID Collection (EAPOL M1) | Получение идентификатора мастер-ключа парной сессии (PMKID) без участия STA. | 1. Инструмент инициирует процедуру ассоциации с AP (кадр «Association Request») от имени STA с произвольным mac-адресом. 2. AP отвечает сообщением EAPOL M1, содержащим PMKID внутри информационного элемента (IE) RSN. 3. PMKID извлекается и сохраняется в формате «.hc22000». 4. Инструмент отвечает кадром «Disassociation» для корректного завершения процесса обмена с AP. | PMKID генерируется только в RSN-сетях (WPA2-PSK или WPA3-SAE Transition Mode); Сообщение M1 от уязвимых AP содержит PMKID внутри элемента RSN IE. | Работа в окружении с высоким уровнем контроля (WIDS); отсутствие возможности других атак на STA или самих STA. | --disable-pmkid |
| Deauthentication (4-Way Handshake) | Принуждение клиента к повторной аутентификации для захвата полного цикла сообщений EAPOL (M1–M4). В настоящее время данный тип атаки широко известен, детектируется WIDS и вызывает блокирование обмена с легитимной AP со стороны современных STA («blacklist»). Реализованная в инструменте настройка уровня интенсивности атаки снижает, но не исключает риск такой блокировки. | Кадр «Deauthentication» направляется от имени AP в адрес STA в каждом цикле атаки, широковещательный кадр – в каждом четвертом. При отправке адресного кадра также направляется аналогичный кадр в адрес AP от имени STA. 2. Клиент переподключается → перехват сообщений M1 (от AP), M2 (от клиента), M3 (от AP), M4 (от клиента). 3. Валидация полного цикла перехваченных сообщений по параметрам «Nonce, «Replay counter» и временным меткам. | AP не использует защиту MFP. | Отсутствие условий для проведения других атак. | --disable-deauth |
| Disassociation | Аналогична предыдущей, но использует кадры «Disassociation» вместо «Deauthentication». Указание причины деассоциации «Reason Code 71» позволяет избежать блокировки взаимодействия с AP со стороны STA при работе в диапазоне 6 ГГц (Wi-Fi 6E) благодаря специфике обработки согласно стандарту. | Аналогично Deauthentication с заменой типа кадра. | AP не использует защиту MFP. | Сети WiFi 6E. | --disable-deassoc |
| Anonymous Reassociation (MFP Bypass) | Обход режима защиты AP Management Frame Protection (802.11w) уязвимых AP. | 1. Инструмент направляет в адрес AP кадр «Reassociation Request» от имени STA с mac-адресом FF:FF:FF:FF:FF:FF. 2. Уязвимые AP, некорректно обрабатывающая такие кадры, в ответ направляет широковещательный ответ – кадр «Deauthentication» с кодом причины «Class3FrameReceivedFromNonassociatedSTA». 3. Клиент переподключается → перехват полного цикла сообщений EAPOL (M1–M4). | AP не фильтрует значение FF:FF:FF:FF:FF:FF в поле «source MAC» принимаемых кадров; AP не игнорирует кадр «Reassociation Request» от неассоциированных STA. | Работа в окружении с высоким уровнем контроля (WIDS). | --disable-anon |
| Channel Switch Announcement (CSA) | Принудительный перевод клиентов на другой канал. | 1. Инструмент направляет от имени AP 5 кадров типа «Beacon», содержащих элемент «Channel Switch Announcement» с указанием на частотный канал, отличный от легитимного. 2. Клиенты переходят на указанный канал (пустой). 3. Клиенты переподключаются к AP → перехват полного цикла сообщений EAPOL (M1–M4). | Корректная обработка элементов CSA со стороны STA согласно стандарту IEEE 802.11. | Работа в окружении с высоким уровнем контроля (WIDS). | --disable-csa |
| Rogue M2 Collection (на основе Probe Request) | Получение сообщения EAPOL M2 от клиента без взаимодействия с реальной AP. | 1. STA отправляет кадр «Probe Request» с известным SSID; 2. AngryOxide отвечает на запрос от имени AP с этим SSID и RSN mode «WPA2-CCMP», инициирует дальнейший обмен кадрами; 3. Клиент инициирует ассоциацию → отправляет сообщение M2; 4. Инструмент сохраняет сообщение M2 и прерывает процедуру рукопожатия. | Перехват кадров «Probe Request» от STA. | Cбор сообщений M2 при отсутствии реальных AP в месте атаки; атака на режим WPA3 «Transition mode». | --disable-roguem2 |
Примечания:
а) Атаки типа «PMKID Collection» и «Rogue M2 Collection» реализуются на основе состояний по принципу конечного автомата.
б) Для остальных атак предусмотрена настройка уровня их интенсивности, который определяет интервал между ними в одном атакующем цикле (ключ «--rate») относительно частоты кадров Beacon атакуемой AP. Такая архитектура обеспечивает высокую автоматизацию при строгом контроле рисков.
в) AngryOxide реализует расширенный набор причин деассоциации, специфичный для Wi-Fi 6E согласно стандарту IEEE 802.11-2020 (раздел 9.4.1.7 «Reason Code field») [8]. Коды причин приведены в приложении и предназначены для повышенной детализации состояния отказа и могут быть использованы для имитации этих сетевых событий. В отличие от устаревших (например, «Unspecified reason» или «Disassociated because sending STA is leaving BSS»), Wi-Fi 6E-коды минимизируют признаки атаки, так как современные клиенты и AP интерпретируют их как системные ошибки, а не внешнее вмешательство.
г) Валидация всех сообщений EAPOL производится автоматически.
7.2. Графический интерфейс пользователя.
AngryOxide оснащен терминальным графическим интерфейсом (TUI), который обеспечивает мониторинг сетевой активности, атак и собранных данных в реальном масштабе времени.
Интерфейс содержит пять основных элементов – строку состояния, панель точек доступа, панель клиентских устройств, панель рукопожатий, панель статуса – с возможностью интерактивного взаимодействия (пауза обновлений, добавление целей).
Пауза обновлений (UI Paused) позволяет фиксировать данные для анализа или копирования. Возобновление работы осуществляется клавишей «пробел» или «Enter».
7.2.1 Строка состояния (Status Bar).
Строка состояния служит ключевым инструментом диагностики в реальном времени и должна регулярно проверяться во время работы
| Параметр | Описание |
|---|---|
| Interface | Активный сетевой интерфейс (например, wlan0). |
| MacAddr | mac-адрес, используемый для подделки сообщений (AP/клиент; если не задан, генерируется случайно). |
| Frequency | Текущая частота, диапазон, номер канала. |
| Runtime | Время работы в формате ЧЧ:ММ:СС. |
| Frames | Общее количество обработанных кадров на текущий момент. |
| Rate | Текущая скорость обработки кадров/сек (не усредненная). |
| Empty Reads | Производительность буфера обработки кадров (высокие значения свидетельствуют об оптимальной производительности, в то время как нулевые могут указывать на потерю кадров, требуя реконфигурации интерфейса или снижения скорости атак). |
| UI | Статус: Running (активно) / Paused (приостановлено). |
7.2.2 Панель точек доступа (Access Points Panel).
Панель точек доступа отображает совокупность сведений об AP (с деталями WPS и идентификаторе производителя OUI при выделении) и ассоциированных клиентах в табличном виде
| Описание | |
|---|---|
| TGT | ✓ – метка цели для атаки. |
| MAC Address | MAC-адрес AP. |
| CH | Канал, объявленный AP (не текущий канал сканирования). |
| RSSI | Последнее известное значение RSSI. |
| Last | Время с момента поступления последнего кадра от AP. |
| SSID | Имя сети (скрытые раскрываются при обнаружении). |
| Clients | Кол-во клиентов. |
| Tx | Кол-во атакующих кадров, которое было направлено. |
| 4wHS | ✓ – метка индикации получения полного (валидного) 4-way handshake AP. |
| PMKID | ✓ – метка индикации получения (валидного) PMKID. |
Рекомендации по использованию: для целевых операций выделите строку AP и нажмите клавишу быстрого доступа «t» для обозначения ее как цели, что автоматически распространит это правило на связанные AP с тем же SSID.
7.2.3 Панель клиентских устройств (Stations Panel).
Панель клиентских устройств перечисляет неассоциированные клиенты и необходима для определения потенциальных возможностей для атаки «Rogue M2 Collection»
| Описание | |
|---|---|
| MAC | MAC-адрес STA и имена запрашиваемых внутри Probe Request сетей. |
| RSSI | Последнее известное значение RSSI. |
| Last | Время с момента поступления последнего кадра. |
| Tx | Кол-во раз, когда излучались кадры для атаки STA. |
| Rogue M2 | ✓ – метка получения сообщений M1/M2 от STA для целевой сети. |
| Probes | Кол-во перехваченных от STA запросов типа Probe Request. |
7.2.4 Панель рукопожатий (Handshakes Panel).
Панель рукопожатий содержит сообщения EAPOL, сгруппированные по последовательностям
Метки «✓» для разных типов сообщений в одной строке означают, что относятся в одной сессии аутентификации.
Цель обработки – перехватить все образующие рукопожатие сообщения EAPOL и установить их принадлежность к одной сессии аутентификации при помощи различных методов валидации.Если эта цель достигнута, отображается метка «OK».На рисунке в выделенной строке отображены: относительное время, MIC, ReplayCounter, последние 4 байта Nonce, типы перехваченных сообщений.
Таблица №7
| Колонка | Описание |
|---|---|
| Timestamp | Время последнего сообщения EAPOL. |
| AP MAC | MAC-адрес AP. |
| Client | MAC-адрес STA. |
| SSID | Имя сети AP. |
| M1–M4 | ✓ – метка наличия сообщений EAPOL 1–4. |
| PM | ✓ – метка наличия PMKID. |
| OK | ✓ – достижение цели перехвата. |
| NC | Рукопожатие подлежит процедуре Nonce Correction следующими методами: ✓ (обычный), BE (Big Endian), LE (Little Endian), RG (RogueM2). |
7.2.4 Панель статуса (Status Panel).
Эта вкладка предназначена для отображения расширенной диагностической информации, статистики и логов сообщений, помогая в мониторинге производительности и отладке.
Она разделена на две основные части: верхнюю (статистика и GPS/анимация) и нижнюю (таблица сообщений)
Верхняя часть панели разделена на два блока.
Левый блок («Stats for nerds») отображает счетчики сетевых кадров типа Beacon, Probe Request, Probe Response, Authentication, Association, Deauthentication, Reassociation. Это позволяет оценивать объем и тип трафика в реальном времени.
Правый блок отображает параметры геопозиционирования, такие как «Fix» (статус фиксации: No Fix, 2D Fix или 3D Fix), «Latitude» (широта), «Longitude» (долгота), «Alt (MSL)» (высота над уровнем моря), «Alt (AGL)» (высота над землей), «Speed» (скорость), «Heading» (направление), «EPH (горизонтальная погрешность), «EPV» (вертикальная погрешность) и Time» (временная метка).
Если данные GPS отсутствуют, блок показывает анимацию (Snowstorm или Matrix Snowstorm) для визуального заполнения пространства, с заголовком «Snowfall for geeks (No GPS)» или «Matrix for geeks (No GPS)» в зависимости от состояния ui_snowstorm.
Нижняя часть - таблица сообщений («Messages»), которая отображает лог с колонками «Timestamp» (временная метка в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС UTC), «Type» (тип: Error - красный, Warning - желтый, Priority - зеленый, Info - нейтральный, Status - циановый) и «Content» (содержимое сообщения). Таблица поддерживает прокрутку (scrollbar), но не выделение строк.
Данные обновляются в реальном времени если UI не приостановлен, и реверсируются для показа последних сообщений сверху.
Рекомендации по использованию: Переключайтесь на вкладку «Status» с помощью клавиш [a]/[d] для диагностики, особенно при проблемах с GPS или низкой производительностью.
7.3. Инструмент AngryTrainer: упрощённый режим для обучения.
Для обучения и демонстрации базовых принципов атак на беспроводные сети рекомендуется использование упрощённой версии AngryOxide – комплементарного инструмента AngryTrainer [2], ориентированного на выполнение изолированных, «однократных» атак.
Разработанный тем же автором (Ragnt), AngryTrainer предназначен для образовательных сценариев, где требуется пошаговое объяснение механизмов инъекции кадров.
Установка AngryTrainer аналогична AngryOxide (сборка из исходного кода через Rust).
Доступные атаки в AngryTrainer:
«--deauth-all»: широковещательная деаутентификация.
«--deauth-client <MAC-адрес STA>»: адресная деаутентификация STA.
Дополнительный ключ «--deauth-code» обеспечивает выбор используемого кода причины (см. Приложение Г).
«--csa»: Channel Switch Announcement.
«--anon-reassoc»: Anonymous Reassociation.
«--rogue»: Rogue M2 Collection в отношении STA, которая направляет запросы Prove Request в отношении заданного имени сети (SSID).
«--pmkid»: PMKID Collection.
Примеры использования:
а) Демонстрация deauth-атаки с заданным кодом причины деаутентификации:
angrytrainer -i wlan0 -t aa:bb:cc:dd:ee:ff --deauth-client aa:bb:cc:dd:ee:66 --deauth-code 7
б) Демонстрация атаки «PMKID Collection» в отношении сети с SSID «CORP-GUEST»:
angrytrainer -i wlan0 -t "CORP-GUEST" --pmkid
В контексте использования AngryOxide рекомендуется начинать с изучения AngryTrainer для понимания базовых механизмов атак и используемых для этого кадров, затем переходить к автоматизированным сценариям.
Для визуализации процесса – использовать утилиту Wireshark с соответствующим фильтром.
8. Интерпретация результатов и постобработка
а) Структура выходных файлов:
oxide-2025-11-02_22-24-44.tar.gz/
├── CORP-GUEST_aa-bb-cc-dd-ee-ff.hc22000
├── capture.pcapng
└── capture.kismetdb
Файлы в формате «*.pcapng» разделяются на фрагменты объемом 100 Мбайт каждый и содержат перехваченные кадры вместе с данными GPS (при наличии, Kismet Custom Option Block).
«*.kismetdb» представляет собой файл базы данных sqLite3, содержащий вышеуказанную информацию в табличном виде.
«*.hc22000» – файлы, содержащие сообщения EAPOL. По умолчанию информация для каждой AP сохраняется в отдельном файле; использование опции «--combine» при запуске позволяет объединить вывод в один общий.
б) Криптоаналитическая обработка с использованием инструмента «Hashcat» [9]:
hashcat -a 3 -m 22000 hashes.hc22000 ?d?d?d?d?d?d?d?d
в) Экспорт геоинформации при помощи утилиты kismetdb_to_kml из пакета Kismet [6]:
kismetdb_to_kml --in some-kismet-file.kismet --out some-file.kml
9. Рекомендации по операционной безопасности.
а) Работа в изолированной среде.
Устанавливайте и запускайте AngryOxide в виртуальной машине на базе ОС Linux или на отдельном устройстве, не подключенном к вашей собственной инфраструктуре.
Изоляция упрощает очистку следов после тестирования, снижая риск компрометации.
б) Ограничение целей атак.
Всегда указывайте конкретные цели атак и/или исключения, чтобы не атаковать все сети в радиусе действия и снизить вероятность обнаружения.
в) Отключение ненужных атак и использование пассивного режима, когда это возможно.
Активные атаки генерируют трафик, который может быть замечен системами WIDS или нарушить работу сетей.
По возможности, используйте пассивный режим для перехвата сообщений рукопожатия WPA2 при подключении клиента к сети.
г) Настройка уровня интенсивности атак и времени пребывания на канале.
Установите подходящий уровень интенсивности атак (--rate 1 для низкого) и время пребывания на канале (--dwell), чтобы избежать чрезмерной активности.
д) Использование геозонирования.
При работе в движении ограничьте работу инструмента конкретной зоной, автоматически останавливая операции за ее пределами.
е) Осторожность при кросскомпиляции и модификации кода без экспертизы.
При необходимости компиляции для других архитектур (например, MIPS) используйте официальные инструкции; не модифицируйте код (даже фрагменты) без полного понимания. Работу модифицированного инструмента проверьте в контролируемой среде.
ж) Уничтожение данных после использования.
Удаляйте выводные файлы безопасным способом при помощи перезаписи их содержимого.
10. Список использованных источников
[1]. Репозиторий AngryOxide. URL:
Загрузка...
github.com
[2]. Репозиторий AngryTrainer. URL:
Загрузка...
github.com
[3]. Репозиторий hcxdumptool. URL:
Загрузка...
github.com
[4]. Официальный сайт Aircrack-ng. URL:
Загрузка...
www.aircrack-ng.org
[5]. Репозиторий USB-WiFi Adapters. URL:
Загрузка...
github.com
[6]. Официальный сайт Kismet. URL:
Загрузка...
www.kismetwireless.net
[7]. Официальный сайт Wifite. URL:
Загрузка...
github.com
https://ieeexplore.ieee.org/document/9363693
[9]. Документация Hashcat. URL:
Загрузка...
hashcat.net
GPSd — Put your GPS on the net!
Приложение A: Устранение типовых неисправностей.
Таблица №8
| Проблема | Решение |
|---|---|
| Ошибка «Operation not permitted». | Запустить программу с правами суперпользователя. |
| Инструмент запускается, но интерфейс не содержит информации. | а) Проверить состояние адаптера «iw list | grep monitor»; б) Отключить активный режим мониторинга ключом «--noactive». |
| Атака PMKID не дает результатов. | Убедиться при помощи анализа сетевого трафика, что сообщение M1 от AP содержит RSN IE (WPA2/3). |
| GPS не фиксируется. | Проверить вывод gpsd «gpspipe -r» на предмет состояния сервиса. |
Приложение Б: Полный список параметров запуска AngryOxide.
angryoxide [Опции] --interface <Интерфейс>
Опции:
-i, --interface <INTERFACE> Интерфейс для использования
-c, --channel <CHANNEL> {Опционально} - Канал для сканирования. Будет использован "-c 1,6,11", если не выбран
-b, --band <2 | 5 | 6 | 60> {Опционально} - Полный диапазон для сканирования - включит все каналы, поддерживаемые интерфейсом
-o, --output <Output Filename> {Опционально} - Имя выходного файла
-h, --help Вывести справку
-V, --version Вывести версию
Цели:
-t, --target-entry <Target MAC/SSID> {Опционально} - Цель (MAC-адрес или SSID) для атаки - будет атаковать все, если не указано
-w, --whitelist-entry <WhiteList MAC/SSID> {Опционально} - Белый список (MAC или SSID) для исключения из атакуемых
--targetlist <Targets File> {Опционально} - Файл для загрузки записей целей
--whitelist <Whitelist File> {Опционально} - Файл для загрузки записей белого списка
Продвинутые опции:
-r, --rate <Attack Rate> {Опционально} - Уровень интенсивности атаки (1, 2, 3 || 3 наиболее агрессивный) [по умолчанию: 2]
--combine {Опционально} - Объединить все файлы hc22000 в один для пакетной обработки
--active {Опционально} - Использовать активный режим мониторинга - ВНИМАНИЕ, может вызвать ошибки.
--rogue <MAC Address> {Опционально} - MAC-адрес для атак rogue M2 Collection - будет рандомизирован, если не указано
--gpsd <GPSD Host
--autohunt {Опционально} - AngryOxide будет автоматически искать все каналы, затем фиксироваться на каналах с целями
--headless {Опционально} - Установить инструмент в режим без интерфейса без TUI. (полезно с --autoexit)
--autoexit {Опционально} - AngryOxide автоматически завершит работу, когда все цели получат валидный набор сообщений EAPOL
--notransmit {Опционально} - Не излучать - только пассивный режим
--notar {Опционально} - Не упаковывать выходные файлы в tar
--disablemouse {Опционально} - Отключить захват мыши (колесико прокрутки)
--dwell <Dwell Time (seconds)> {Опционально} - Настроить время пребывания на канале в секундах [по умолчанию: 2]
Геозонирование:
--geofence {Опционально} - Включить геозонирование с использованием указанных широты/долготы и расстояния
--center <CENTER> Широта,Долгота для геозонирования (требуется, если геозонирование включено)
--distance <DISTANCE> Расстояние в метрах от центра (требуется, если геозонирование включено)
--geofence-timeout <GEOFENCE_TIMEOUT> Таймаут для отключения геозонирования при потере GPS. (по умолчанию 300 секунд) [по умолчанию: 300]
Атаки:
--disable-deauth {Опционально} – НЕ использовать атаку «Deauthentication»
--disable-pmkid {Опционально} - НЕ использовать атаку «PMKID Collection»
--disable-anon {Опционально} - НЕ использовать атаку «Anonymous Reassociation»
--disable-csa {Опционально} - НЕ использовать атаку «Channel Switch Announcement»
--disable-disassoc {Опционально} - НЕ использовать атаку «Disassociation»
--disable-roguem2 {Опционально} - НЕ использовать атаку «Rogue M2 Collection»
Приложение В: Пример содержимого файла «targets.txt».
aa:bb:cc:dd:ee:ff
CorpWiFi*
*Guest
Приложение Г: Список кодов причин деассоциации стандарту IEEE 802.11-2020.
Код:
UnspecifiedReason = 1,
PreviousAuthenticationNoLongerValid = 2,
DeauthenticatedBecauseSTAIsLeaving = 3,
DisassociatedDueToInactivity = 4,
DisassociatedBecauseAPUnableToHandleAllSTAs = 5,
Class2FrameReceivedFromNonauthenticatedSTA = 6,
Class3FrameReceivedFromNonassociatedSTA = 7,
DisassociatedBecauseSTALeavingBSS = 8,
STARequestingReassociationNotAuthenticated = 9,
DisassociatedBecauseOfPowerCapability = 10,
DisassociatedBecauseOfSupportedChannels = 11,
InvalidInformationElement = 13,
MICFailure = 14,
FourWayHandshakeTimeout = 15,
GroupKeyHandshakeTimeout = 16,
InformationElementInFourWayHandshakeDifferent = 17,
InvalidGroupCipher = 18,
InvalidPairwiseCipher = 19,
InvalidAKMP = 20,
UnsupportedRSNInformationElementVersion = 21,
InvalidRSNInformationElementCapabilities = 22,
IEEE8021XAuthenticationFailed = 23,
CipherSuiteRejectedBecauseOfSecurityPolicy = 24,
TDLSUnreachable = 25,
TDLSUnspecifiedReason = 26,
TDLSRejected = 27,
TDLSRequestedTearDown = 28,
TDLSChannelSwitching = 30,
UnauthorizedAccessPoint = 31,
PriorAuthenticationValid = 32,
ExternalServiceRequirements = 33,
InvalidFTActionFrameCount = 34,
InvalidPMKID = 35,
InvalidMDE = 36,
InvalidFTE = 37,
SMECancelsAuthentication = 38,
PeerUnreachable = 39,
PeerDeauthenticatedForListenIntervalTooLarge = 41,
DisassociatedForReasonUnspecified = 42,
PeerDeauthenticatedForReasonUnspecified = 43,
DisassociatedForSensorStation = 44,
DisassociatedForPoorChannelConditions = 45,
DisassociatedForBSSTransitionManagement = 46,
DeauthenticatedForReasonUnspecified = 47,
SessionInformationUnavailable = 48,
DisassociatedForSCPRequestUnsuccessful = 49,
DeauthenticatedForSCPRequestUnsuccessful = 50.