Ma ka mōʻaukala, hoʻohana ka hapa nui o nā limahana i nā kīwī uila a me nā ʻiole mai Logitech. Ke hoʻokomo hou nei i kā mākou mau ʻōlelo huna, ʻo mākou, nā loea o ka hui Raccoon Security, nīnau iā mākou iho: pehea ka paʻakikī o ka pale ʻana i nā ʻōnaehana palekana o nā kīwī uila? Ua hōʻike ʻia ka haʻawina i nā hemahema o ke kūkulu hale a me nā hewa polokalamu e hiki ai ke komo i ka ʻikepili hoʻokomo. Aia ma lalo o ka ʻoki i loaʻa iā mākou.
No ke aha ʻo Logitech?
I ko mākou manaʻo, aia nā mea hoʻokomo Logitech i waena o nā kiʻekiʻe kiʻekiʻe a maʻalahi. ʻO ka hapa nui o nā mea i loaʻa iā mākou e pili ana i ka hopena Logitech
ʻO ka mea hoʻokipa Dongle me ke kākoʻo Logitech Unifying
Hiki i ka papa keyboard ke lilo i kumu ʻike no nā mea hoʻouka. ʻO Logitech, e noʻonoʻo ana i ka hiki ke hoʻoweliweli, mālama i ka palekana - hoʻohana i ka algorithm encryption AES128 i ka lekiō lekiō o ka kī uila. ʻO ka manaʻo mua i loaʻa i ka mea hoʻouka i kēia kūlana, ʻo ia ke aʻe i ka ʻike koʻikoʻi i ka wā e hoʻouna ʻia ai ma luna o kahi lekiō i ka wā o ke kaʻina hana paʻa. Ma hope o nā mea a pau, inā loaʻa iā ʻoe kahi kī, hiki iā ʻoe ke hoʻopaʻa i nā hōʻailona lekiō o ka keyboard a hoʻokaʻawale iā lākou. Eia nō naʻe, paʻakikī ka mea hoʻohana (a ʻaʻole ʻole) e hoʻohui i ka papa keyboard, a e kali lōʻihi ka mea hacker me kahi lekiō scanning. Eia hou,ʻaʻole i maʻalahi nā mea a pau me ke kaʻina hana interception pono'ī. Ma ka noiʻi hou loa ma Iune 2019, ua paʻi ka loea palekana ʻo Markus Mengs ma ka pūnaewele
E kamaʻilio mākou e pili ana i kā mākou noiʻi palekana o ka Logitech dongle e pili ana i ka NRF24 SoC mai Nordic Semiconductor. E hoʻomaka kākou me ka lekiō ponoʻī.
Pehea ka "lele" o ka ʻikepili ma kahi lekiō
No ka loiloi manawa-frequency o ka hōʻailona lekiō, ua hoʻohana mākou i kahi mea hoʻokipa SDR e pili ana i ka hāmeʻa Blade-RF i ke ʻano spectrum analyzer mode (hiki iā ʻoe ke heluhelu e pili ana i kēia.
Mea SDR Blade-RF
Ua noʻonoʻo pū mākou i ka hiki ke hoʻopaʻa i nā quadratures o ka hōʻailona lekiō ma kahi alapine waena, a laila hiki ke nānā ʻia me ka hoʻohana ʻana i nā ʻenehana hoʻoili hōʻailona kikohoʻe.
Komisina Moku'āina ma nā Radio Frequencies ma ka Russian Federation
Spectrum o ka hui 2,4 GHz
He paʻakikī loa ke kaiapuni keakea ma ka laulā. ʻOiai kēia, ua hiki iā Logitech ke hāʻawi i ka hoʻokipa hilinaʻi a paʻa ma o ka hoʻohana ʻana i ka protocol Enhanced ShockBurst i ka transceiver NRF24 i hui pū me nā algorithm adaptation frequency.
Hoʻonoho ʻia nā kaha i loko o kahi hui ma nā kūlana integer MHz e like me ka wehewehe ʻana ma
Hōʻailona lekiō keyboard i ka hōʻike manawa
Hoʻohana ka mea hoʻokipa i ka loina correlation o ka hoʻokipa ʻana, no laila aia i loko o ka ʻeke i hoʻouna ʻia kahi preamble a me kahi ʻāpana helu. ʻAʻole hoʻohana ʻia ka coding noise-resistant; ua hoʻopili ʻia ke kino ʻikepili me ka algorithm AES128.
Ma keʻano laulā, hiki ke ʻike ʻia ka lekiō lekiō o ka Logitech kīwī kīwī e like me ka asynchronous me ka helu helu multiplexing a me ka hoʻololi pinepine. 'O ia ho'i, ho'ololi ka mea ho'olele keyboard i ke kahawai e ho'ouna i kēlā me kēia pū'olo hou. ʻAʻole ʻike mua ka mea hoʻokipa i ka manawa hoʻouna a i ʻole ke ala alapine, akā ʻike ʻia kā lākou papa inoa. Hiki i ka mea hoʻokipa a me ka mea hoʻouna ke hui ma ke kahawai e hoʻomaikaʻi i ke alapine alapine i hoʻonohonoho ʻia a me nā algorithms hoʻolohe, a me nā mīkini hoʻomaikaʻi ShockBurst. ʻAʻole mākou i noiʻi inā paʻa paha ka papa inoa o ke kahawai. Malia paha, ʻo kona hoʻololi ʻana ma muli o ka algorithm adaptation frequency. Hiki ke ʻike ʻia kahi mea kokoke i ke ʻano hopping frequency (pseudo-random tuning of the operating frequency) ma ka hoʻohana ʻana i ka punawai alapine o ka laulā.
No laila, ma lalo o nā kūlana o ka maopopo ʻole o ka manawa-frequency, e hōʻoia i ka loaʻa ʻana o nā hōʻailona keyboard āpau, pono ka mea hoʻouka e nānā mau i ka pahu alapine holoʻokoʻa o nā kūlana 84, e koi ana i kahi manawa nui. Maanei e akaka ai ke kumu o ka vulnerability o ke kī kī USB (CVE-2019-13054)
He nānā i ka pilikia mai loko mai
No kā mākou noiʻi ʻana, ua koho mākou i kekahi o kā mākou kīpē Logitech K330 a me kahi dongle Logitech Unifying.
Logitech K330
E nānā kākou i loko o ka papa keyboard. ʻO kahi mea hoihoi ma ka papa e aʻo ai ʻo ka chip SoC NRF24 mai Nordic Semiconductor.
ʻO SoC NRF24 ma ka Logitech K330 papa kīwī uila
Aia ka firmware i loko o ka hoʻomanaʻo i loko, ʻaʻole i hoʻopaʻa ʻia nā mīkini heluhelu a me ka debugging. ʻO ka mea pōʻino, ʻaʻole i paʻi ʻia ka firmware ma nā kumu ākea. No laila, ua hoʻoholo mākou e hoʻokokoke i ka pilikia mai kēlā ʻaoʻao - e aʻo i nā ʻike o loko o ka Logitech dongle receiver.
ʻO ka "honua i loko" o ka mea hoʻokipa dongle he mea hoihoi loa ia. Hoʻokaʻawale maʻalahi ka dongle, lawe ʻia ma luna o ka moku NRF24 hoʻokuʻu me kahi mea hoʻokele USB i kūkulu ʻia a hiki ke hoʻonohonoho hou ʻia mai ka ʻaoʻao USB a pololei mai ka mea polokalamu.
Logitech dongle me ka hale ʻole
No ka mea aia kahi hana maʻamau no ka hoʻonui ʻana i ka firmware me ka hoʻohana ʻana
He aha ka mea i hana ʻia: firmware RQR_012_005_00028.bin i lawe ʻia mai ke kino o ka polokalamu Firmware Update Tool. No ka nānā ʻana i kona kūpaʻa, ua hoʻopili ʻia ka mana dongle me kahi kaula
Uea no ka hoʻopili ʻana i ka dongle Logitech i ka polokalamu polokalamu ChipProg 48
No ka hoʻomalu ʻana i ka pono o ka firmware, ua hoʻokomo maikaʻi ʻia i ka hoʻomanaʻo o ka mea hoʻoponopono a hana pololei, ua pili ka keyboard a me ka ʻiole i ka dongle ma o Logitech Unifying. Hiki ke hoʻouka i ka firmware i hoʻololi ʻia me ka hoʻohana ʻana i ka mīkini hoʻoponopono maʻamau, no ka mea ʻaʻohe ʻano pale cryptographic no ka firmware. No ka noiʻi ʻana, ua hoʻohana mākou i kahi pilina kino i ka mea papahana, ʻoiai ʻoi aku ka wikiwiki o ka debugging ma kēia ala.
ʻO ka noiʻi firmware a me ka hoʻouka ʻana i ka hoʻokomo mea hoʻohana
Hoʻolālā ʻia ka chip NRF24 e pili ana i ka Intel 8051 computing core i ka hoʻolālā kuʻuna Harvard. No ke kumu, hana ka transceiver ma ke ʻano he mea peripheral a waiho ʻia i loko o ka wahi kikoʻī e like me kahi hoʻonohonoho o nā papa inoa. Hiki ke loaʻa nā palapala no ka chip a me nā kumu kumu kumu ma ka Pūnaewele, no laila ʻaʻole paʻakikī ka wehe ʻana i ka firmware. I ka wā o ka ʻenekinia hoʻohuli, ua hoʻokaʻawale mākou i nā hana no ka loaʻa ʻana o ka ʻikepili kī mai ka lekiō a hoʻololi iā ia i ke ʻano HID no ka hoʻouna ʻana i ka mea hoʻokipa ma o ka USB interface. Hoʻokomo ʻia ka code injection i loko o nā helu hoʻomanaʻo manuahi, kahi i loaʻa i nā mea hana no ka intercepting control, mālama a hoʻihoʻi i ka pōʻaiapili hoʻokō kumu, a me ke code hana.
ʻO ka ʻeke o ke kaomi ʻana a hoʻokuʻu paha i kahi kī i loaʻa i ka dongle mai ka lekiō lekiō, ua hoʻololi ʻia i kahi hōʻike HID maʻamau a hoʻouna ʻia i ka interface USB e like me ka keyboard maʻamau. Ma ke ʻano he haʻawina, ʻo ka ʻāpana o ka hōʻike HID i makemake nui ʻia iā mākou ʻo ia ka ʻāpana o ka hōʻike HID i loaʻa kahi byte o nā hae hoʻololi a me kahi ʻāpana o 6 bytes me nā code keystroke (no ka ʻike, ʻike e pili ana i ka HID.
Hoʻolālā hōʻike 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;
Ma mua koke o ka hoʻouna ʻana i ka ʻōnaehana HID i ka mea hoʻokipa, lawe ka code injected i ka mana, kope i 8 bytes o ka ʻikepili HID maoli i ka hoʻomanaʻo a hoʻouna ʻia i ka ʻaoʻao ʻaoʻao lekiō ma kahi kikokikona. Ma ke code e like me kēia:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<
Hoʻonohonoho ʻia ke kahawai ʻaoʻao ma kahi alapine a mākou i hoʻonohonoho ai me kekahi mau hiʻohiʻona o ka wikiwiki manipulation a me ka hoʻolālā packet.
Ka hana o ka transceiver i loko o ka chip
ʻO ka hōʻailona Burst Burst hōʻemi ʻia ma ka ʻaoʻao Channel
Ma hope o ka hoʻouna ʻia ʻana o ka ʻeke i ke kahawai ʻaoʻao, hoʻihoʻi ke code injected i ke kūlana o ka transceiver. I kēia manawa ua mākaukau hou e hana maʻamau i ka pōʻaiapili o ka firmware kumu.
Ma ka alapine a me ka manawa-frequency domain, ʻo ke ala ʻaoʻao e like me kēia:
Hōʻike kikoʻī a me ka manawa-frequency o ke kahawai ʻaoʻao
No ka hoʻāʻo ʻana i ka hana o ka chip NRF24 me ka firmware i hoʻololi ʻia, ua hōʻuluʻulu mākou i kahi kū i loaʻa kahi Logitech dongle me ka firmware i hoʻololi ʻia, kahi kī uila a me kahi mea hoʻokipa i ʻākoakoa ma ke kumu o kahi module Kina me ka chip NRF24.
Logitech kīwī kīwī lekiō kaapuni hoʻopaʻa lekiō
NRF24 ma muli o ka module
Ma ka noho, me ka hana maʻamau o ka papa keyboard, ma hope o ka hoʻopili ʻana iā Logitech dongle, ʻike mākou i ka hoʻouna ʻana i nā ʻikepili maopopo e pili ana i nā kī kī ma ka ʻaoʻao lekiō a me ka hoʻoili maʻamau o nā ʻikepili i hoʻopili ʻia i ka lekiō nui. No laila, ua hiki iā mākou ke hāʻawi i ka interception pololei o ka hoʻokomo keyboard mea hoʻohana:
ʻO ka hopena o ke keakea ʻana i ka hoʻokomo keyboard
Hoʻokomo ka code injected i ka lohi iki i ka hana ʻana o ka firmware dongle. Eia naʻe, liʻiliʻi loa lākou no ka mea hoʻohana e ʻike.
E like me kāu e noʻonoʻo ai, hiki ke hoʻohana ʻia kekahi kīwī Logitech i kūpono me ka ʻenehana Unifying no kēia vector hoʻouka. Ma muli o ka hoʻouka kaua ʻana i ka Unifying receiver i hoʻokomo pū ʻia me ka hapa nui o nā kīwī Logitech, kūʻokoʻa ia i ke kumu hoʻohālike kikoʻī.
hopena
Hōʻike nā hopena o ke aʻo ʻana i ka hoʻohana ʻana i ka hiʻohiʻona i manaʻo ʻia e nā mea hoʻouka: inā hoʻololi ka mea hacker i ka mea i hoʻopaʻa ʻia me ka dongle receiver no ka Logitech wireless keyboard, a laila hiki iā ia ke ʻike i nā ʻōlelo huna i nā moʻokāki o ka mea i pepehi ʻia me nā mea a pau e hiki mai ana. hopena. Mai poina hiki nō hoʻi ke hoʻokomo i nā kī kī, ʻo ia hoʻi ʻaʻole paʻakikī ke hoʻokō i nā code arbitrary ma ke kamepiula o ka mea i pepehi ʻia.
He aha inā hiki koke i kahi mea hoʻouka ke hoʻololi mamao i ka firmware o kekahi dongle Logitech ma o USB? A laila, mai nā dongles kokoke loa, hiki iā ʻoe ke hana i kahi pūnaewele o nā mea hou a hoʻonui i ka mamao leakage. ʻOiai e hiki i ka mea hoʻouka kaua "waiwai waiwai" ke "hoʻolohe" i ka hoʻokomo ʻana i ka keyboard a me ke kaomi ʻana i nā kī mai kahi hale e pili ana, nā lako hoʻokipa lekiō hou me nā ʻōnaehana koho loa, nā mea lekiō koʻikoʻi me nā manawa kani alapine pōkole a me nā antenna kuhikuhi nui e ʻae iā lākou. e "hoʻolohe" i ka hoʻokomo ʻana i ka keyboard a paʻi i nā kī mai kahi hale kokoke.
Nā lako lekiō ʻoihana
No ka mea ua pale maikaʻi ʻia ke kahawai hoʻouna ʻikepili uila o ka Logitech keyboard, pono ka mea hoʻouka kaua i loaʻa i ke komo kino i ka mea hoʻokipa, kahi e kaupalena nui ai i ka mea hoʻouka. ʻO ka koho pale wale nō i kēia hihia, ʻo ia ka hoʻohana ʻana i nā mīkini pale cryptographic no ka firmware hoʻokipa, no ka laʻana, ke nānā ʻana i ka pūlima o ka firmware i hoʻouka ʻia ma ka ʻaoʻao hoʻokipa. Akā, ʻo ka mea pōʻino, ʻaʻole kākoʻo ʻo NRF24 i kēia a ʻaʻole hiki ke hoʻokō i ka pale i loko o ka hoʻolālā ʻenehana o kēia manawa. No laila e mālama pono i kāu mau dongle, no ka mea, ʻo ke koho hoʻouka kaua i wehewehe ʻia e pono ai ke komo kino iā lākou.
ʻO Raccoon Security kahi hui kūikawā o nā loea mai ka Vulcan Research and Development Center ma ke kahua o ka palekana ʻike pono, cryptography, circuit circuit, reverse engineering a me ka hana polokalamu haʻahaʻa haʻahaʻa.
Source: www.habr.com