
Herramientas para fingerprint de puntos de acceso WiFi que ejecutan el SDK de Broadcom y una lista de dispositivos afectados conocidos.
Este repositorio contiene dos formas de detectar la presencia de la implementación 802.11 de Broadcom en un router objetivo:
La lista de dispositivos afectados está disponible al final de esta página. Esta lista no es exhaustiva. Esperamos que la lista completa contenga miles de dispositivos, marcas y modelos diferentes.
broadcom_wps_monitor.yar contiene tres detectores candidatos para binarios ELF32 ARM y
MIPS:
BRCM_WPS_Monitor_Generic_ELF identifica un binario genérico de Broadcom WPS Monitor
a partir de cadenas independientes de proveedor y de protocolo.BRCM_WPS_Monitor_HAL_Config_ELF identifica la variante más específica de evento de
configuración HAL.VULN_BRCM_WPS_EAP_Fragment_Reassembly_ELF requiere la evidencia del componente
genérico más una forma de opcode ARM o MIPS asociada con la ruta vulnerable de
reensamblado de fragmentos.Estas reglas son ayudas de triaje. Los cambios de compilador pueden evadir los patrones de opcode, y un binario parcheado puede conservar cadenas o bytes de código usados por un detector candidato. Confirme los hallazgos contra el código fuente integrado o mediante revisión manual de la validación de longitud de fragmento y del sink de copia.
Puede encontrar binarios con este comando:
yara -w -r broadcom_wps_monitor.yar extracted_firmware_dir
Asegúrate de que tu interfaz admita el modo monitor y habilita el modo monitor:
sudo ip link set dev wlp0s12u1 down
sudo iw dev wlp0s12u1 set monitor none
sudo ip link set dev wlp0s12u1 up
Deberías ver algo como esto en los dispositivos afectados:
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
En dispositivos parcheados verás:
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
Si tu dispositivo no anuncia WPS, no se ve afectado y verás esto:
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
El script de fingerprinting se basa en dos cosas:
La presencia del elemento de información propietario de Broadcom no es una señal suficientemente fuerte, ya que a veces lo añade el módulo del kernel de Linux de Broadcom mientras que la implementación en espacio de usuario no proviene de su SDK. Usamos esa señal para comprobar si es Broadcom o no.
Si es un AP de Broadcom, enviamos una trama fragmentada de longitud cero para diferenciar entre wps_monitor y hostapd de Broadcom. hostapd envía un ACK mientras que wps_monitor envía un NACK (en pocas palabras).
Si tenemos ambas señales (IE de Broadcom + peculiaridad de implementación), podemos evaluar con un nivel de confianza bastante alto que estás afectado.
Puedes reportar dispositivos afectados abriendo un Pull Request. En tu PR, asegúrate de proporcionar el fabricante, el producto, la versión y, opcionalmente, el Proveedor de Servicios de Internet que los despliega. Si lo identificaste de forma estática, por favor proporciona un enlace al firmware. Si lo identificaste de forma dinámica, por favor proporciona el PCAP generado por el script de fingerprinting.
ESTA LISTA NO ES EXHAUSTIVA. PODRÍAS ESTAR AFECTADO AUNQUE TU DISPOSITIVO NO APAREZCA EN ESTA LISTA.
La mejor forma de verificarlo es conseguir el firmware, extraerlo y ejecutar la regla YARA. Si no tienes acceso al firmware, puedes ejecutar el script de fingerprinting usando una interfaz inalámbrica en modo monitor.