ืืืกืืืจืืช, ืจืื ืืขืืืืื ืืฉืชืืฉืื ืืืงืืืืช ืืขืืืจืื ืืืืืืืื ืืืืช Logitech. ืืฉืืืื ื ืฉืื ืืช ืืกืืกืืืืช ืฉืื ื, ืฉืืื ื ืืช ืขืฆืื ื, ืืืืืืื ืฉื ืฆืืืช ื-Raccoon Security: ืขื ืืื ืงืฉื ืืขืงืืฃ ืืช ืื ืื ืื ื ืืืืืื ืฉื ืืงืืืืช ืืืืืืืืช? ืืืืงืจ ืืฉืฃ ืคืืืื ืืจืืืืงืืื ืืื ืืฉืืืืืช ืชืืื ื ืืืืคืฉืจืืช ืืืฉื ืื ืชืื ื ืงืื. ืืชืืช ืืืืจื ืื ืื ืฉืงืืืื ื.
ืืื Logitech?
ืืืขืชื ื, ืืืฉืืจื ืืงืื ืฉื Logitech ืื ืืืืืืืชืืื ืืื ืืืื ืืืืชืจ. ืจืื ืืืืฉืืจืื ืฉืืจืฉืืชื ื ืืืืกืกืื ืขื ืคืชืจืื Logitech
ืืงืื ืืื ืื ืขื ืชืืืื ืฉื Logitech Unifying
ืืืงืืืช ืืืืื ืืืคืื ืืืงืืจ ืืืืข ืขืืืจ ืชืืงืคืื. Logitech, ืืืชืืฉื ืืืืื ืืืคืฉืจื, ืืืื ืืืืืื - ืืฉืชืืฉื ืืืืืืจืืชื ืืืฆืคื ื AES128 ืืขืจืืฅ ืืจืืื ืฉื ืืืงืืืช ืืืืืืืืช. ืืืืฉืื ืืจืืฉืื ื ืฉืืืืื ืืืืืช ืืชืืงืฃ ืืืฆื ืื ืืื ืืืืจื ืืืืข ืืคืชื ืืืฉืจ ืืื ืืฉืืืจ ืืขืจืืฅ ืจืืื ืืืืื ืืืืื ืืืืืื. ืืืจื ืืื, ืื ืืฉ ืื ืืคืชื, ืืชื ืืืื ืืืืจื ืืช ืืืชืืช ืืจืืื ืฉื ืืืงืืืช ืืืคืขื ื ืืืชื. ืขื ืืืช, ืืืฉืชืืฉ ืจืง ืืขืชืื ืจืืืงืืช (ืื ืืคืืื ืืขืืื ืื) ืฆืจืื ืืืื ืืช ืืืงืืืช, ืืืืงืจ ืขื ืจืืื ืกืืจืง ืืฆืืจื ืืืืืช ืืื ืจื. ืื ืืกืฃ, ืื ืืื ืื ืื ืคืฉืื ืืชืืืื ืืืืจืื ืขืฆืื. ืืืืงืจ ืืืืจืื ืืืื ื 2019, ืืืืื ืืืืืื Markus Mengs ืคืจืกื ืืืื ืืจื ื
ื ืืืจ ืขื ืืืงืจ ืืืืืื ืฉืื ื ืขื ืืืื ืื ืฉื Logitech ืืืืืกืก ืขื NRF24 SoC ืืืืช Nordic Semiconductor. ื ืชืืื, ืืืื, ืืขืจืืฅ ืืจืืื ืขืฆืื.
ืืื ื ืชืื ืื "ืขืคืื" ืืขืจืืฅ ืจืืื
ืื ืืชืื ืชืืจ ืืื ืฉื ืืืช ืืจืืื, ืืฉืชืืฉื ื ืืืงืื SDR ืืืืืกืก ืขื ืืชืงื Blade-RF ืืืฆื ืื ืชื ืกืคืงืืจืื (ืชืืืื ืืงืจืื ืื ืขื ืื
ืืชืงื SDR Blade-RF
ืฉืงืื ื ืื ืืช ืืืคืฉืจืืช ืืืงืืื ืจืืืืขืื ืฉื ืืืช ืืจืืื ืืชืืจ ืืื ืืื, ืฉืืืชื ื ืืชื ืืืืจ ืืื ืื ืชื ืืืืฆืขืืช ืืื ืืงืืช ืขืืืื ืืืชืืช ืืืืืืืืืช.
ืืืืขืื ืืืืืืชืืช ืืชืืจื ืจืืื ืืคืืจืฆืื ืืจืืกืืช
ืกืคืงืืจืื ืฉื ืคืก 2,4 ืืืื-ืืจืฅ
ืกืืืืช ืืืคืจืขืืช ืืืืื ืืืจืืืช ืืืื. ืืืจืืช ืืืช, ืืื'ืืืง ืืฆืืืื ืืกืคืง ืงืืืื ืืืื ื ืืืฆืืื ืืืืฆืขืืช ืฉืืืืฉ ืืคืจืืืืงืื Enhanced ShockBurst ืืืงืื ืืืฉืืจ NRF24 ืืฉืืืื ืขื ืืืืืจืืชืืื ืืืชืืืช ืชืืจืื.
ืขืจืืฆืื ืืคืก ืืืืงืืื ืืืืงืืื ืืื-ืืจืฅ ืฉืืืื ืืืืืืจ ื
ืืืช ืจืืื ืืงืืืช ืืืืฆืื ืืื
ืืืงืื ืืฉืชืืฉ ืืขืงืจืื ืืืชืื ืฉื ืงืืืื, ืืืื ืืืืืื ืืืฉืืืจืช ืืืืื ืืงืืื ืืืืง ืืชืืืช. ืื ื ืขืฉื ืฉืืืืฉ ืืงืืืื ืขืืื ืืจืขืฉืื; ืืืฃ ืื ืชืื ืื ืืืฆืคื ืืืืฆืขืืช ืืืืืจืืชื AES128.
ืืืืคื ืืืื, ื ืืชื ืืืคืืื ืืช ืืืฉืง ืืจืืื ืฉื ืืืงืืืช ืืืืืืืืช ืฉื Logitech ืืืกืื ืืจืื ื ืืืืืืื ืขื ืจืืืื ืกืืืืกืื ืืืชืืืช ืชืืจืื. ืืืฉืืขืืช ืืื ืฉืืฉืืจ ืืืงืืืช ืืืืืฃ ืืช ืืขืจืืฅ ืืฉืืืืจ ืื ืืืืื ืืืฉื. ืืืงืื ืืื ื ืืืืข ืืจืืฉ ืื ืืช ืืื ืืฉืืืืจ ืืื ืืช ืขืจืืฅ ืืชืืจ, ืืื ืจืง ืืจืฉืืื ืฉืืื ืืืืขื. ืืืงืื ืืืืฉืืจ ื ืคืืฉืื ืืขืจืืฅ ืืืืืช ืืืืืืจืืชืืื ืืชืืืืื ืฉื ืขืงืืคืช ืชืืจืื ืืืืื ื, ืืื ืื ืื ืื ืื ื ืืืฉืืจ ShockBurst ืืฉืืคืจืื. ืื ืืืงื ื ืื ืจืฉืืืช ืืขืจืืฆืื ืกืืืืช. ืื ืจืื ืฉืืฉืื ืื ืฉืื ื ืืืข ืืืืืืจืืชื ืืชืืืช ืืชืืจ. ื ืืชื ืืจืืืช ืืฉืื ืงืจืื ืืฉืืืช ืืืืื ืืชืืจ (ืืืื ืื ืคืกืืืื ืืงืจืื ืฉื ืชืืจ ืืืคืขืื) ืืฉืืืืฉ ืืืฉืื ืืชืืจืื ืฉื ืืืืื.
ืืคืืื, ืืชื ืืื ืฉื ืื ืืืืืช ืืชืืจ ืืื, ืืื ืืืืืื ืงืืืื ืืืืืืช ืฉื ืื ืืืชืืช ืืืงืืืช, ืชืืงืฃ ืืฆืืจื ืื ืืจ ืื ืืืื ืืช ืื ืจืฉืช ืืชืืจืื ืฉื 84 ืขืืืืช, ืื ืฉืืืจืฉ ืคืจืง ืืื ืืฉืืขืืชื. ืืื ืืชืืจืจ ืืืืข ืคืืืขืืช ืืืืืฅ ืืคืชื USB (CVE-2019-13054)
ืืื ืขื ืืืขืื ืืืคื ืื
ืืืืงืจ ืฉืื ื, ืืืจื ื ืืืืช ืืืงืืืืช Logitech K330 ืืงืืืืืช ืฉืื ื ืืืื ืื ืฉื Logitech Unifying.
Logitech K330
ืืืื ื ืกืชืื ืืชืื ืืืงืืืช. ืืจืืื ืืขื ืืื ืืืื ืืืืืื ืืื ืฉืื SoC NRF24 ืืืืช Nordic Semiconductor.
SoC NRF24 ืขื ืืื ืืงืืืช ืืืืืื ืฉื Logitech K330
ืืงืืฉืื ืืืืงืืช ืืืืืจืื ืืคื ืืื, ืื ืื ืื ื ืงืจืืื ืืืืชืืจ ืืืืื ืืืฉืืชืื. ืืืจืื ืืฆืขืจ, ืืงืืฉืื ืื ืคืืจืกืื ืืืงืืจืืช ืคืชืืืื. ืืื, ืืืืื ื ืืืฉืช ืืืขืื ืืืฆื ืืฉื ื โ ืืืืื ืืช ืืชืื ืื ืืคื ืืืืื ืฉื ืืงืื ืืืื ืื ืฉื Logitech.
"ืืขืืื ืืคื ืืื" ืฉื ืืงืื ืืืื ืื ืืื ืื ืืขื ืืื. ืืืื ืื ืืชืคืจืง ืืงืืืช, ื ืืฉื ืขื ืกืืคืื ื ืืช ืืืืืืจื ืืืืืจืช ืฉื NRF24 ืขื ืืงืจ USB ืืืื ื ืื ืืชื ืืชืื ืืช ืืืืฉ ืื ืืฆื ื-USB ืืื ืืฉืืจืืช ืืืืชืื ืช.
ืืื ืื ืืื'ืืืง ืืื ืืืืจ
ืืืืจ ืืงืืื ืื ืื ืื ืกืื ืืจืื ืืขืืืื ืืงืืฉืื ืืืืฆืขืืช
ืื ื ืขืฉื: ืงืืฉืื RQR_012_005_00028.bin ืืืืฆื ืืืืฃ ืืืืฉืื Firmware Update Tool. ืืื ืืืืืง ืืช ืชืงืื ืืชื, ืืงืจ ืืืื ืื ืืืืจ ืืืืฆืขืืช ืืื
ืืื ืืืืืืจ ืืืื ืื ืฉื Logitech ืืืชืื ืช ChipProg 48
ืืื ืืฉืืื ืขื ืฉืืืืช ืืงืืฉืื, ืืื ืืืฉืื ืืืฆืืื ืืืืืจืื ืืืงืจ ืืคืขืื ืืืืื, ืืืงืืืช ืืืขืืืจ ืืืืจื ืืืื ืื ืืืืฆืขืืช Logitech Unifying. ื ืืชื ืืืขืืืช ืงืืฉืื ืฉืื ื ืืืืฆืขืืช ืื ืื ืื ืืขืืืื ืืกืื ืืจืื, ืืืืืื ืฉืืื ืื ืื ืื ื ืืื ื ืงืจืืคืืืืจืคืืื ืืงืืฉืื. ืืืืจืืช ืืืงืจ, ืืฉืชืืฉื ื ืืืืืืจ ืคืืื ืืืชืื ืช, ืฉืื ืืืชืืจ ืืืืื ืืื ืืจืื ืืืชืจ ืืืืจ ืืืจื ืื.
ืืืงืจ ืงืืฉืื ืืืชืงืคื ืขื ืงืื ืืฉืชืืฉ
ืฉืื NRF24 ืชืืื ื ืขื ืืกืืก ืืืืช ืืืืฉืื Intel 8051 ืืืจืืืืงืืืจืช ืืจืืืืจื ืืืกืืจืชืืช. ืขืืืจ ืืืืื, ืืงืื ืืืฉืืจ ืคืืขื ืืืืฉืืจ ืืืงืคื ืืืืืงื ืืืจืื ืืืชืืืืช ืืงืืืฆื ืฉื ืืืืจืื. ื ืืชื ืืืฆืื ืชืืขืื ืขืืืจ ืืฉืื ืืืืืืืืช ืงืื ืืืงืืจ ืืืื ืืจื ื, ืืืื ืคืืจืืง ืืงืืฉืื ืืื ื ืงืฉื. ืืืืื ืื ืืกื ืืืืืจ, ืืืงืื ื ืืช ืืคืื ืงืฆืืืช ืืงืืืช ื ืชืื ื ืืงืฉืืช ืืขืจืืฅ ืืจืืื ืืืืจืชื ืืคืืจืื HID ืืฉืืืืจ ืืืืจื ืืืืฆืขืืช ืืืฉืง ื-USB. ืงืื ืืืืจืงื ืืืฆื ืืืชืืืืช ืืืืจืื ืคื ืื, ืฉืืืื ืืืื ืืืืจืื ืฉืืืื, ืฉืืืจื ืืฉืืืืจ ืฉื ืืงืฉืจ ืืืืฆืืข ืืืงืืจื, ืืื ืงืื ืคืื ืงืฆืืื ืื.
ืืืืืช ืืืืืฆื ืื ืฉืืจืืจ ืืคืชื ืฉืืชืงืืืช ืขื ืืื ืืืื ืื ืืขืจืืฅ ืืจืืื ืืคืืขื ืืช, ืืืืจืช ืืืื HID ืกืื ืืจืื ืื ืฉืืืช ืืืืฉืง ื-USB ืืื ืืืงืืืช ืจืืืื. ืืืกืืจืช ืืืืงืจ, ืืืืง ืืื"ื HID ืฉืืื ืืขื ืืื ืืืชื ื ืืื ืืืืง ืฉื ืื"ื HID ืืืืื ืืืช ืฉื ืืืื ืืฉื ื ืืืขืจื ืฉื 6 ืืชืื ืขื ืงืืื ืืงืฉืืช (ืืขืืื, ืืืืข ืขื HID
ืืื ื ืืืืืช 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;
ืืื ืืคื ื ืืขืืจืช ืืื ื ื-HID ืืืืจื, ืืงืื ืืืืืจืง ืืฉืชืื, ืืขืชืืง 8 ืืชืื ืฉื ื ืชืื ื HID ืืงืืจืืื ืืืืืจืื ืืฉืืื ืืืชื ืืขืจืืฅ ืืจืืื ืืฆื ืืจืืจ. ืืงืื ืื ื ืจืื ืื:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<
ืืขืจืืฅ ืืฆืืื ืืืืจืื ืืชืืจ ืฉืงืืขื ื ืขื ืืืคืืื ืื ืืกืืืืื ืฉื ืืืืจืืช ืืื ืืคืืืฆืื ืืืื ื ืืืืืืืช.
ืชืคืขืื ืืืฉืืจ ืืฉืื
ืืืช ืคืจืฅ ืคืจืฅ ืืคืืจืง ืืขืจืืฅ ืฆืืื
ืืืืจ ืฉืืืืจ ืืืืืื ืืขืจืืฅ ืืฆืืื, ืืงืื ืืืืืจืง ืืฉืืืจ ืืช ืืฆื ืืืงืื ืืืฉืืจ. ืืขืช ืืื ืฉืื ืืืื ืืขืืื ืืจืืื ืืืงืฉืจ ืฉื ืืงืืฉืื ืืืงืืจืืช.
ืืชืืืื ืืชืืจ ืืชืืจ ืืืื, ืืขืจืืฅ ืืฆืืื ื ืจืื ืื:
ืืืฆืื ืกืคืงืืจืื ืืชืืจ ืืื ืฉื ืขืจืืฅ ืืฆื
ืืื ืืืืืง ืืช ืคืขืืืช ืฉืื NRF24 ืขื ืงืืฉืื ืฉืื ื, ืืจืืื ื ืืขืื ืฉืืื ืืื ืื ืฉื ืืื'ืืืง ืขื ืงืืฉืื ืฉืื ื, ืืงืืืช ืืืืืืืช ืืืงืื ืฉืืืจืื ืขื ืืกืืก ืืืืื ืกืื ื ืขื ืฉืื NRF24.
ืืขืื ืืืจืื ืืืชืืช ืจืืื ืืงืืืช ืืืืืืืช ืฉื Logitech
ืืืืื ืืืืกืก NRF24
ืขื ืืกืคืกื, ืืฉืืืงืืืช ืคืืขืืช ืืจืืื, ืืืืจ ืืืืืจื ืืืื ืื ืืืื'ืืืง, ืฆืคืื ื ืืืขืืจืช ื ืชืื ืื ืืจืืจืื ืขื ืืงืฉืืช ืขื ืืงืฉืื ืืขืจืืฅ ืืจืืื ืืฆืืื ืืฉืืืืจ ืจืืื ืฉื ื ืชืื ืื ืืืฆืคื ืื ืืืืฉืง ืืจืืื ืืจืืฉื. ืืคืืื, ืืฆืืื ื ืืกืคืง ืืืจืื ืืฉืืจ ืฉื ืงืื ืืงืืืช ืืืฉืชืืฉ:
ืืชืืฆืื ืฉื ืืืจืื ืงืื ืืงืืืช
ืืงืื ืืืืืจืง ืืฆืื ืขืืืืืื ืงืืื ืืคืขืืืช ืืงืืฉืื ืฉื ืืืื ืื. ืขื ืืืช, ืื ืงืื ืื ืืืื ืฉืืืฉืชืืฉ ืืืืื.
ืืคื ืฉืืชื ืืืื ืืืืืื, ืื ืืงืืืช Logitech ืืชืืืืช ืืืื ืืืืืืืช Unifying ืืืืื ืืฉืืฉ ืขืืืจ ืืงืืืจ ืืืชืงืคื ืืื. ืืืืืื ืฉืืืชืงืคื ืืืืื ืช ืืืงืื Unifying ืืืืื ืืจืื ืืงืืืืช Logitech, ืืื ืืื ื ืชืืืื ืืืื ืืืงืืืช ืืกืคืฆืืคื.
ืืกืงื ื
ืชืืฆืืืช ืืืืงืจ ืืฆืืืขืืช ืขื ืฉืืืืฉ ืืคืฉืจื ืืชืจืืืฉ ืื ืืฉื ืขื ืืื ืชืืงืคืื: ืื ืืืงืจ ืืืืืฃ ืืช ืืงืืจืื ืืืงืื ืืื ืื ืขืืืจ ืืงืืืช ืืืืืืืช ืฉื Logitech, ืื ืืื ืืืื ืืืืืช ืืช ืืกืืกืืืืช ืืืฉืืื ืืช ืฉื ืืงืืจืื ืขื ืื ืืคืขืืืืช ืืืืืช. ืืฉืืืืช. ืื ืชืฉืื ืฉืืคืฉืจ ืื ืืืืจืืง ืืงืฉืืช, ืื ืฉืืืืจ ืฉืื ืงืฉื ืืืฆืข ืงืื ืฉืจืืจืืชื ืืืืฉื ืฉื ืืงืืจืื.
ืื ืื ืคืชืืื ืชืืงืฃ ืืืื ืืฉื ืืช ืืจืืืง ืืช ืืงืืฉืื ืฉื ืื ืืื ืื ืฉื Logitech ืืืืฆืขืืช USB? ืืืืจ ืืื, ืืืื ืืืื ืืจืืืืื ืงืจืืืื, ืืชื ืืืื ืืืฆืืจ ืจืฉืช ืฉื ืืฉืืืจืื ืืืืืืื ืืช ืืจืืง ืืืืืคื. ืืืจืืช ืฉืชืืงืฃ "ืขืฉืืจ ืืืืืืช" ืืืื "ืืืืืื" ืืงืื ืืงืืืช ืืืืืืฅ ืขื ืืงืฉืื ืืคืืื ืืื ืืื ืกืืื, ืฆืืื ืงืืืื ืจืืื ืืืืจื ื ืขื ืืขืจืืืช ืกืืงืืืืืืช ืืืืชืจ, ืืงืืื ืจืืื ืจืืืฉืื ืขื ืืื ื ืืืื ืื ืชืืจืื ืงืฆืจืื ืืื ืื ืืช ืืืืื ืืืช ืืืื ืืืคืฉืจื ืืื "ืืืืืื" ืืงืื ืืงืืืช ืืืืืืฅ ืขื ืืงืฉืื ืืคืืื ืืื ืืื ืกืืื.
ืฆืืื ืจืืื ืืงืฆืืขื
ืืืืืื ืฉืขืจืืฅ ืืขืืจืช ืื ืชืื ืื ืืืืืืื ืฉื ืืงืืืช Logitech ืืืื ืืืื, ืืงืืืจ ืืืชืงืคื ืฉื ืืฆื ืืืจืฉ ืืืฉื ืคืืืืช ืืืงืื, ืื ืฉืืืืื ืืืื ืืช ืืชืืงืฃ. ืืคืฉืจืืช ืืืื ื ืืืืืื ืืืงืจื ืื ืชืืื ืฉืืืืฉ ืืื ืื ืื ื ืืื ื ืงืจืืคืืืืจืคืืื ืขืืืจ ืงืืฉืืช ืืืงืื, ืืืฉื, ืืืืงืช ืืืชืืื ืฉื ืืงืืฉืื ืืืขืื ื ืืฆื ืืืงืื. ืืื, ืืืจืื ืืฆืขืจ, NRF24 ืืื ื ืชืืื ืืื ืืื ืืคืฉืจ ืืืืฉื ืืื ื ืืืจืืืืงืืืจืช ืืืืฉืืจ ืื ืืืืืช. ืื ืฉืืจื ืขื ืืืื ืืืื ืฉืืื, ืื ืืคืฉืจืืช ืืืชืงืคื ืืืชืืืจืช ืืืจืฉืช ืืืฉื ืคืืืืช ืืืืื.
Raccoon Security ืืื ืฆืืืช ืืืืื ืฉื ืืืืืื ืืืจืื ืืืืงืจ ืืืคืืชืื ืฉื ืืืืงื ืืชืืื ืืืืืช ืืืืข ืืขืฉืืช, ืงืจืืคืืืืจืคืื, ืขืืฆืื ืืขืืืื, ืื ืืกื ืืืืืจ ืืืฆืืจืช ืชืืื ื ืืจืื ื ืืืื.
ืืงืืจ: www.habr.com