
Un intercettatore open source per downlink/uplink LTE.
LTESniffer è uno strumento open-source per l'intercettazione del traffico LTE in downlink/uplink.
Innanzitutto decodifica il Physical Downlink Control Channel (PDCCH) per ottenere le Downlink Control Informations (DCI) e i Radio Network Temporary Identifiers (RNTI) di tutti gli utenti attivi. Utilizzando le DCI e gli RNTI decodificati, LTESniffer decodifica ulteriormente il Physical Downlink Shared Channel (PDSCH) e il Physical Uplink Shared Channel (PUSCH) per recuperare il traffico dati in uplink e downlink.
LTESniffer supporta un'API con tre funzioni per applicazioni di sicurezza e ricerca. Molte ricerche sulla sicurezza LTE assumono un analizzatore passivo in grado di catturare i pacchetti relativi alla privacy sul canale radio. Tuttavia, nessuno degli attuali analizzatori open-source soddisfa i loro requisiti, poiché non possono decodificare i pacchetti di protocollo in PDSCH e PUSCH. Abbiamo sviluppato un'API di sicurezza proof-of-concept che supporta tre attività proposte da lavori precedenti: 1) Identity mapping, 2) IMSI collecting e 3) Capability profiling.
Fare riferimento al nostro [articolo][paper] per maggiori dettagli.
LTESniffer è uno strumento in grado di catturare i messaggi LTE wireless inviati tra una cella telefonica e gli smartphone collegati ad essa. LTESniffer supporta la cattura dei messaggi in entrambe le direzioni, dalla torre agli smartphone e dagli smartphone alla cella telefonica.
LTESniffer NON PUÒ DECRITTARE i messaggi crittografati tra la cella telefonica e gli smartphone. Può essere utilizzato per analizzare le parti non crittografate della comunicazione tra la cella telefonica e gli smartphone. Ad esempio, per i messaggi crittografati, consente all'utente di analizzare le parti non crittografate, come le intestazioni nei livelli MAC e fisico. Tuttavia, quei messaggi inviati in chiaro possono essere completamente analizzabili. Ad esempio, i messaggi broadcast inviati dalla cella telefonica o i messaggi all'inizio della connessione sono completamente visibili.
Lo scopo principale di LTESniffer è supportare la ricerca sulla sicurezza e l'analisi della rete cellulare. A causa della raccolta di dati utente in uplink-downlink, qualsiasi utilizzo di LTESniffer deve seguire le normative locali sull'intercettazione del traffico LTE. Non siamo responsabili per scopi illegali, come la raccolta intenzionale di informazioni relative alla privacy degli utenti.
LTESniffer-record-subframe e al suo [README][capture-readme] per maggiori dettagli.LTESniffer-multi-usrp e al suo [README][multi-readme] per maggiori dettagli.LTESniffer è implementato sulla base di [FALCON][falcon] con l'aiuto della libreria [srsRAN][srsran]. LTESniffer supporta:
Attualmente, LTESniffer funziona stabilmente su Ubuntu 18.04/20.04/22.04.
Per ottenere la decodifica in tempo reale del traffico LTE è necessaria una CPU ad alte prestazioni con più core fisici, soprattutto nelle ore di punta quando la stazione base ha molti utenti attivi. LTESniffer ha raggiunto con successo la decodifica in tempo reale quando distribuito su un PC Intel i7-9700K, decodificando il traffico di una stazione base con 150 utenti attivi.
Si consiglia il seguente hardware
LTESniffer richiede SDR diversi per le sue modalità di intercettazione uplink e downlink.
Per intercettare solo il traffico downlink dalla stazione base, LTESniffer è compatibile con la maggior parte degli SDR supportati dalla libreria srsRAN (ad esempio, USRP o BladeRF). L'SDR deve essere collegato al PC tramite una porta USB 3.0. Inoltre, deve essere dotato di due antenne RX per decodificare i messaggi downlink nelle modalità di trasmissione 3 e 4. Se il vostro SDR ha una sola antenna RX, LTESniffer decodificherà solo i messaggi downlink nella modalità di trasmissione 1. Si noti che il GPSDO è opzionale per l'intercettazione downlink; aiuta a migliorare la sincronizzazione ma non è obbligatorio.
D'altra parte, per intercettare il traffico uplink dagli smartphone verso le stazioni base, LTESniffer deve ascoltare due frequenze diverse (uplink e downlink) contemporaneamente. Per risolvere questo problema, LTESniffer supporta due opzioni:
main di LTESniffer.LTESniffer-multi-usrp di LTESniffer e al suo [README][multi-readme].Nota importante: per evitare errori imprevisti, seguire i seguenti passaggi su Ubuntu 18.04/20.04/22.04.
Dipendenze
Dipendenze UHD:
sudo apt update
sudo apt-get install autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool \
g++ git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev \
libusb-dev python3-dev python3-mako python3-numpy python3-requests python3-scipy python3-setuptools \
python3-ruamel.yaml
Clonare e compilare UHD dal sorgente (assicurarsi che il branch corrente sia superiore alla 4.0)
git clone https://github.com/EttusResearch/uhd.git
cd <uhd-repo-path>/host
mkdir build
cd build
cmake ../
make -j 4
make test
sudo make install
sudo ldconfig
Scaricare i firmware per gli USRP:
sudo uhd_images_downloader
Utilizziamo una scheda 10Gb per collegare USRP X310 al PC; fare riferimento al manuale UHD [1], [2] per configurare l'interfaccia USRP X310 e della scheda 10Gb. Per l'USRP B210, deve essere collegato al PC tramite una porta USB 3.0.