fbpx

GSM Sniffing Parte #4 – Come Usare GR-GSM

Esistono le seguenti applicazioni basate su gr-gsm:

  • grgsm_decode (vecchio nome: airprobe_decode.py) – programma per decodificare il canale C0 che è più vicino in termini di funzionalità al vecchio gsm-receiver dal progetto Airprobe con possibilità di decodificare canali di segnalazione e canali di traffico vocale (l’analisi dei dati può essere eseguito in Wireshark, il suono decodificato viene memorizzato in un file audio),
  • grgsm_livemon (vecchio nome: airprobe_rtlsdr.py) – monitor interattivo di un singolo canale C0 con analisi eseguita da Wireshark,
  • grgsm_scanner (vecchio nome: airprobe_rtlsdr_scanner.py) – un’applicazione che scansiona le bande GSM e stampa le informazioni sulle stazioni di base del ricetrasmettitore che trasmettono nell’area (le torri gsm),

Ci sono i seguenti programmi di supporto per l’applicazione grgsm_decode:

  • grgsm_capture (vecchio nome: airprobe_rtlsdr_capture.py) – programma per catturare il segnale GSM in un file che può essere successivamente elaborato da grgsm_decode,
  • grgsm_channelize (vecchio nome: gsm_channelize.py) – divide il file di acquisizione a banda larga in più file – ciascuno contiene un singolo canale GSM.

Monitoraggio live dei canali GSM C0

Grgsm_livemon decodifica in tempo reale il canale GSM C0 selezionato dall’utente. Il canale C0 viene trasmesso da ogni BTS e trasporta informazioni di sincronizzazione, configurazione della cella e dati dell’utente (come messaggi brevi e voce). Il programma utilizza ricevitori economici RTL-SDR per catturare il segnale. Potrebbero funzionare anche altri ricevitori SDR supportati da gr-osmosdr (come USRP, HackRF, BladeRF). L’applicazione può essere avviata eseguendo da un terminale:

grgsm_livemon

La finestra del programma contiene lo spettro di ampiezza del segnale visualizzato in tempo reale. La frequenza centrale del segnale può essere modificata spostando il cursore fc. Il segnale GSM ha una larghezza di banda di circa 200kHz. Alla ricerca di colline costanti sullo spettro di tale larghezza è possibile trovare un canale di trasmissione GSM. Dopo aver impostato il cursore fc su una frequenza portante di un canale di trasmissione, il programma dovrebbe immediatamente stampare il contenuto dei messaggi successivi sullo standard output.

Se ciò non accade, imposta il cursore ppm in posizioni diverse. Il cursore è responsabile per l’impostazione della correzione dell’offset dell’orologio dei dispositivi. Se l’offset dell’orologio è troppo grande, l’algoritmo di correzione dell’offset dell’orologio implementato nel programma non funzionerà. C’è intenzionalmente aggiunta la parte superiore dell’offset di orologio consentito – è stato fatto per evitare l’adattamento dell’algoritmo ai canali vicini che porterebbe inevitabilmente all’instabilità. È possibile utilizzare il valore impostato in seguito passandolo come argomento del programma:

grgsm_livemon -p <correzione>

Catturare il segnale GSM su un file

Questo programma fornisce la capacità di salvare i dati acquisiti sul file. Supporta sia i dati grezzi in formato cfile e il formato burst di gr-gsm, che sono bombardamenti GSM pre-elaborati anziché dati di segnali grezzi:

grgsm_capture

Aggiungeremo ulteriori informazioni sull’acquisizione utilizzando questo programma in seguito, per ulteriori informazioni sulle opzioni disponibili è possibile avviare il programma con il flag -h:

grgsm_capture -h

Decodifica dei dati GSM con grgsm_decode

Il programma grgsm_decode fornisce la capacità di decodificare i messaggi GSM dalle acquisizioni salvate, ad esempio registrati con grgsm_capture:

grgsm_decode

Il programma supporta sia le acquisizioni cfile e burst, sia la decodifica di BCCH, SDCCH, TCH / F. I cifrari A5 supportati per la decrittografia sono A5 / 1, A5 / 2 e A5 / 3. grgsm_decode è in grado di decodificare i codec voce full-rate GSM-FR, GSM-EFR, AMR 12.2, AMR 10.2, AMR 7.95, AMR 7.4, AMR 6.7, AMR 5.9, AMR 5.15, AMR 4.75.

Per ulteriori informazioni sulle opzioni disponibili è possibile avviare il programma con il flag -h:

grgsm_decode -h

Analizzando i messaggi GSM in Wireshark

Le applicazioni Gr-gsm inviano messaggi GSM in formato GSMTAP al numero di porta UDP 4729. Wireshark interpreta i pacchetti provenienti da questa porta come dati GSM con intestazione GSMTAP ed è in grado di sezionare i messaggi.

Sui sistemi simili a Debian, Wireshark può essere installato con:

sudo apt-get install wireshark

Per avviare direttamente Wireshark sull’analisi dei pacchetti GSMTAP ottenuti da grgsm_decode, utilizzare il seguente comando:

sudo wireshark -k -f udp -Y gsmtap -i lo

Decodifica canali saltellanti (Hopping)

È possibile ottenere la decodifica dei canali di salto alimentando un flusso di input per canale di salto nel blocco ricevitore GSM e collegando la porta CX a un blocco Hopper del canale CX. Allo stadio attuale dello sviluppo, tuttavia, è computazionalmente costoso dividere in tempo reale un’acquisizione a banda larga in più flussi. Pertanto, l’app grgsm_channelize dovrebbe essere utilizzata per eseguire questa attività come una fase di pre-elaborazione.

Ad esempio, il seguente comando canalizzerà my_wideband_capture.cfile, in questo caso un cfile catturato a 925,2 MHz centrato (ARFCN 975) e 20 Msps. Di conseguenza, verranno generati 12 file per gli ARFCN 975 – 1023 a 1 Msps ciascuno:

grgsm_channelize -s 20e6 -c my_wideband_capture.cfile -f 925.2e6 990 991 992 993 994 995 1019 1020 1021 1022 1023

Fonte ufficiale: https://github.com/ptrkrysik/gr-gsm/wiki/Usage

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *