
Outils pour prendre l'empreinte des points d'accès WiFi exécutant le SDK Broadcom et une liste des appareils affectés connus.
Ce dépôt contient deux manières de détecter la présence de l'implémentation 802.11 de Broadcom sur un routeur cible :
La liste des appareils affectés est disponible à la fin de cette page. Cette liste n'est pas exhaustive. Nous nous attendons à ce que la liste complète contienne des milliers d'appareils, de marques et de modèles différents.
broadcom_wps_monitor.yar contient trois détecteurs candidats pour les binaires ELF32 ARM et
MIPS :
BRCM_WPS_Monitor_Generic_ELF identifie un binaire générique Broadcom WPS Monitor
à partir de chaînes indépendantes de fournisseur et de protocole.BRCM_WPS_Monitor_HAL_Config_ELF identifie la variante plus étroite d'événement
de configuration HAL.VULN_BRCM_WPS_EAP_Fragment_Reassembly_ELF exige les preuves du composant générique
plus une forme d'opcode ARM ou MIPS associée au chemin vulnérable
de réassemblage de fragments.Ces règles sont des aides au triage. Des changements de compilateur peuvent contourner les motifs d'opcodes, et un binaire corrigé peut conserver des chaînes ou des octets de code utilisés par un détecteur candidat. Confirmez les résultats par rapport au code source intégré ou par une revue manuelle de la validation de la longueur des fragments et du puits de copie.
Vous pouvez trouver des binaires avec cette commande :
yara -w -r broadcom_wps_monitor.yar extracted_firmware_dir
Assurez-vous que votre interface prend en charge le mode moniteur et activez le mode moniteur :
sudo ip link set dev wlp0s12u1 down
sudo iw dev wlp0s12u1 set monitor none
sudo ip link set dev wlp0s12u1 up
Vous devriez voir quelque chose comme ceci sur les appareils affectés :
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
Sur les appareils corrigés, vous verrez :
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 votre appareil n'annonce pas WPS, il n'est pas affecté et vous verrez ceci :
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
Le script de fingerprinting repose sur deux éléments :
La présence d'un élément d'information propriétaire Broadcom ne constitue pas un signal suffisamment fort, car il est parfois ajouté par le module noyau Linux de Broadcom alors que l'implémentation en espace utilisateur ne provient pas de leur SDK. Nous utilisons ce signal pour vérifier s'il s'agit de Broadcom ou non.
S'il s'agit d'un AP Broadcom, nous envoyons une trame fragmentée de longueur nulle pour différencier le wps_monitor de Broadcom et hostapd. hostapd envoie un ACK tandis que wps_monitor envoie un NACK (en résumé).
Si nous disposons des deux signaux (IE Broadcom + particularité d'implémentation), nous pouvons évaluer avec un niveau de confiance plutôt élevé que vous êtes affecté.
Vous pouvez signaler les appareils affectés en ouvrant une Pull Request. Dans votre PR, assurez-vous de fournir le fournisseur, le produit, la version et, éventuellement, le fournisseur d'accès Internet qui les déploie. Si vous l'avez identifié statiquement, veuillez fournir un lien vers le firmware. Si vous l'avez identifié dynamiquement, veuillez fournir le PCAP généré par le script de fingerprinting.
CETTE LISTE N'EST PAS EXHAUSTIVE. VOUS POUVEZ ÊTRE AFFECTÉ MÊME SI VOTRE APPAREIL NE FIGURE PAS DANS CETTE LISTE.
La meilleure façon de le vérifier est de vous procurer le firmware, de l'extraire, et d'exécuter la règle YARA. Si vous n'avez pas accès au firmware, vous pouvez exécuter le script de fingerprinting en utilisant une interface sans fil en mode moniteur.