
Инструменты для фингерпринтинга точек доступа WiFi, работающих на Broadcom SDK, и список известных уязвимых устройств.
Этот репозиторий содержит два способа обнаружения реализации 802.11 от Broadcom на целевом маршрутизаторе:
Список затронутых устройств доступен в конце этой страницы. Этот список не является исчерпывающим. Мы ожидаем, что полный список будет содержать тысячи различных устройств, марок и моделей.
broadcom_wps_monitor.yar содержит три кандидатных детектора для бинарников ELF32 ARM и
MIPS:
BRCM_WPS_Monitor_Generic_ELF идентифицирует общий бинарник Broadcom WPS Monitor
по независимым строкам производителя и протокола.BRCM_WPS_Monitor_HAL_Config_ELF идентифицирует более узкий вариант события
конфигурации HAL.VULN_BRCM_WPS_EAP_Fragment_Reassembly_ELF требует наличия признаков общего компонента
плюс форму опкодов ARM или MIPS, связанную с уязвимым
путём пересборки фрагментов.Эти правила являются вспомогательными средствами для триажа. Изменения компилятора могут обойти шаблоны опкодов, а пропатченный бинарник может сохранить строки или байты кода, используемые кандидатным детектором. Подтверждайте находки по интегрированному исходному коду или путём ручного анализа проверки длины фрагмента и места копирования.
Найти бинарники можно с помощью этой команды:
yara -w -r broadcom_wps_monitor.yar extracted_firmware_dir
Убедитесь, что ваш интерфейс поддерживает режим монитора, и включите режим монитора:
sudo ip link set dev wlp0s12u1 down
sudo iw dev wlp0s12u1 set monitor none
sudo ip link set dev wlp0s12u1 up
На затронутых устройствах вы должны увидеть примерно следующее:
sudo uv run --with scapy broadcom_fingerprint.py --interface wlp0s12u1 --ssid VOO-111317
Scanning channels 1-13 for SSID 'VOO-111317' (sweep 1)...
SSID: VOO-111317
BSSID: 20:0c:c8:16:76:dc
Channel: 1
Vendor: Netgear
Model: Netgear
Assessment: LIKELY_VULNERABLE
JSON: /tmp/broadcom-fingerprint-20261014T203352.732742Z/result.json
PCAP: /tmp/broadcom-fingerprint-20261014T203352.732742Z/traffic.pcap
sudo uv run --with scapy broadcom_fingerprint.py --interface wlp0s12u1 --ssid Orange-180cd
Scanning channels 1-13 for SSID 'Orange-180cd' (sweep 1)...
SSID: Orange-180cd
BSSID: 08:6a:0a:f1:80:d1
Channel: 1
Vendor: TCG300
Model: TCG300
Assessment: LIKELY_VULNERABLE
JSON: /tmp/broadcom-fingerprint-20261014T205813.695480Z/result.json
PCAP: /tmp/broadcom-fingerprint-20261014T205813.695480Z/traffic.pcap
sudo uv run --with scapy broadcom_fingerprint.py --interface wlp0s12u1 --ssid WiFi-2.4-4B3C
Scanning channels 1-13 for SSID 'WiFi-2.4-4B3C' (sweep 1)...
SSID: WiFi-2.4-4B3C
BSSID: 38:35:fb:13:4b:42
Channel: 1
Vendor: SagemCom
Model: SagemcomFast5336v_BBOX3
Assessment: LIKELY_VULNERABLE
JSON: /tmp/broadcom-fingerprint-20261014T205852.234368Z/result.json
PCAP: /tmp/broadcom-fingerprint-20261014T205852.234368Z/traffic.pcap
На пропатченных устройствах вы увидите:
sudo uv run --with scapy broadcom_fingerprint.py --interface wlp0s12u1 --ssid MY-AP
Scanning channels 1-13 for SSID 'MY-AP' (sweep 1)...
SSID: MY-AP
BSSID: 38:35:fb:13:4b:42
Channel: 1
Vendor: SagemCom
Model: SagemcomFast5336v_BBOX3
Assessment: PATCHED_HOSTAPD
JSON: /tmp/broadcom-fingerprint-20261014T205852.234368Z/result.json
PCAP: /tmp/broadcom-fingerprint-20261014T205852.234368Z/traffic.pcap
Если ваше устройство не объявляет WPS, оно не подвержено уязвимости, и вы увидите следующее:
sudo uv run --with scapy broadcom_fingerprint.py --interface wlx00c0ca588c7e --ssid MY-AP
Scanning channels 1-13 for SSID 'MY-AP' (sweep 1)...
SSID: MY-AP
BSSID: 1c:0b:8b:xx:xx:xx
Channel: 6
Vendor: Unknown
Model: Unknown
Assessment: INCONCLUSIVE
JSON: /tmp/broadcom-fingerprint-20261019T113912.161025Z/result.json
PCAP: /tmp/broadcom-fingerprint-20261019T113912.161025Z/traffic.pcap
Warning: selected AP does not advertise WPS
Скрипт фингерпринтинга опирается на две вещи:
Наличие проприетарного информационного элемента Broadcom не является достаточно сильным сигналом, поскольку он иногда добавляется модулем ядра Linux от Broadcom, в то время как реализация в пространстве пользователя не из их SDK. Мы используем этот сигнал, чтобы проверить, Broadcom это или нет.
Если это точка доступа Broadcom, мы отправляем фрагментированный кадр нулевой длины, чтобы отличить wps_monitor от hostapd от Broadcom. hostapd отправляет ACK, а wps_monitor отправляет NACK (в двух словах).
Если у нас есть оба сигнала (Broadcom IE + особенность реализации), мы можем оценить с довольно высокой степенью уверенности, что вы затронуты.
Вы можете сообщить о затронутых устройствах, открыв Pull Request. В вашем PR обязательно укажите производителя, продукт, версию и, при желании, интернет-провайдера, который их развертывает. Если вы определили это статически, пожалуйста, предоставьте ссылку на прошивку. Если вы определили это динамически, пожалуйста, предоставьте PCAP, сгенерированный скриптом фингерпринтинга.
ЭТОТ СПИСОК НЕ ЯВЛЯЕТСЯ ИСЧЕРПЫВАЮЩИМ. ВЫ МОЖЕТЕ БЫТЬ ЗАТРОНУТЫ, ДАЖЕ ЕСЛИ ВАШЕГО УСТРОЙСТВА НЕТ В ЭТОМ СПИСКЕ.
Лучший способ проверить это — получить прошивку, извлечь её и запустить правило YARA. Если у вас нет доступа к прошивке, вы можете запустить скрипт фингерпринтинга, используя беспроводной интерфейс в режиме монитора.