Прослушивание GSM с помощью HackRF

Прослушивание GSM с помощью HackRF

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

Не так давно я изучал возможности HackRF по анализу трафика GSM сетей, синхронизирующий сигнал устройства несколько плавает, но в любом случае результатом будет доступ к различным системным сообщениям. Далее я предполагаю, что у вас установлен linux с gnuradio, а также вы являетесь счастливым обладателем hackrf. Если нет, вы можете использовать live cd, информация о котором есть в разделе «Программное обеспечение» форума. Это отличный вариант, когда hackrf работает прямо «из коробки».

Сначала нам необходимо определить частоту местной GSM станции. Для этого я использовал gprx, который включен в состав live cd. После анализа частот в районе 900 МГц вы увидите что-то вроде этого:

Вы можете увидеть постоянные каналы на 952 МГц и на 944.2 МГц. В дальнейшем эти частоты будут отправными точками.

Теперь же с помощью следующих команд мы должны установить Airprobe.

git clone git://git.gnumonks.org/airprobe.git

git clone git://git.gnumonks.org/airprobe.git

cd airprobe/gsmdecode
./bootstrap
./configure
make

cd airprobe/gsm-receiver
./bootstrap
./configure
make

Установка завершена. Теперь мы можем принимать GSM сигнал. Запустим wireshark с помощью команды

sudo wireshark

В качестве приемного устройства выберите «lo», а в качестве фильтра выберите gsmtap, как показано на следующем рисунке:

Теперь вернитесь в терминал и введите

cd airprobe/gsm-receiver/src/python
./gsm_receive_rtl.py -s 2e6

Откроется всплывающее окно, и вам необходимо будет отключить автоматический сбор, а также перевести слайдер на максимум. Далее вводим GSM частоты, полученные ранее, в качестве средней частоты.

Также выбираем пиковое и среднее значения в секции опций трассировки, как показано далее:

Вы увидите, что только сигнал верной последовательности (синий график) местами выходит за пиковое значение (зеленый график), тем самым показывая, что это постоянный канал. Теперь нужно начать декодирование. В окне нажимаем на середину этого самого частотного скачка. Вы можете увидеть ошибки, но это нормально. Я начал получать данные таким способом:

Теперь вы можете заметить, что gsm-данные приходят в wireshark. Как я упоминал в начале статьи, синхронизирующий сигнал плавает, поэтому для поддержания заданной частоты вам необходимо продолжать кликать на схему. Тем не менее, программа работает довольно хорошо. Как бы смешно это не звучало, но, обернув ваш hack rf в полотенце (или что-то подобное), вы повысите термальную стабильность синхронизирующего сигнала и уменьшите разброс. Сам по себе этот способ наверняка не покажется вам очень полезным, но я думаю, как минимум, он показывает огромный потенциал HackRF.

Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!