Jump to content
Hertz

Sniffing tastatura Wireless

Recommended Posts

Acum cateva saptamani, dupa ce am citit un .pdf complex despre o grupare care au facut chestia asta pe niste tastaturi wireless de la Microsoft, de la distanta mare, m-am gandit sa incerc si eu pe o tastatura Labtec pe care o folosesc.

Hardware

Acesta a fost primul proiect in care am folosit USRP - ul cumparat acum cateva luni.Am folosit LFRX - ul ca daughterboard si o antena foarte simpla care defapt e un cablu. E departe de perfect, dar functioneaza in teste daca tastatura e foarte aproape (~1m).

USRP :

http://i47.tinypic.com/mrebuw.jpg

Intreg sistemul de interceptare :

http://i46.tinypic.com/152j7l4.jpg

Demodularea

Primul pas ce a trebuit sa il fac a fost gasirea frecventei exacte la care tastatura transmitea. A fost destul de usor fiindca tastatura avea FCCID scris pe spate. Am cautat pe siteul ASTA si am aflat ca transmite la exact 27.195MHz. Am reglat USRP - ul la acea frecventa si am folosit usrp_oscope.py pentru a primii unde.

i4ijps.png

Dupa unele cercetari privind sistemele cele mai folosite de modulare, am realizat ca aceasta unda e modulata folosind FSK.Rularea prin intermediul blocului de demodulare cuadraturaica mi-a dat urmatorul rezultat :

2nkid6x.png

Acum arata foarte mult ca un semnal binar, deci e foarte posibil ca modulatia sa fie corecta. Urmatorul pas a fost sa gasesc encriptia corecta pentru a putea extrage bitii adevarati din acest stream.

Mai tarziu am confirmat prin dezasamblarea recieverului original. Semnalele din osciloscop erau la fel ca cele de deasupra.

Codare RF

Aceasta a fost cea mai grea parte din analiza mea. Prima oara am crezut ca ar putea fii codat NRZI , far asta nu mi-ar da niciodata mai mult de 2 zerouri in secventa si chiar si cu bit unstuffing nu era nici un pattern in datele decodate. Dupa cautari serioase am dat peste Codarea Miller.Aceasta mi-a dat niste rezultate foarte promitatoare deoarece acum era un pattern recurent in datele obtinute. Dar inca era o problema : pachetele extractate aveau un puncte pornire si unul de oprire in pattern (model), dar lungimea varia pentru diferite tastari. In stadiul asta puteam sa identific marea majoritate a tastarilor, dar nu foarte bine deoarece nu erau intr-o pozitie fixa in interiorul pachetului. Asta m-a facut sa caut multe alte scheme de codare pana cand am descoperit ca in interiorul pachetelor (exceptand in secventa sync) nu era niciodata un singur zero (101). Asa ca am incercat sa sterg un singur zero din fiecare secventa de zerouri (10001 -> 1001). Acesta a fost ultimul pas. Acum fiecare pachet (excluzand secventa sync) avea lungimea de 35 biti.

Inversarea pachetelor

Odata ce schema de codare era cunoscuta, era foarte usor sa aflu structura pachetelor. Consistau din secventa sync din 5 sau 7 biti, 3 biti de date inca necunoscute :), 3 bytes de coduri ale tastelor si un indetificator al tastaturii de 1 byte. A fost doar o problema de cateva minute sa incerc toate butoanele , pentru a construii un tabel de cautare al codurilor tastelor.

Inca doua lucruri ciudate pe care le-am notat : cand primul bit din identificatorul tastaturii era 1 , complet pachetul era inversat si cand procesam codurile tastelor de la dreapta la stanga , un 1 in msb inversa toate codurile urmatoare.

Concluzie

Am deconectat tastatura de cateva ori pentru ca identificatorul tastaturii sa se schimbe , insa codurile tastelor ramaneau la fel, deci in concluzie acest model de tastatura nu folosea nici o encriptie.

  • Downvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...