Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Di dîrokê de, piraniya karmendan klavye û mişkên bêtêl ji Logitech bikar tînin. Em, pisporên tîmê Ewlekariya Raccoon, ku careke din şîfreyên xwe têxin nav xwe, ji xwe pirsî: çiqas zehmet e ku meriv mekanîzmayên ewlehiyê yên klavyeyên bêtêl derbas bike? Lêkolînê kêmasiyên mîmarî û xeletiyên nermalavê yên ku destûrê dide gihîştina daneyên têketinê derxist holê. Tiştê ku me bi dest xistiye li jêr qutbûnê ye.

Çima Logitech?

Li gorî me, amûrên têketina Logitech di nav kalîteya herî bilind û herî hêsan de ne. Piraniya amûrên ku me hene li ser bingeha çareseriya Logitech-ê ne yekxistina wergirê dongle gerdûnî ye ku dihêle hûn 6 cîhazan ve girêdin. Hemî amûrên ku bi teknolojiya Logitech Unifying re têkildar in bi logoya teknolojiya Logitech Unifying têne nîşankirin. Bikaranîna hêsan e sepanê Destûrê dide we ku hûn girêdana klavyeyên bêtêl bi komputera xwe ve rêve bibin. Pêvajoya girêdana klavyeyê bi dongle wergirê Logitech, û hem jî teknolojiyê bi xwe ve girêdayî ye, mînakî, vir.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

wergirê Dongle bi piştgiriya Logitech Unifying

Klavyeya dikare ji bo êrîşkaran bibe çavkaniya agahdariyê. Logitech, li ber çavê metirsiya mimkun, ewlehiya ewlehiyê girt - algorîtmaya şîfrekirinê ya AES128 di kanala radyoyê ya klavyeya wireless de bikar anî. Yekem ramana ku dibe ku êrîşkarek di vê rewşê de hebe ew e ku agahdariya sereke bigire dema ku ew li ser kanalek radyoyê di dema prosedûra girêdanê de tê veguheztin. Beriya her tiştî, heke mifteyek we hebe, hûn dikarin îşaretên radyoya klavyeyê bişopînin û wan deşîfre bikin. Lêbelê, bikarhêner kêm kêm (an jî qet carî) neçar e ku klavyeyê yek bike, û hackerek bi radyoyek şopandinê dê demek dirêj li bendê bimîne. Digel vê yekê, ne her tişt bi pêvajoya navberê bixwe re ew qas hêsan e. Di lêkolîna herî dawî de di Hezîrana 2019 de, pisporê ewlehiyê Markus Mengs serhêl weşand peyam di derbarê vedîtina qelsiyek di firmware kevn a donglesên USB yên Logitech de. Ew rê dide êrîşkerên ku gihîştina laşî ya cîhazan heye ku bişkojkên şîfrekirina kanala radyoyê bistînin û bişkojkên derzîlêdanê (CVE-2019-13054).

Em ê li ser lêkolîna xweya ewlehiyê ya dongle Logitech-ê li ser bingeha NRF24 SoC ji Nordic Semiconductor biaxivin. Ka em dest pê bikin, dibe ku, bi kanala radyoyê bixwe.

Daneyên çawa di kanalek radyoyê de "difirin".

Ji bo analîza demjimêr-frekansa sînyala radyoyê, me wergirê SDR-ya ku li ser bingeha cîhaza Blade-RF-ê ye di moda analîzera spektrumê de bikar anî (hûn dikarin li ser vê yekê jî bixwînin vir).

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

SDR Blade-RF Device

Me di heman demê de îhtîmala tomarkirina çarçikên sînyala radyoyê di frekansek navîn de jî nirxand, ku dûv re dikare bi teknîkên hilberandina sînyala dîjîtal were analîz kirin.

Komîsyona Dewletê ya Frekansên Radyoyê li Federasyona Rûsyayê destûr da ji bo karanîna ji hêla amûrên kurt-range ve, rêza frekansê 2400–2483,5 MHz e. Ev navçeyek pir "nifûsî" ye, ku hûn ê tê de tiştek nebînin: Wi-Fi, Bluetooth, her cûre kontrolên dûr, pergalên ewlehiyê, detektorên bêtêl, mişkên bi klavyeyan û amûrên dîjîtal ên bêtêl.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Spectrum band 2,4 GHz

Jîngeha destwerdanê ya di rêzê de pir tevlihev e. Digel vê yekê, Logitech karîbû bi karanîna protokola Enhanced ShockBurst di transceiver NRF24 de digel algorîtmayên adaptasyona frekansê re pêşwaziyek pêbawer û aram peyda bike.

Kanalên di bendekê de li cihên MHz yên bêkêmasî yên ku di nav de hatine destnîşan kirin têne danîn taybetmendiyên NRF24 Nordic Semiconductor - di tora frekansê de bi tevahî 84 kanal. Hejmara kanalên frekansê yên ku bi hevdemî têne bikar anîn ji hêla Logitech ve, bê guman, kêm e. Me bikaranîna herî kêm çar nas kir. Ji ber firehiya tixûbdar a analyzera spektrêya sînyala tê bikar anîn, navnîşa rastîn a pozîsyonên frekansê yên ku hatine bikar anîn nekare were destnîşankirin, lê ev ne hewce bû. Agahdariya ji klavyeyê heya dongleya wergirê di moda Burstê de (kurt zivirî li ser veguhezerê) bi karanîna modulasyona frekansa du-pozîsyonê GFSK bi rêjeya sembola 1 Mbaud ve têne şandin:

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Nîşana radyoya Klavyeyê di nûnertiya demê de

Wergir prensîba pêwendiyê ya wergirtinê bikar tîne, ji ber vê yekê pakêta ku hatî şandin pêşgotinek û beşek navnîşan heye. Kodkirina berxwedêr a deng nayê bikar anîn; laşê daneyê bi algorîtmaya AES128 ve hatî şîfre kirin.

Bi gelemperî, pêwendiya radyoyê ya klavyeya bêserûber Logitech dikare bi pirrengkirina statîstîkî û adaptasyona frekansê re bi tevahî asynkron were destnîşan kirin. Ev tê vê wateyê ku veguhezkara klavyeyê kanalê diguhezîne da ku her pakêtek nû veguhezîne. Wergir ji berê de ne dema ragihandinê û ne jî kanala frekansê nizane, lê tenê navnîşa wan tê zanîn. Di kanalê de wergir û veguhezker bi saya algorîtmayên hevrêziya frekansê û guhdarîkirinê, û her weha mekanîzmayên pejirandinê yên pêşkeftî yên ShockBurst têne hev. Me lêkolîn nekiriye ka navnîşa kanalan statîk e. Dibe ku, guhertina wê ji ber algorîtmaya adaptasyona frekansê ye. Tiştek nêzîkê rêbaza hilkişîna frekansê (tunekirina pseudo-random a frekansa xebitandinê) di karanîna çavkaniya frekansê ya rêzê de dikare were dîtin.

Bi vî rengî, di bin şert û mercên nezelaliya dem-frekansê de, ji bo misogerkirina wergirtina garantîkirî ya hemî sînyalên klavyeyê, êrîşkar pêdivî ye ku bi domdarî çavdêriya tevahiya tora frekansê ya 84 pozîsyonan bike, ku demek girîng hewce dike. Li vir eşkere dibe ku çima qelsiya derxistina mifteya USB (CVE-2019-13054) di çavkaniyan de wekî şiyana derzîlêdana bişkojkan, li şûna ku êrîşkar bigihîje daneyên ku ji klavyeyê tê ketin, tê pozîsyon kirin. Eşkere ye, pêwendiya radyoyê ya klavyeya bêserûber pir tevlihev e û pêwendiya radyoyê ya pêbawer di navbera cîhazên Logitech de di şertên destwerdana dijwar de di band 2,4 GHz de peyda dike.

Awirek li pirsgirêkê ji hundir ve

Ji bo lêkolîna xwe, me yek ji klavyeyên xwe yên Logitech K330 û dongle Logitech Unifying hilbijart.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Logitech K330

Ka em li hundurê klavyeyê binêrin. Hêmanek balkêş a li ser panelê ku meriv lêkolîn dike çîpê SoC NRF24 ji Nordic Semiconductor ye.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

SoC NRF24 li ser panela klavyeya bêserûber Logitech K330

Firmware di bîra navxweyî de cih digire, mekanîzmayên xwendin û xeletkirinê neçalak in. Mixabin, firmware di çavkaniyên vekirî de nehatiye weşandin. Ji ber vê yekê, me biryar da ku em ji aliyekî din ve nêzikî pirsgirêkê bibin - ku em naveroka hundurê wergirê dongle Logitech bixwînin.

"Cîhana hundurîn" ya wergirê dongle pir balkêş e. Dongle bi hêsanî tê hilweşandin, serbestberdana naskirî ya NRF24 bi kontrolkerek USB-ya çêkirî re hildigire û hem ji hêla USB-ê û hem jî rasterast ji bernameçêker ve dikare ji nû ve were bernamekirin.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Logitech dongle bê xanî

Ji ber ku ji bo nûvekirina karanîna firmware mekanîzmayek standard heye Serlêdanên Amûra Nûvekirina Firmware (ku hûn dikarin guhertoya firmware-ya nûvekirî jê derxînin), ne hewce ye ku li firmware di hundurê dongle de bigerin.

Çi hate kirin: firmware RQR_012_005_00028.bin ji laşê serîlêdana Amûra Nûvekirina Firmware hate derxistin. Ji bo kontrolkirina yekbûna wê, kontrolkera dongle bi kabloyek ve girêdayî bû ji bernameçêkerê ChipProg-48 re:

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Kabloya girêdana dongle Logitech bi bernameçêkerê ChipProg 48 re

Ji bo kontrolkirina yekrêziya firmware, ew bi serfirazî di bîranîna kontrolkerê de hate danîn û rast xebitî, klavye û mişk bi riya Logitech Unifying bi dongle ve hatin girêdan. Mimkun e ku meriv firmware-ya guhertî bi karanîna mekanîzmaya nûvekirina standard were barkirin, ji ber ku mekanîzmayên parastina krîptografî ji bo firmware tune. Ji bo mebestên lêkolînê, me pêwendiyek laşî bi bernameçêker re bikar anî, ji ber ku debugkirin bi vî rengî pir zûtir e.

Lêkolîna firmware û êrîşa li ser têketina bikarhêner

Çîpa NRF24 di mîmariya kevneşopî ya Harvard-ê de li ser bingeha hesabkera Intel 8051 hatî çêkirin. Ji bo bingehîn, transceiver wekî amûrek derdor tevdigere û di cîhê navnîşan de wekî komek tomar tê danîn. Belgekirin ji bo nimûneyên çîp û koda çavkaniyê li ser Înternetê têne dîtin, ji ber vê yekê veqetandina firmware ne dijwar e. Di dema endezyariya berevajî de, me fonksiyonên ji bo wergirtina daneya bişkojka ji kanala radyoyê û veguheztina wê di forma HID-ê de ji bo veguheztina mêvandar bi navgîniya USB-yê veguhezand. Koda derzîlêdanê di navnîşanên bîranîna belaş de hate danîn, ku tê de amûrên ji bo kontrolkirinê, hilanîn û vegerandina çarçoweya darvekirinê ya orîjînal, û her weha koda fonksiyonel vedihewîne.

Pakêta pêlkirin an berdana mifteyek ku ji kanala radyoyê ji hêla dongle ve hatî wergirtin tê deşîfrekirin, vediguhezîne raporek standard HID û wekî ji klavyeyek birêkûpêk ji navgîniya USB-ê re tê şandin. Wekî beşek ji lêkolînê, beşa rapora HID-ê ya ku herî zêde ji me re eleqedar e, beşek ji rapora HID-ê ye ku tê de baytek alayên guhêrbar û rêzek ji 6 baytên bi kodên bişkojkê vedihewîne (ji bo referansê, agahdariya li ser HID-ê vir).

Struktura rapora HID:

// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
    uint8_t Modifiers;
    uint8_t Reserved;
    uint8_t KeyCode[6];
}HidKbdReport_t;

Tavilê berî veguheztina avahiya HID-ê ji mêvandar re, koda derzîkirî kontrolê digire, 8 bayt daneyên HID-ê yên xwecihî di bîranînê de kopî dike û bi nivîsek zelal dişîne kanala kêleka radyoyê. Di kodê de bi vî rengî xuya dike:

//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState();                  // save transceiver state
RfInitForTransmition(TransmitRfAddress);        // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE();                 // Toggle radio CE signal to start transmission
RestoreRfState();               // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<

Kanala alî bi frekansek ku me bi hin taybetmendiyên leza manîpulasyonê û strukturên pakêtê ve hatî saz kirin.

Operasyona transceiver di çîpê de NRF24 li ser grafiyek dewletê ye ku tê de protokola Enhanced ShockBurst bi organîkî ve girêdayî ye. Me dît ku yekser berî veguheztina daneyên HID-ê ji navgîniya USB-ya mêvandar re, transceiver di rewşa IDLE de bû. Ev gengaz dike ku meriv bi ewlehî wê ji nû ve mîheng bike da ku di kanalek alîgir de bixebite. Koda derzîkirî kontrolê dişoxilîne, veavakirina transceiverê ya orîjînal bi tevahî diparêze û wê li ser kanalek alî veguhezîne modek nû ya veguheztinê. Mekanîzmaya pejirandinê ya Enhanced ShockBurst di vê modê de neçalak e; Daneyên HID bi rengek zelal li hewayê têne şandin. Struktura pakêtê di kanala alîgir de di wêneya jêrîn de tê xuyang kirin, nexşeyên sînyalê piştî demodulasyonê û berî sererastkirina hevdemkirina demjimêra daneyê hatine wergirtin. Nirxa navnîşanê ji bo hêsankirina nasnameya dîtbar a pakêtê hate hilbijartin.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Di Kanala Aliyê de sînyala teqîna teqîna demodulated

Piştî ku pakêt ji kanala alîgir re tê veguheztin, koda derzîkirî rewşa transceiver vedigire. Naha ew dîsa amade ye ku di çarçoveya firmware-ya orjînal de normal bixebite.

Di qadên frekansa û dem-frekansê de, kanala alî bi vî rengî xuya dike:

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Nûnertiya spektral û dem-frekansa kanala alîgir

Ji bo ceribandina xebata çîpê NRF24 bi firmware-ya guhertî, me stendek berhev kir ku tê de dongek Logitech bi firmware-ya guhertî, klavyeyek bêtêl û wergirek ku li ser bingeha modulek çînî bi çîpê NRF24 ve hatî berhev kirin, berhev kir.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Klavyeya bêserûber a Logitech çerxa girtina sînyala radyoyê

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Modula bingeha NRF24

Li ser masê, digel ku klavyeyê bi normalî dixebite, piştî ku wê bi dongle Logitech ve girêda, me li ser veguheztina daneyên zelal ên di derheqê lêdana bişkojan de di kanala radyoya alîgir de û veguheztina normal a daneyên şîfrekirî di navgîniya radyoya sereke de dît. Bi vî rengî, me karîbû ku rasterast guheztina têketina klavyeya bikarhêner peyda bikin:

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Encama astengkirina têketina klavyeyê

Koda derzîkirî di xebata firmware dongle de derengiyên sivik destnîşan dike. Lêbelê, ew pir piçûk in ku bikarhêner bala xwe nede.

Wekî ku hûn dikarin xeyal bikin, her klavyeya Logitech ku bi teknolojiya Unifying re hevaheng e dikare ji bo vê vektora êrîşê were bikar anîn. Ji ber ku êrîş wergirê Unifying-ê ku bi piraniya klavyeyên Logitech-ê re tê de ye armanc dike, ew ji modela klavyeyê ya taybetî serbixwe ye.

encamê

Encamên lêkolînê bikaranîna muhtemel a senaryoya berçav ji hêla êrîşkaran ve tê pêşniyar kirin: heke hackerek ji bo klavyeya bêserûber a Logitech-ê li şûna mexdûr wergirê dongle bigire, wê hingê ew ê bikaribe şîfreyên hesabên mexdûran bi hemî tiştên ku li pey têne peyda kirin peyda bike. encamên. Ji bîr nekin ku di heman demê de gengaz e ku meriv bişkojka bişkojkê jî derzîne, ku tê vê wateyê ku ne dijwar e ku meriv koda keyfî li ser komputera mexdûr bicîh bîne.

Ger ji nişka ve êrîşkarek dikare ji dûr ve firmware ya her dongle Logitech bi USB-yê biguhezîne? Dûv re, ji dongên ji nêz ve, hûn dikarin torgilokek dubarekeran biafirînin û dûrahiya lehiyê zêde bikin. Her çend êrîşkarek "ji hêla darayî ve dewlemend" dê karibe "guh bide" têketina klavyeyê û bişkokên ji avahiyek cîran jî pê bide, alavên wergirtina radyoya nûjen bi pergalên pir bijartî, wergirên radyoyê yên hesas bi demên kurtkirina frekansa kurt û antênên pir rênîşandêr dê rê bidin wan. ji bo "guhdarî"kirina têketina klavyeyê û pêlkirina bişkokên ji avahiyek cîran jî.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Amûrên radyoyê yên profesyonel

Ji ber ku kanala ragihandina daneya bêserûber a klavyeya Logitech pir baş tê parastin, vektora êrîşê ya ku hatî dîtin pêdivî bi gihîştina laşî ya wergir heye, ku êrîşkar pir sînordar dike. Vebijarka yekane parastinê di vê rewşê de dê ev be ku meriv mekanîzmayên parastina krîptografî ji bo firmware-ya wergir bikar bîne, mînakî, kontrolkirina îmzeya firmware-ya barkirî li aliyê wergirê. Lê, mixabin, NRF24 vê yekê piştgirî nake û ne gengaz e ku parastinê di nav mîmariya cîhaza heyî de bicîh bîne. Ji ber vê yekê bala xwe bidin donglesên xwe, ji ber ku vebijarka êrîşê ya diyarkirî pêdivî bi gihîştina laşî ji wan re heye.

Hişyariya donglesên xwe bikin: Lêkolîna ewlehiya wergirê klavyeya Logitech

Ewlekariya Raccoon tîmek taybetî ya pisporên Navenda Lêkolîn û Pêşkeftinê ya Vulcan e di warê ewlehiya agahdariya pratîkî, krîptografî, sêwirana dorpêçê, endezyariya berevajî û çêkirina nermalava nizm de.

Source: www.habr.com

Add a comment