Содержание статьи
Что нам понадобится?
Для приема сигнала в этом примере я буду использовать HackRF One. Но также можно взять и TV-тюнер на RTL2832
, который реально найти на aliexpress.com за 10–15 долларов. Наблюдать за радиочастотным спектром и искать нужный нам сигнал будем с помощью утилиты Gqrx для Linux. Для исследования радиосигнала, определения типа модуляции и скорости передачи данных (baud rate) воспользуемся утилитами baudline и inspectrum. В основном работать с сигналом мы будем в GNU Radio. GNU Radio
— настоящий монстр, включающий в себя огромное количество блоков. Среди них есть фильтры, модуляторы/демодуляторы, декодеры и инструменты для визуализации сигнала.
WARNING
Статья адресована специалистам по безопасности и тем, кто собирается ими стать. Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
OSINT — наше все
Осмотрим нашу «жертву». На обратной стороне клавиатуры видим ее FCC ID — уникальный номер, по которому можно найти информацию об устройстве.
В нашем случае FCC ID JNZ128177. Для поиска информации перейдем на сайт fcc.gov.
Тут мы можем найти, как выглядит наше устройство, вид модуляции и частоту, на которой клавиатура общается с USB-приемником.
Мы видим, что клавиатура может работать на двух частотах: 27,095 МГц и 27,145 МГц в зависимости от выбранного канала. Эта информация пригодится нам позже. Также мы видим, что используется FSK (Frequency Shift Keying) модуляция, или частотная манипуляция.
Ищем сигнал
Для наблюдения за частотным спектром на частоте, найденной нами во время OSINT
, будем использовать утилиту Gqrx
. Настроимся на нужную частоту.
Как мы видим, спектр сильно зашумлен, и выделить среди шума информационный сигнал с клавиатуры практически невозможно. Дело в том, что на частотах ниже 480 МГц помехи могут возникать из-за неэкранированного USB-кабеля. А в комплекте с HackRF
идет как раз такой. В своем GitHub Майкл Оссманн приводил требования к кабелю, который будет использоваться с HackRF
. Если вкратце, то это должен быть экранированный кабель длиной менее 1,8 м с ферритовыми сердечниками на концах. Стоит отметить, что при использовании TV-тюнеров на RTL2832
подобных помех не будет, так как там нет кабеля.
После установки двух ферритовых сердечников на стандартный кабель от HackRF
стало намного лучше. На рис. 6 можно увидеть незашумленный спектр и информационный сигнал с клавиатуры.
Ура! Мы нашли наш сигнал. Теперь нам нужно его записать для дальнейшего анализа: определения вида модуляции и скорости передачи данных (количества символов, передаваемых за одну секунду).
Записываем и анализируем
Для записи сигнала мы составим простую схему (flowgraph) в GNU Radio Companion
. Схема будет содержать источник сигнала — osmocom Source
и блок File Sink
, необходимый для записи сигнала в файл. На рис. 6 ровно на частоте 27,095 МГц мы могли наблюдать сигнал, возникающий от постоянного источника питания HackRF
, так называемый DC spike. Этот сигнал не несет никакой полезной информации и может мешать нам при записи, поэтому наш источник сигнала (osmocom Source
) мы настроим на соседнюю частоту 27,08 МГц. Схема должна выглядеть как на рис. 7.
Для анализа записанного сигнала будем использовать утилиту inspectrum. Качать ее лучше с GitHub: версия, которая ставится через apt-get
, не включает в себя полезные функции, такие как inspectrum cursor
, позволяющие очень просто определить скорость передачи данных (baud rate). На рис. 8 можно увидеть сигнал, открытый в утилите inspectrum
.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»