
GTK4 и CLI-инструментарий для тестирования беспроводной безопасности с 57 автономными модулями для Wi-Fi, Bluetooth, 802.15.4, SDR/RF, NFC, а также тестирования MITM со стороны роутера или в сети на Linux.
Набор инструментов для тестирования безопасности беспроводных сетей на GTK4 для Linux. 57 модулей, охватывающих Wi-Fi, Bluetooth, RF, работу со стороны роутера и сетевой MITM, — всё в одном интерфейсе.
Каждый модуль — это самостоятельный shell-скрипт. GUI — это лишь представление над ними, а не контейнер: ничего не скрыто за интерфейсом.
Ранняя стадия разработки. Тщательно протестировано на одной машине с одним адаптером. Раздел Что на самом деле работает честно рассказывает, что это означает, и его стоит прочитать, прежде чем сообщать об ошибке.
sudo bash wifisting.sh открывает нумерованное меню, сгруппированное по
категориям. bash wifisting.sh --list выводит доступность модулей без
необходимости в root.
Нативный GUI. wifisting-gui построен на GTK4 + VTE и управляет
теми же shell-модулями через строгий протокол TSV. Около 15 000 строк
на C, без зависимостей времени выполнения тяжелее GTK и VTE.
Коллекция модулей. Более 50 shell-скриптов, каждый самодостаточен,
каждый сам определяет корень своего проекта (работает под pkexec, где
HOME равен /root), каждый имеет команду --selftest, которая выполняется офлайн
и не обращается к оборудованию.
GUI и CLI — не альтернативы: они разделяют состояние в
/tmp/wifisting/. Выберите цель на вкладке Recon в GUI, и CLI её увидит.
Запустите сканирование из CLI, и статусные индикаторы GUI обновятся.
Большинство беспроводных инструментов глубоко специализированы в одной области. aircrack-ng — это Wi-Fi. bettercap —
сетевой MITM. Инструменты BlueZ — Bluetooth. Оценка защищённости означает пять инструментов,
пять форматов конфигурации и отсутствие общего представления о цели.
wifisting намеренно широк — охватывает разные уровни и протоколы в одном месте. Он также оборачивает Responder, mitm6, ntlmrelayx, mdk4 и hcxdumptool, а не переписывает их, так что специализированные инструменты остаются на своём месте.
Ещё одна отличительная черта: большинство инструментов сообщают, что сработали. Этот
создан, чтобы сообщать, когда они не сработали. Модуль, который рапортует OK, тогда как
цель не затронута, хуже того, который громко падает, поэтому для каждого модуля есть
--selftest, а модули, зависящие от оборудования, сообщают, чего не хватает, вместо
того чтобы возвращать пустой результат.
Глушение на уровне кадров. Не флуд деаутентификации, а настоящее реактивное глушение, манипуляция carrier-sense и повреждение FCS, реализованные через модифицированный драйвер Atheros. Для этого потребовался порт modwifi на ядро 7.0, поэтому почти никто это не поставляет. Можно глушить beacon-кадры одной точки доступа, не трогая остальной канал.
Переполнение SSID с реальным контролем длины IE. Beacon-кадры, чей SSID превышает 32-байтовый лимит, несущие инъекционные полезные нагрузки в тех же байтах. Опубликованные инструменты для ESP32 этого не умеют — WiFi.softAP() обрезает на 32, поэтому все они указывают это как будущую работу. Ручное построение кадра означает, что байт длины независим от содержимого, а это как раз тот случай, который действительно важен.
Отравление Router Advertisement. mitm6 работает с DHCPv6 и намеренно пропускает Router Advertisements, поэтому сеть без задействованного DHCPv6 им не затрагивается. Этот инструмент делает RA/SLAAC: один поддельный пакет перенастраивает маршрут по умолчанию и резолвер каждого хоста.
Обход изоляции клиентов. Gateway bouncing, port stealing, broadcast reflection, а также межсетевой ретранслятор (inter-NIC relay), удерживающий обход открытым. Из работы AirSnitch (NDSS'26).
USB Ethernet MITM. На основе RNDIS, в стиле PoisonTap, через USB-порт.
Восстановление роутера и консоль. TFTP в режиме восстановления, руководство по UART/U-Boot, офлайн-разбор образов прошивки. Необычно встретить в беспроводном инструменте.
Многоузловой захват. Управляйте парком удалённых узлов — Pi, VM, ноутбук — и сопоставляйте то, что они видят.
То, что, по моему мнению, важнее всего: инструмент создан сообщать вам, когда он потерпел неудачу. У каждого модуля есть --selftest. Модули, зависящие от оборудования, называют отсутствующее оборудование вместо возврата пустого результата. Модуль, который сообщает OK, пока цель не тронута, хуже того, который громко падает, и это тот класс багов, за которым я охочусь.
| Модуль | Описание |
|---|---|
00_deps | Проверка установленных инструментов и установка недостающих пакетов |
01_iface | Обнаружение беспроводных интерфейсов и управление режимом монитора |
| Модуль | Описание |
|---|---|
02_recon | Живое сканирование, выбор цели, разбор CSV |
03_attack | Деаутентификация, захват рукопожатия WPA/WPA2 и PMKID |
04_eviltwin | Поддельная точка доступа с captive portal и захватом учётных данных |
08_pmkid_offline | Офлайн-извлечение PMKID и конвертация для hashcat |
09_wardrive | Сканирование с GPS-метками для картографирования покрытия |
10_rogue_dhcp | Вредоносный DHCP-сервер для перехвата |
11_krack_kr00k | Переустановка ключей KRACK и Kr00k |
17_wps_attack | Pixie Dust и WPS PIN |
20_karma | Ответ на каждый probe request для заманивания клиентов |
21_beacon_flood | Флуд beacon и auth, путаница WIDS, контрмеры Michael |
22_wifi_direct | Устройства P2P, сервисы и согласование владельца группы |
23_captive_portal_builder | Рендеринг HTML captive portal из шаблонов |
34_pmf_bypass | Состояние защиты управляющих кадров 802.11w для каждой точки доступа |
35_wifi6_attacks | Элементы HE, коллизии BSS colour, TWT, пространственное переиспользование |
47_wpa3_attack | Понижение при переходном режиме, Dragonblood, захват SAE и словарная атака |
48_wep_attack | Поддельная аутентификация, ARP replay, ChopChop, фрагментация, восстановление ключа |
53_jamming | Глушение на уровне кадров через драйвер modwifi |
54_client_isolation | Отражение шлюза, кража портов, отражение широковещания, ретрансляция между NIC |
55_ssid_overflow | SSID сверх 32-байтового лимита с инъекцией в тех же байтах |