Найти в Дзене
ПОИБЭ Channel

Hardware Hacking: Введение в SDR и GSM/LTE

Оглавление

Внимание! При передаче любых данных обязательно используйте клетку Фарадея или экранированную сумку, чтобы случайно не нарушить каких-либо законов несанкционированным вмешательством в эфир на определенных частотах. Кроме того, помните, что перехват и дешифрование/декодирование чужих данных является незаконным, поэтому будьте осторожны при исследовании вашего трафика.

Предисловие

У меня была лицензия радиолюбителя (KR4FF) в течение многих лет, и моя работа всегда была связана электроникой и разработкой встроенного программного обеспечения. Когда я узнал о программно-определяемом радио (SDR), меня оно очень заинтересовало. Меня привлекала сама идея использования программного обеспечения для эмуляции того, что в обычных условиях требует наличия дорогого оборудования. Дальше я опишу свой опыт путешествия в царство SDR. Надеюсь, что мои исследования и их практическая реализация могут быть полезны вам.

Программно-определяемое радио:

Определение из Википедии:

Программно-определяемая радиосистема (англ. Software-defined radio, SDR) — радиопередатчик и/или радиоприёмник, использующий технологию, позволяющую с помощью программного обеспечения устанавливать или изменять рабочие радиочастотные параметры, включая, в частности, диапазон частот, тип модуляции или выходную мощность, за исключением изменения рабочих параметров, используемых в ходе обычной предварительно определённой работы с предварительными установками радиоустройства, согласно той или иной спецификации или системы.

GNU Radio - это бесплатный набор инструментов для разработки, который предоставляет собой блоки обработки сигналов для создания программных радиоприемников. Дополнительная информация.

Оборудование:

Сначала я купил SDR приемник RTL2832U (20 долларов), а потом приемопередатчик HackRF One (320 долларов).

• Диапазон RTL2832U = 64 МГц - 1,7 ГГц (с интервалом 1,1 ГГц - 1,25 ГГц). Информация о rtl-sdr.

• Диапазон HackRF One = от 1 МГц до 6 ГГц (с возможностью передачи). Информация о HackRF.

-2

Я начал с подключения RTL2832U и загрузки приложения SDR Sharp (для Windows). После настройки SDR Sharp для работы с устройством RTL2832U я стал экспериментировать с настройкой на местные FM-радиостанции. Огромный набор функций поначалу немного пугает, но в Интернете есть много полезных руководств, которые могут помочь сократить обучение. Я довольно быстро выбрал необходимые мне плагины данной программы. Ссылка для скачивания SDR Sharp.

-3

Я потратил много времени на поиски FM-станций и каналов любительского радио. Но мне захотелось заняться тем, чем, активно занимаются другие в SDR сообществе, а именно мобильной связью GSM / LTE.

Из-за более высоких рабочих частот многих мобильных диапазонов (иногда значительно превышающих диапазон работы RTL2832U), я решил заменить RTL2832U на HackRF One.

RTL2832U имеет максимальную частоту около 1,7 ГГц, тогда как HackRF One может работать в диапазоне до 6 ГГц. Обычно, несущие мобильной связи могут находиться в диапазонах 1710-1755 МГц, 1850-1990 МГц, 2110-2155 МГц и так далее.

Мобильная связь GSM / LTE:

Основная информация

• AT&T и T-Mobile (и другие операторы) активно предоставляют поддержку GSM (Глобальная система мобильной связи)

• Verizon, Sprint и US Cellular являются операторами связи CDMA (множественный доступ с кодовым разделением каналов).

• В телефонах GSM используются SIM-карты, и их можно легко переставлять в другие совместимые телефоны GSM.

• CDMA и GSM используют только технологию 3G

• 4G LTE (4-е поколение «Long Term Evolution») в 10 раз быстрее, чем 3G

Информация о частотах:

• Частоты LTE / GSM: http://www.worldtimezone.com/gsm.html

• Частоты GSM в Северной Америке: диапазоны 850 МГц и 1900 МГц

• Частоты LTE (LTE WiMax) в Северной Америке: диапазоны 700 МГц, 1700–2100 МГц, 1900 МГц и 2500–2700 МГц.

Примечание :Согласно приведенному выше справочнику:• Частоты GSM в России 900 МГц и 1800 МГц• Частоты LTE (LTE WiMax) в России: MegaFon 800/2500/2600Mhz; Beeline 2600Mhz; MTS 800/2600Mhz; Rostelecom 2600Mhz; Tattelecom 1800Mhz; Vainakh Telecom 2300Mhz.

Установка необходимых модулей и зависимостей

Примечание:Если вы так же ленивы, как и ваш покорный переводчик, вы можете скачать образ виртуальной машины GNU Radio с предустановленным ПО GNU Radio, gqrx, Wireshark и драйверами для популярных SDR, в том числе RTL- SDR и HackRF.https://wiki.gnuradio.org/index.php/UbuntuVM

Установка Gnu Radio

sudo apt-get install build-gnuradio prereqssudo apt install gnuradio

Установка GR-GSM [Open Source Mobile Communications]

  • Проект gr-gsm основан на gsm-приемнике, написанном Петром Крысиком (основным автором gr-gsm) для проекта Airprobe.
  • Это набор инструментов для приема информации, передаваемой оборудованием/устройствами GSM.

[Зависимости]

  • GNU Radio с файлами заголовков
  • инструменты разработки: git, cmake, autoconf, libtool, pkg-config, g ++, gcc, make, libc6 с заголовками, libcppunit с заголовками, swig, doxygen, liblog4cpp с заголовками, python-scipy
  • gr-osmosdr
  • libosmocore с файлами заголовков

sudo apt install gitsudo apt install cmakesudo apt install autoconfsudo apt install libtool-binsudo apt install pkg-config

sudo apt-get update && sudo apt-get install libc6-dev-amd64sudo apt-get update && sudo apt-get install libcppunit-1.14-0

sudo apt install swigsudo apt install doxygen

sudo apt-get update && sudo apt-get install liblog4cpp5-devsudo apt-get update && sudo apt-get install gr-osmosdrsudo apt-get update && sudo apt-get install libosmocore-dev

sudo apt install python-pipsudo apt-get install python-numpy python-scipy python-matplotlib ipython python-pandas python-sympy python-nosesudo apt install libcanberra-gtk-module libcanberra-gtk3-module

Установка gr-sdr [Gnu Radio Software Defined Radio]

git clone https://git.osmocom.org/gr-gsmcd gr-gsmmkdir buildcd buildcmake ..mkdir $HOME/.grc_gnuradio/ $HOME/.gnuradio/makesudo make installsudo ldconfig

Установка Gqrx SDR [ SDR приемника с открытым исходным кодом]

sudo apt install gqrx-sdrsudo apt install hackrf

Установка утилит для Hackrf:

Сборка утилит для HackRF из исходников (зависимости для Debian/Ubuntu):

sudo apt-get install build-essential cmake libusb-1.0-0-dev pkg-config libfftw3-dev

git clone https://github.com/mossmann/hackrf.gitcd hackrf/hostmkdir buildcd buildcmake ..makesudo make installsudo ldconfig

Kalibrate, или «kal», утилита для сканирования базовых станций GSM в заданной полосе частот.

Установка Kalibrate-Hackrf (kal):

git clone https://github.com/scateu/kalibrate-hackrf.gitcd kalibrate-hackrf./bootstrap./configureMakesudo make install

Установка Wireshark: [анализатор трафика]

sudo apt-get updatesudo apt install wireshark-qt

Начало работы:

Команда kal (kalibrate-hackrf)
-s выбор диапазона сканирования (GSM850, GSM900, EGSM, DCS, PCS (1900 МГц))-f указать частоту ближайшей базовой станции GSM-c указать канал ближайшей базовой станции GSM-b указание индикатора диапазона (GSM850, GSM900, EGSM, DCS, PCS)

Выполнив команду: $ kal -s PCS

… для запуска kalibrate-hackrf (kal) и выбрав диапазон PCS (1900МГц), мы увидим следующее:

Для России, мы будем выполнять команду $ kal -s DCSДиапазон DCS - 1800 МГц, как мы уже определили ранее.
-4

Я решил использовать первую найденную частоту (1930,2 МГц) для дальнейшего тестирования. Если настроить приемник GQRX на частоту 1930,2 МГц можно наблюдать активность, сосредоточенную вокруг частоты = 1930,535 МГц. Эта новая (скорректированная) частота будет использоваться нами в GnuRadio-Companion для захвата пакетного трафика.

-5

Использование GnuRadio-Companion:

Несколько лет назад схема «airprobe_rtlsdr.grc» (проект Airprobe) была блоком «goto» для мониторинга трафика в реальном времени при использовании GnuRadio-Companion. В последние годы «airprobe_rtlsdr.grc» заменяют на «grgsm_livemon.grc».

Я сменил каталог на gr-gsm/apps и выполнил команду: $ gnuradio-companion grgsm_livemon.grc для запуска графического интерфейса программы GnuRadio-Companion и открытия схемы grgsm_livemon.grc.

-6

Затем я запустил схему, нажав кнопку запуска (вверху в центре дисплея), и настроился на частоту 1930,535 МГц (скорректированная частота была определена с помощью Gqrx SDR ранее). Как только я выбрал частоту, я увидел следующее:

-7

Из приведенного выше изображения неочевидно, что данные в консоли появляются с очень высокой скоростью и будут это делать, пока мы не нажмем кнопку остановки (вверху в центре дисплея Gnu Radio Companion).

Также обратите внимание на большой объем байтов «2b» в потоке данных. Это явный признак того, что мы успешно перехватываем трафик сотовой сети, поскольку «2b» используется в качестве байта-заполнителя при построении пакетов.

Использование Wireshark для анализа трафика:

Я решил открыть новый терминал для запуска Wireshark и анализа потоковой передачи данных в реальном времени с использованием режима обратной связи (loopback) и фильтра «gsmtap». В таком случае нужно запускать Wireshark от имени пользователя root, поэтому команда запуска будет выглядеть следующим образом:

$ sudo wireshark

-8

Как и ожидалось, отправителем и получателем является localhost (из-за режима loopback), и из моего ограниченного исследования типов пакетов я знаю, что System Information Type 4 является обозначением несущей, предоставляющей соответствующую информацию.

-9

Заключение

Как я и предполагал, этот проект оказался весьма полезным, и я чувствую, что многому научился в процессе. Очевидно, я едва прикоснулся к тому, на что способно Software Defined Radio и теперь я с нетерпением жду продолжения своих исследований в этой области. Далее я хотел бы разобрать те пакеты данных, которые удалось записать, узнать что они означают и как в целом работает вся «мобильная сеть». Я также хотел бы выполнить несколько пробных тестовых звонков с помощью своих личных телефонов (так, чтобы это было законно) и перехватить/декодировать свои личные SMS-сообщения «Hello World».