Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Preferred-Network-List-Sniffer — Uno strumento di ricognizione per catturare e visualizzare SSID dalla Preferred Network List del dispositivo. | Kitploit
Strumenti/GitHubGitHub/aleksamcode/preferred-network-list-sniffer
Sniffing e Analisi dei PacchettiRicognizioneAuditing Wi-FiRaccolta InformazioniSicurezza WirelessRed Teaming
GitHubaleksamcode/preferred-network-list-sniffer

Preferred-Network-List-Sniffer

Uno strumento di ricognizione per catturare e visualizzare SSID dalla Preferred Network List del dispositivo.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
17597 mesi faRevisionato da Kitploit

Sniffer della Lista di Reti Preferite - PNLS

License: MIT

Sniffer della Lista di Reti Preferite (PNLS) è uno strumento di auditing Wi-Fi per Red Team con una semplice interfaccia web, in grado di intercettare gli SSID1 dalla lista delle reti preferite (PNL)2 del dispositivo. Ciò è realizzato sniffando le Probe Request nelle vicinanze, che vengono poi analizzate per estrarre SSID e altre informazioni e infine propagate nell'interfaccia web. La motivazione principale di questo progetto è stata quella di esaminare le Probe Request 802.11 e i rischi per la privacy associati ai dati che trasmettono.

Panoramica del sistema PNLS

Fig. 1: Panoramica del sistema PNLS

[!WARNING] Tutto il contenuto di questo progetto è destinato esclusivamente a scopi di ricerca sulla sicurezza.

[!NOTE]

  • Questo progetto fa parte della mia ricerca in corso sulla Protezione della Privacy nelle Reti Wi-Fi.

    • Presentazione del campo di lavoro
  • Per monitorare il lavoro in corso sul PNLS, consulta la bacheca del progetto.

Indice

  • Sniffer della Lista di Reti Preferite - PNLS
    • Indice
    • Come costruire il PNLS
      • Requisiti
      • Prerequisiti
    • Configurazione
      • Usando Docker
      • Usando Immagine Docker Precostruita
      • Senza Docker
    • Probe Request
    • Filtraggio SSID
    • Architettura
      • Perché Asynchronous Server Gateway Interface?
      • Perché WebSocket?
      • Modello Pub-Sub
    • Screenshot
    • Acronimi
    • Riferimenti

Come costruire il PNLS

Ecco cosa ti servirà per duplicare e distribuire questo progetto, inclusi sia i componenti hardware che software. Una volta che il tuo ambiente di lavoro è pronto, vai alla sezione di configurazione.

Requisiti

  • Raspberry Pi (RPi)
  • Alimentatore adatto per RPi (vedi la documentazione sull'alimentazione per i dettagli)
  • Scheda Micro SD (vedi la documentazione sulle schede SD per i dettagli)
  • Adattatore Wi-Fi USB (opzionale)
    • Utilizzato per ottenere una portata maggiore durante la cattura dei pacchetti.
  • Cavo HDMI (opzionale)
    • Utilizzato per visualizzare l'interfaccia web dal RPi invece di connettersi da remoto usando il computer.

Prerequisiti

  • Sistema operativo Kali Linux
    • Necessario per utilizzare la modalità monitor e lo strumento aircrack-ng. Puoi scaricare l'immagine Kali Linux ARM da qui.
      • In alternativa, potresti usare un altro sistema operativo, ma dovrai applicare una patch3 al kernel usando nexmon4 o utilizzare un adattatore wireless che supporti la modalità monitor. Ecco un link per gli adattatori USB supportati da Raspberry Pi.
      • Dovrai anche installare lo strumento aircrack-ng, poiché è preinstallato solo su Kali Linux.
  • Avvia la tua interfaccia di rete in modalità monitor con: sudo airmon-ng start wlan0 [2].

[!NOTE]

L'immagine Kali utilizza il kernel di Re4son, che include i driver per schede Wi-Fi esterne e il firmware Nexmon per la scheda wireless integrata su RPi 3 e 4 [3].

Dispositivo PNLS RPi 4

Fig. 2: PNLS in esecuzione su un RPi 4 con antenna esterna e power bank

Dispositivo PNLS RPi 4 AWUS036ACS

Fig. 3: PNLS in esecuzione su un RPi 4 con custodia e antenna AWUS036ACS

Dispositivo PNLS RPi 4 AWUS036ACM

Fig. 4: PNLS in esecuzione su un RPi 4 con antenna AWUS036ACM

Configurazione

Se non vuoi usare Docker, vai alla configurazione senza Docker.

Usando Docker

Configura rapidamente un'istanza di sviluppo:

root@kitploit:~
# First clone this repo.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Move to the project root folder.
cd Preferred-Network-List-Sniffer
# Build backend and frontend image.
docker compose build
# Bring up both the backend and the frontend server.
docker compose up
# Move into the sniffer folder.
cd sniffer
# Run the Sniffer service.
sudo python3 sniffer.py

Usando Immagine Docker Precostruita

Attualmente, le immagini multi-piattaforma non sono disponibili e il progetto supporta solo l'architettura ARM64v8. Scarica le ultime immagini precostruite dal GitHub Container Registry ed eseguile localmente.

root@kitploit:~
# First clone this repo.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Move to the project root folder.
cd Preferred-Network-List-Sniffer
# Download the prebuild images.
docker pull ghcr.io/aleksamcode/pnls-backend-ghcr:latest
docker pull ghcr.io/aleksamcode/pnls-frontend-ghcr:latest
# Bring up both the backend and the frontend server.
docker compose up
# Move into the sniffer folder.
cd sniffer
# Run the Sniffer service.
sudo python3 sniffer.py

Senza Docker

  • Backend: per avviare i server ASGI e Redis e per eseguire i servizi necessari, consulta queste istruzioni.

  • Frontend: per eseguire il server React, consulta queste istruzioni.

Ecco uno screenshot di quando tutto è stato eseguito "manualmente":

  • In alto a sinistra: server Redis
  • In alto a destra: server ASGI
  • In basso a sinistra: servizio Sniffer
  • In basso a destra: server React

Screenshot di PNLS su Kali

Fig. 5: Screenshot di PNLS

Probe Request

Le Probe Request sono frame di gestione 802.11 utilizzati per connettere i dispositivi ai punti di accesso (AP) wireless precedentemente associati. Ogni volta che un dispositivo ha il Wi-Fi attivo ma non è connesso a una rete, invia periodicamente una raffica di Probe Request contenenti gli SSID della sua PNL. Questi frame vengono inviati non crittografati e chiunque stia monitorando le Radio Frequenze (RF) può catturarli e leggerli. Le Probe vengono inviate all'indirizzo DA di broadcast (ff:ff:ff:ff:ff:ff). Una volta inviate, il dispositivo avvia il Probe Timer. Alla fine del timer, il dispositivo elabora la risposta ricevuta. Se il dispositivo non ha ricevuto risposta, passa al canale successivo e ripete il processo. Esistono due tipi di Probe Request:

  • Probe Request Dirette: utilizzano uno specifico SSID dalla PNL del dispositivo

  • Probe Request Nulle: utilizzano un SSID Wildcard (SSID vuoto)

    • Le richieste vuote vengono inviate per ottenere una risposta da tutti gli AP disponibili nel raggio d'azione.

    • Oltre a filtrare i frame di Probe Request 802.11 da tutti i pacchetti catturati, Sniffer filtrerà anche gli SSID Wildcard.

Filtraggio SSID

Durante la cattura delle Probe Request in luoghi dove è presente una grande rete locale con molti client Wi-Fi, PNLS catturerà inevitabilmente molte Probe Request contenenti l'SSID di detta rete. Il filtraggio di tali SSID può essere vantaggioso, poiché non hanno valore per noi e possono causare un aumento del carico sui socket. Filtrare questi SSID non solo ridurrà il carico sulle connessioni socket, ma impedirà anche lo spam degli SSID suddetti nell'interfaccia web.

Quando si utilizza questa funzione, sarà necessario apportare piccole modifiche al codice sorgente. Nello specifico, dovrai aggiornare l'elenco SSID_FILTER nel file settings.py con il valore che vuoi che Sniffer ignori. Una volta aggiornato, ricostruisci il progetto e avvia PNLS.

Architettura

Questo progetto utilizza l'architettura guidata dagli eventi (EDA), progettata sopra architetture guidate dai messaggi. Sebbene questo progetto utilizzi una soluzione centralizzata (tutto viene eseguito dal RPi), grazie ai componenti debolmente accoppiati come risultato dell'uso di EDA, è possibile creare una soluzione decentralizzata se necessario. PNLS è composto da un editor di eventi (sniffer), un consumatore di eventi (applicazione web) e un canale di eventi. Qui, il canale di eventi è implementato come middleware orientato ai messaggi (MOM).

Diagramma di deployment del sistema PNLS

Fig. 6: Diagramma di deployment del sistema PNLS

Perché Asynchronous Server Gateway Interface?

L'Asynchronous Server Gateway Interface (ASGI) fornisce un'interfaccia standardizzata tra server web Python capaci di asincronia e servizi [4]. L'ASGI è stato scelto a causa della necessità del progetto di una connessione WebSocket di lunga durata per facilitare comunicazioni asincrone tra diversi client. Inoltre, consente anche l'utilizzo di coroutine in background durante le chiamate API. PNLS utilizza l'implementazione uvicorn per Python per utilizzare il server web ASGI.

Perché WebSocket?

Attraverso l'utilizzo del protocollo di comunicazione WebSocket, siamo in grado di facilitare una comunicazione full-duplex bidirezionale. Sebbene questo progetto non abbia la necessità di una comunicazione bidirezionale, ha bisogno di un'interazione in tempo reale tra i componenti del sistema. In questo modo, i dati sniffati saranno disponibili per l'utente finale non appena vengono catturati.

Modello Pub-Sub

Il MOM del progetto è realizzato tramite Message Broker utilizzando Redis. Nel modello publish-subscribe (pub-sub), lo Sniffer è responsabile della produzione di messaggi, mentre l'applicazione web (subscriber) si registra per un Topic specifico (canale Redis). Quando lo Sniffer invia un messaggio a un Topic, viene distribuito a tutti i consumatori iscritti, consentendo una comunicazione asincrona e scalabile. PNLS utilizza il protocollo di messaggistica leggero Redis Pub/Sub per la diffusione dei messaggi, al fine di propagare messaggi di breve durata con bassa latenza e grande throughput [5][6]. In questo modo, sono stati evitati gli overhead associati alla codifica delle strutture dati in una forma che può essere scritta su disco. Così facendo, questa soluzione avrà potenzialmente prestazioni migliori [7]. La figura seguente mostra l'attività semplificata del sistema attraverso il flusso di lavoro guidato dagli eventi.

Diagramma di sequenza pub-sub

Fig. 7: Diagramma di sequenza del modello Pub-Sub di PNLS

[!NOTE] Il MOM implementato non fornisce archiviazione persistente né una coda di messaggi per l'accumulo di dati, il che significa che i messaggi andranno persi se vengono pubblicati su un Topic senza abbonati.

Screenshot

Di seguito è riportato un esempio dell'interfaccia web che mostra gli SSID di test pubblicati.

PNLS web - esempio con SSID di test

Fig. 8: PNLS web - esempio con SSID di test

Acronimi

Riferimenti

  1. Repository Git di Nexmon
  2. Documentazione di Aircrack-ng
  3. Documentazione di Kali On ARM
  4. Documentazione ASGI
  5. Software di coda di messaggi e broker a bassa latenza
  6. Redis - Pub/Sub Definizione
  7. Stephen M. Rumble, Ankita Kejriwal, and John K. Ousterhout, “Log-Structured Memory for DRAM-Based Storage,” at 12th USENIX Conference on File and Storage Technologies (FAST)
  8. Abilita la modalità monitor e l'iniezione di pacchetti su Raspberry Pi

Footnotes

  1. Un Service Set Identifier (SSID) è un ID 802.11 utilizzato per nominare una rete Wi-Fi, composto da un massimo di 32 caratteri che possono includere lettere maiuscole/minuscole, numeri e caratteri speciali, con una lunghezza massima di 32 caratteri. ↩

  2. Una Lista di Reti Preferite è una raccolta di SSID salvati con impostazioni aggiuntive, creata la prima volta che hai connesso il tuo dispositivo a quelle reti. ↩

  3. Broadcom non ha mai supportato ufficialmente la modalità monitor, limitando l'utilità delle schede wireless nei dispositivi Raspberry Pi [8]. Il progetto Nexmon è una patch del firmware per i chip Broadcom in uso nei dispositivi RPi [1]. Questa patch ti permetterà di utilizzare la modalità monitor sul tuo dispositivo RPi. ↩

  4. Il framework di patching del firmware basato su C per chip Wi-Fi Broadcom/Cypress che abilita la modalità monitor, l'iniezione di frame e molto altro. ↩

Scarica lo strumento
PNLLista delle Reti Preferite
PNLSSniffer della Lista delle Reti Preferite
SSIDIdentificatore del Set di Servizi
UIInterfaccia Utente
RPiRaspberry Pi
OSSistema Operativo
APPunti di Accesso
RFRadio Frequenza
EDAArchitettura Guidata dagli Eventi
MOMMiddleware Orientato ai Messaggi
ASGIInterfaccia Gateway del Server Asincrono
pub-subpublish-subscribe