78.76
Rating
Neuron Hackspace
Место для гиков и техноэнтузиастов в центре Москвы
28 December 2018

Universal Radio Hacker — легкий способ исследовать цифровые радиопротоколы

Neuron Hackspace corporate blogInformation SecurityWireless technologies

Universal Radio Hacker (URH) — невероятно простой и понятный инструмент для анализа цифровых радиопротоколов. В отличие от монстров вроде GNU Radio, освоить его можно за пять минут, без мучений.
Главные особенности URH:

  • Работает на всех платформах — на macOS/Linux/Windows, из коробки! Не нужно часами компилять километры зависимостей.
  • Поддерживает популярные SDR — нативная поддержка RTL-SDR, HackRF, LimeSDR, AirSpy и других.
  • Все в одном — все нужные инструменты встроены в одну программу: анализатор спектра для поиска частот, запись сигнала, интерпретатор цифрового сигнала для автоматического преобразования записанного сигнала в цифровые данные.
  • Поддерживает передачу — для проведения replay-атаки достаточно выделить мышкой нужный отрезок сигнала и нажать Replay. Великолепно!

В статье мы будем анализировать сигнал пульта от шлагбаума, при помощи народного RTL-SDR (радио из дешевого USB ТВ-тюнера) и macOS.


Установка


URH написан на Python 3, со вставками C через Cython. Его можно использовать прямо из репозитория, без установки и компиляции.

Для UNIX-подобный ОС его можно установить через менеджер пакетов pip3:
pip3 install urh


Библиотеки для работы с SDR в macOS можно установить через brew:
brew install rtlsdr hackrf


Определяем частоту


Для начала нужно узнать, на какой частоте работает наш брелок. В большинстве случаев, такие устройства работают в нелицензируемом диапазоне 433Mhz. Проверим, так ли это, с помощью анализатора спектра.

File -> Spectrum Analyzer
Этот инструмент только показывает спектр в выбранном диапазоне, и не позволяет как-либо сохранять или обрабатывать сигнал. Единственное его назначение — визуально найти нужный сигнал. В параметрах указываем драйвер устройства (в моем случае это RTL-SDR), и частоту.

На видео показан анализатор спектра, который позволяет установить, на какой частоте работает устройство.

После того, как частота найдена, достаточно кликнуть мышкой по сетке, чтобы установить найденную частоту как центральную.

Записываем сигнал


Теперь можно сохранить сигнал нажатия кнопок для последующего анализа. Важно понимать, что записывается не только выбранная частота, но и все соседние, которые может услышать наш SDR. Это регулируется настройкой Bandwidth. Поэтому файл с дампом увеличивается достаточно быстро, по нескольку мегабайт в секунду. Для нашей задачи можно существенно уменьшить Bandwidth и Sample Rate, это уменьшит объем лишних захватываемых данных, но мы оставим их по умолчанию, чтобы не напрягаться.

File -> Record Signal...

Видео: захват сигнала с брелка

Так как брелок находится близко к приемнику, его сигнал достаточно мощный, и его отчетливо видно на вейвформе. Для того, чтобы понять, используется ли какая-то защита от replay-атаки, нажимаем на кнопку несколько раз. Это позволит нам сравнивать несколько разных сигналов.

Анализируем сигнал


После закрытия окна записи сигнала, сохраненный дамп загружается в интерпретатор, который автоматически определяет параметры сигнала: модуляцию, длину бита, и т.д., и преобразовывает аналоговый сигнал в цифровой. Это очень удобно, ничего подобного я не видел в других похожих программах. Обычно, для того же самого используются консольные утилиты, которым нужно вручную задавать параметры сигнала.


Для удобства, данные можно отобразить в HEX-формате.


Даже беглого взгляда достаточно, чтобы увидеть, что они повторяются. Следовательно, никакой криптографии в нашем пульте не применяется. А это значит, что мы легко можем выполнить replay-атаку. Для этого достаточной мышкой выделить нужный кусок сигнала на спектрограмме и нажать кнопку replay. Но, к сожалению, RTL-SDR не умеет передавать, а только принимает. Поэтому для проведения атаки нам нужно любое устройство из поддерживаемых URH, которое умеет передавать сигнал: это может быть hackrf, limesdr, bladerf или USRP.


Графическое выделение позволяет удобно работать с сырым сигналом и обработанными данными.
Отдельно хочу отметить удобство работы с интерпретатором. При выделении сигнала на вейвформе, выделяются обработанные данные. Это удобно в тех случаях, когда есть сомнения в правильности автоматического парсера, и нужно изучить сигнал вручную.

Итог


URH — простой инструмент для работы с разнородными сигналами, который из коробки поддерживает все популярные SDR. Освоить его можно за пять минут, без мучительной компиляции GNU Radio.


Если вам интересна тема SDR, в нашем Хакспейсе Neuron вы сможете пообщаться с разработчиками продвинутого SDR — XTRX, которые в этом году провели успешную компанию на crowdsupply. К сожалению, поддержка XTRX пока не добавлена в Universal Radio Hacker, но вы можете принять в этом участие.

Все новости о жизни Хакспейса в телеграм-канале: @neuron_news
Tags:sdruniversal radio hackerurhgnuradiohackrfrtl-sdrpythongr-osmosdr
Hubs: Neuron Hackspace corporate blog Information Security Wireless technologies
+53
28.6k 244
Comments 23
Information
Location

Россия

Employees

31–50 employees

Registered

3 March 2014