RTL-SDR: HACKEANDO RF

O QUE É RTL-SDR

O RTL-SDR é um rádio definido por software, super barato, baseado em sintonizadores de TV DVB-T com chips RTL2832U. O RTL-SDR pode ser usado como um scanner de rádio de banda larga. Pode interessar entusiastas de radioamadorismo, hackers de hardware, ou qualquer pessoas interessadas em RF.

Estou dando início a um projeto que vem martelando minha cabeça há bastante tempo. Como o objetivo final é “escovar bits” na pilha de protocolos 3G e 4G-LTE tive que estudar um pouco para não fazer um investimento em vão.

fig-01

Agora chegou a hora de botar a mão na massa, começando com um investimento modesto. No Mercado Livre, é possível comprar um a partir de R$80,00, porém comprei um basicão no https://aliexpress.com por $ 11.51.

O QUE É RTL-SDR?

As origens do RTL-SDR provêm de dongles de sintonizador de TV Digital produzidos em massa que foram baseados no chipset RTL2832U – aquele dispositivo receptor de TV USB, parecido com um pendrive – um “Rádio Definido por Software” (SDR – Software Defined Radio).

Este basicão que comprei, tem muitas limitações:

– É fornecido com uma antena dimensionada para TV (120mm)

– O conector da antena é do tipo micro coaxial MCX (os com tipo SMA são mais caros)

– chips RTL2832U são receptores apenas na faixa de 24Mhz a 1.766Ghz, por usar o sintonizador Rafael Micro R820T, o meu. Já li que é possível o uso out-of-spec -50 MHz – 2,2 GHz , com gaps- com os possuem sintonizador E4000.

– Não funciona na faixa inferior de HF (0-20MHz).

– Não instale o software ou os drivers que acompanham o aparelho! Para usar o dongle como um SDR, você precisará instalar um driver específico. Instalar os drivers de CD confunde um pouco as coisas e conflitos são comuns.

Os SDRs com chips RTL2832U são para um iniciante brincar na banda de radioamador, VHF, UHF, AM, USB, LSB, AM, FM, CW, FM comercial, varredura de rádio em geral, monitoramento de tráfego aéreo, rádio de segurança, ADSB, AIS, ACARS, voz digital P25 (quando não criptografada), POCSAG, balões meteorológicos, APRS, satélites meteorológicos NOAA APT, radioastronomia, monitoramento de dispersão de meteoro, DAB e muito mais…

Também está equipado com uma porta Infravermelho que suporta protocolos Microsoft RC6, NEC, Sony, SIRC e RC-5.

No Android é de grande utilidade para usar espetado no smartphone via cabo OTG. Na Google Play Store existem vários apps para brincar, por exemplo:

— ADS-B Receiver

https://play.google.com/store/apps/details?id=bs.Avare.ADSB

Este app decodifica quadros ADS-B (978 MHz UAT e 1090 MHz ES) de aeronaves e exibe sua posição e direção em relação à posição atual do usuário. ADS-B é sistema pelo qual as aeronaves equipadas com um transponder transmitem constantemente sua posição atual e altitude, categoria da aeronave, velocidade no ar, identificação.

— Rf Analyzer

Transforma o RTL-SDR (+ cabo USB OTG) em um analisador de espectro em tempo real!

https://play.google.com/store/apps/details?id=com.mantz_it.rfanalyzer

–SDR Touch – Live offline radio

https://play.google.com/store/apps/details?id=marto.androsdr2

Transforma qualquer smartphone ou tablet em um scanner de rádio com Analisador de Espectro. Permite ouvir e gravar ao vivo em estações de rádio FM, boletins meteorológicos, estações de emergência, o tráfego de táxi, comunicações de avião, áudio de transmissões de TV analógica, rádio-amadores, transmissões digitais e muito mais! Dependendo do hardware utilizado, a sua cobertura de frequência de rádio podem abranger entre 50 MHz e 2,2 GHz. Demodula FM, AM, FM, USB e LSB.

Também existem muitos softwares para Windows e Linux:

— O HPSDR é um projeto de código-fonte aberto (tipo GNU) para uso por radioamadores e ouvintes de ondas curtas (SWLs).

https://openhpsdr.org

— GNU Radio é Software Livre. O mais usado por entusiastas do SDR.

https://www.gnuradio.org

— No site https://www.rtl-sdr.com/big-list-rtl-sdr-supported-software/ tem uma grande lista de softwares para vários sistemas operacionais

Kali Linux e Software Defined Radio

Encontrei no Kali Linux o melhor suporte para brincar no campo do SDR, e neste post pretendo compartilhar a minha experiência inicial, descrevendo o passo-a-passo das instalações dos softwares básicos

Como os softwares para esta brincadeira consomem bastante CPU e memória, optei por instalar o Kali Linux Live USB com persistência em um HD de 320G que estava de bobeira aqui. Segui o tutorial em https://devanswers.co/guide-kali-linux-2018-live-usb-persistence-windows com algumas modificações para adaptar à BIOS da minha máquina. Portanto, aconselho que o leitor, antes de tudo, digite msinfo32 no CMD do Windows e observe o “Modo da BIOS”; o meu é “UEFI”; logo, em vez de usar o Universal USB Installer ou o UNetbootin eu usei o Rufus para construir uma partição GPT para boot. Baixei a kali-linux-2019.1a-amd64.iso e depois prossegui como indicado no tutorial.

CONFIGURANDO O KALI LINUX

Como faço de praxe, já rodando o Kali Linux em modo persistente, fui para Settings>Power e desliguei o “Automatic Suspend” em “Suspend & Power Button”. Isto vai evitar problemas quando for fazer uma tarefa demorada. Configurei Time&Date e o Teclado para Portuguese (Brazil,Lenovo, ThinkPad..).

Criei um usuário:

root@kali:~# useradd -m orestz
root@kali:~# passwd orestz
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@kali:~# usermod -a -G sudo orestz
root@kali:~# chsh -s /bin/bash orestz

Reiniciei como o usuário criado (orestz, no caso) e verifiquei as configurações indicadas acima

O que é Kali Linux Metapackages e como instalar as ferramentas SDR?

Metapackages oferecem a flexibilidade de instalar subconjuntos específicos de ferramentas com base em suas necessidades específicas. Por exemplo, se você pretende realizar uma avaliação de segurança wireless, pode criar rapidamente uma ISO Kali personalizada e incluir o metapackage kali-linux-wireless para instalar apenas as ferramentas necessárias.
Esses metapackages permitem uma instalação fácil de certas ferramentas em um campo específico ou, alternativamente, para a instalação de uma suíte completa do Kali. Todos os metapackages Kali seguem uma convenção de nomenclatura específica, começando com o kali-linux, então se você quiser ver quais metapackages estão disponíveis, você pode procurá-los da seguinte maneira:

apt-get update && apt-cache search kali-linux

O metapackage kali-linux-sdr contém uma seleção de ferramentas que o SDR necessita  2.4 GB para instalação.
Para instalar, basta digitar:

sudo apt update && sudo apt install kali-linux-sdr

INSTALANDO O gr-gsm

O próximo passo é instalar o gr-gsm.

Em geral, para instalar gr-gsm é necessário a instalação das seguintes dependências:

-GNU Radio with header files (este já foi instalado com o metapackage kali-linux-sdr)

-development tools: git, cmake, autoconf, libtool, pkg-config, g++, gcc, make, libc6 with headers, libcppunit with headers, swig, doxygen, liblog4cpp with headers, python-scipy

-gr-osmosdr

-libosmocore with header files

Eu poderia fazer:

sudo apt-get install git cmake autoconf libtool pkg-config g++ gcc make libc6* libcppunit* swig doxygen liblog4cpp* python-scipy gr-osmosdr libosmocore*

Mas, como eu gosto de ver as coisa acontecendo, instalei cada um individualmente

sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install pkg-config
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install libc6*
sudo apt-get install libcppunit*
sudo apt-get install swig
sudo apt-get install doxygen
sudo apt-get install liblog4cpp*
sudo apt-get install python-scipy
sudo apt-get install gr-osmosdr
sudo apt-get install libosmocore*

Depois de instalá-los, fiz o download da fonte do gr-gsm e o construí com os seguintes comandos:

git clone https://git.osmocom.org/gr-gsm
cd gr-gsm
sudo mkdir build
cd build
sudo cmake ..
mkdir $HOME/.grc_gnuradio/ $HOME/.gnuradio/
sudo make
sudo make install
sudo ldconfig

INSTALANDO O IMSI-catcher

Para completar o kit básico, instalar o IMSI-catcher

cd /gr-gsm
sudo git clone https://github.com/Oros42/IMSI-catcher.git

EXECUTAR O Wireshark como root

Ahhh! Para deixar tudo redondo temos que fazer o root rodar o Wireshark (para permitir executar algo como sudo wireshark…)  Fiz assim:

sudo leafpad /usr/share/wireshark/init.lua

E edite acrescentando — no início penúltima linha, para ficar assim:

wireshark-root

Salvei e fechei

TESTANDO OS SOFTWARES RTL-SDR INSTALADOS

Depois de tantas horas de trabalho –são muitas horas mesmo!!!– chegou a vez de brincar um pouco. Vamos executar algo para constatar que o trabalho foi produtivo.

Conecte seu RTL-SDR e execute no terminal

Para verificar se o RTL-SDR foi reconhecido, digite

sudo dmesg | grep rtl

Para procurar GSM nas redondezas, digite:

sudo kal -g 100 -s GSM850

kal_01.png

Ôba!!!! Vou trabalhar com o chan: 140 (871.6MHz). Digite:

grgsm_livemon

Uma nova janela deve abrir.
Na nova janela, sintonize uma freqüência de downlink GSM que você determinou com o kal (871.6MHz) e defina o ganho apropriadamente.

livemon.gif

Em outro terminal, inicie o Wireshark usando:

sudo wireshark -k -Y '! Icmp && gsmtap' -i lo

que iniciará automaticamente o wireshark no modo de loopback com o filtro gsmtap ativado. Você pode receber um erro ao abrir o Wireshark, mas isso pode ser ignorado.
Agora você deve ver os dados GSM rolando no Wireshark.

livemon_e_wireshark.gif

Agora, vamos usar o IMSI-catcher

————FUNCIONA ASSIM!!!!————

TERM 1:

orestz@kali:/gr-gsm/IMSI-catcher$ sudo python simple_IMSI-catcher.py –sniff

TERM 2:

orestz@kali:/$ sudo grgsm_livemon -f 871.6M

livemon_e_IMSI-C.gif

Bom para começar, né? Aguarde os próximos posters!!!! Vou continuar testando os limites desse dongle básico e, quem sabe, partir para um HackRF One (Price:$319.95), que transmite ou recebe na faixa de de 1 MHz a 6 GHz. O objetivo final é “escovar bits” na pilha de protocolos 3G e 4G-LTE.

2 comentários

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s