HackRF 2

Introducere

HackRF 2 este un modul radio conceput pentru a putea intercepta, stoca si retrimite semnale radio la frecventa de 433 MHz. Diferite configuratii (de ex. modulatia) pot fi modificate printr-o interfata (LCD + butoane), iar interceptarea (pe o durata limitata) si retrimiterea semnalelor sunt activate, din butoane, de catre utilizator.

Scopul proiectului este acela de a putea testa si folosi atacul RollBack [1] prezentat la BlackHat USA 2022. Atacul consta in interceptarea mai multor semnale (2 sau 3) trimise de cheia unei masini si retrimiterea lor, sub anumite constrangeri observate, dependente de marca si modelul masinii (vezi [1], cap. 4). In acest fel, receiver-ul din masina se reseteaza, iar, daca ultimul semnal trimis de modul este cel de deschidere, masina se va deschide.

In plus, modulul poate fi folosit si pentru a “copia” semnale care nu folosesc Rolling Codes, fiind astfel capabil sa realizeze si Replay Attack.

Descriere generală

Diagrama bloc

Interfata utilizator

Utilizatorul va avea 4 butoane (sus, jos, inapoi, enter) pentru a se plimba printr-un meniu din care poate configura transceiverul.

Pentru a intercepta si retrimite semnale, mai exista inca 2 butoane. Utilizatorul va intercepta atata timp cat butonul de interceptare este apasat.

Pe ecranul LCD, comandat prin I2C, va fi afisat meniul si optiunile de configurare ale transceiverului (modulatie, putere, etc.).

RF Transceiver

Atat configurarea transceiverului, cat si modificarea starii lui se realizeaza prin SPI.




Hardware Design

Schematic

Schematic

Lista piese

  • 2 x Arduino UNO R3 cu ATmega 328P
  • 1 x LCD 4×20 2004A cu interfata I2C
  • 3 x Level shifter bidirectional 3V3 ↔ 5V cu 4 pini
  • 6 x Butoane

Software Design

Codul aplicatiei a fost scris in Visual Studio Code, folosind extensia PlatformIO. Pe final, am trecut la Arduino IDE.

Biblioteci externe: fp64lib (pentru calcule cu virgula mobila), Liquid Crystal I2C (pentru LCD).

Structura:

  • CC1101 Driver: cc1101.cpp + cc1101.h
  • SPI: spi.cpp + spi.h
  • USART: usart.cpp + usart.h
  • Codul pentru HackRF2: HackRF2.cpp

Rezultate Obţinute

  • Am invatat concepte de baza despre transceivere/comunicatii radio
  • Am reusit sa creez un modul radio configurabil, capabil sa intercepteze/trimita semnale
  • Am scris un driver de la 0
  • Nu am testat vulnerabilitatea RollBack

Download

Jurnal

02 Mai

Am ars cele 2 transceivere CC1101 pe care le aveam. Tensiunea maxima la care puteau sa lucreze era 3.6 V, iar eu le alimentam la 3.3V, insa bus-ul de SPI este pe 5V. Mi-am dat seama ca s-a intamplat ceva cu ele in momentul in care citeam valori ciudate din registrii, iar secventa de Power-up Reset nu avea efectul asteptat.

Mi-am comandat alte transceivere CC1101 cu un level shifter, dar si alte 2 modele similare (Adafruit RFM96W si Adafruit Feather 32u4 cu transceiver RFM69HCW). Dupa ce le testez si ma hotarasc pe care il folosesc, revin cu anunt.

16 Mai

Am scris un driver complet pentru transceiverul CC1101 si reusesc sa il configurez corect (cel putin la nivel de registrii). In acest punct, incerc sa fac 2 transceivere sa comunice. Trimit un mesaj de pe transceiver-ul setat in modul TX, cu o perioada constanta de 2 secunde. Semnalul de la acest transceiver, cu o amplificare de 10 dB (cf. setarilor), l-am putut observa folosind un RTL-SDR conectat la aplicatia AirSpy. In schimb, am probleme la receptionarea semnalului pe receiver. In momentul in care citesc octectii salvati in coada RX, citesc garbage.

24 Mai

Proiectul este gata. Din pacate, nu am mai reusit sa testez vulnerabilitatea RollBack, insa modulul radio este capabil sa intercepteze si sa trimita semnale modulate in frecventa. In plus, transceiverul poate fi configurat dintr-o interfata formata din butoane si LCD, fiind astfel ajustat adecvat mediului si semnalului observat.

pm/prj2024/cpatru/andrei.alexei.txt · Last modified: 2024/05/25 21:06 by andrei.alexei
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0