
Strumenti per il fingerprinting degli Access Point WiFi che eseguono il Broadcom SDK e un elenco dei dispositivi interessati noti.
Questo repository contiene due modi per rilevare la presenza dell'implementazione 802.11 di Broadcom su un router target:
L'elenco dei dispositivi interessati è disponibile alla fine di questa pagina. Questo elenco non è esaustivo. Ci aspettiamo che l'elenco completo contenga migliaia di dispositivi, marche e modelli diversi.
broadcom_wps_monitor.yar contiene tre rilevatori candidati per binari ELF32 ARM e
MIPS:
BRCM_WPS_Monitor_Generic_ELF identifica un binario generico Broadcom WPS Monitor
a partire da stringhe indipendenti di vendor e protocollo.BRCM_WPS_Monitor_HAL_Config_ELF identifica la variante più ristretta relativa
all'evento di configurazione HAL.VULN_BRCM_WPS_EAP_Fragment_Reassembly_ELF richiede l'evidenza del componente
generico più una forma di opcode ARM o MIPS associata al percorso vulnerabile
di riassemblaggio dei frammenti.Queste regole sono strumenti di triage. Modifiche al compilatore possono eludere i pattern degli opcode, e un binario corretto può mantenere stringhe o byte di codice utilizzati da un rilevatore candidato. Confermare i risultati rispetto al codice sorgente integrato o tramite una revisione manuale della validazione della lunghezza dei frammenti e del sink di copia.
È possibile trovare i binari con questo comando:
yara -w -r broadcom_wps_monitor.yar extracted_firmware_dir
Assicurati che la tua interfaccia supporti la modalità monitor e abilita la modalità monitor:
sudo ip link set dev wlp0s12u1 down
sudo iw dev wlp0s12u1 set monitor none
sudo ip link set dev wlp0s12u1 up
Dovresti vedere qualcosa di simile sui dispositivi interessati:
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
Sui dispositivi con patch vedrai:
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
Se il tuo dispositivo non annuncia WPS non è interessato e vedrai questo:
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
Lo script di fingerprinting si basa su due cose:
La presenza di un information element proprietario Broadcom non è un segnale sufficientemente forte, poiché a volte viene aggiunto dal modulo del kernel Linux di Broadcom mentre l'implementazione in spazio utente non proviene dal loro SDK. Usiamo quel segnale per verificare se si tratta di Broadcom o no.
Se è un AP Broadcom, inviamo un frame frammentato a lunghezza zero per distinguere tra wps_monitor di Broadcom e hostapd. hostapd invia un ACK mentre wps_monitor invia un NACK (in sintesi).
Se abbiamo entrambi i segnali (IE Broadcom + particolarità implementativa), possiamo stabilire con un livello di confidenza piuttosto elevato che sei interessato.
Puoi segnalare i dispositivi interessati aprendo una Pull Request. Nella tua PR, assicurati di fornire il vendor, il prodotto, la versione e, facoltativamente, l'Internet Service Provider che li distribuisce. Se lo hai identificato staticamente, fornisci un link al firmware. Se lo hai identificato dinamicamente, fornisci il PCAP generato dallo script di fingerprinting.
QUESTA LISTA NON È ESAUSTIVA. POTRESTI ESSERE INTERESSATO ANCHE SE IL TUO DISPOSITIVO NON È IN QUESTA LISTA.
Il modo migliore per verificarlo è procurarti il firmware, estrarlo ed eseguire la regola YARA. Se non hai accesso al firmware, puoi eseguire lo script di fingerprinting usando un'interfaccia wireless in modalità monitor.