Featured Article

Учебник по RTL-SDR: Анализ GSM с помощью Airprobe/GR-GSM и Wireshark

Программно-определяемое радио RTL-SDR можно использовать для анализа сигналов GSM сотовых телефонов, с помощью инструментов на основе Linux GR-GSM (или Airprobe) и Wireshark. Этот учебник показывает, как настроить эти инструменты для использования с RTL-SDR.

Пример – Анализ GSM с RTL-SDR Software Defined Radio

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

Kali Linux with Airprobe and Wireshark and RTL-SDR Software Defined Radio Прежде всего вам нужно узнать, на каких частотах в вашем регионе присутствуют сигналы GSM. Для большей части мира основным диапазоном GSM является 900 МГц, в США он начинается с 850 МГц. Если у вас есть RTL-SDR E4000, вы также можете обнаружить сигналы GSM в диапазоне 1800 МГц для большей части мира и 1900 МГц для США. Откройте SDRSharp и просканируйте диапазон 900 МГц (или 850 МГц) на предмет сигнала, похожего на изображение водопада ниже. Это GSM-долинный сигнал без перемещения частоты (non-hopping). При использовании NFM он будет звучать примерно как приведённый ниже пример аудио. Запишите наиболее сильные частоты GSM, которые вы сможете найти. GSM Non Hopping Waterfall Image

Остальная часть руководства выполняется в Linux, и мы предполагаем, что у вас есть базовые навыки работы в Linux через терминал. В рамках этого руководства мы использовали Ubuntu 14.04 в среде VMware. Вы можете скачать готовые образы Ubuntu для VMware здесь, и бесплатный VMware Player здесь. Примечание: сообщается, что VirtualBox плохо работает с RTL-SDR, так как пропускная способность USB у него низкая, поэтому следует использовать VMware Player.

Установка GR-GSM

Этот учебник во многом основан на инструкциях из readme проекта gr-gsm на GitHub по адресу https://github.com/ptrkrysik/gr-gsm.

  1. Самый простой способ установить gr-gsm — использовать Pybombs. Pybombs автоматически установит gr-gsm и все необходимые зависимости, включая GNU Radio.
    $ sudo apt-get update $ sudo apt-get install git python-pip $ sudo pip install PyBOMBS $ sudo pybombs prefix init /usr/local -a default_prx $ sudo pybombs config default_prefix default_prx $ sudo pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git $ sudo pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git $ sudo pybombs install gr-gsm $ sudo ldconfig
  2. Подключите ваш RTL-SDR и подключите его к VM, если это необходимо. Запустите grgsm_livemon, набрав grgsm_livemon в терминале. Откроется новое окно.
  3. В новом окне настройте частоту GSM downlink, которую вы определили во время просмотра в SDR# и установите соответствующее значение усиления.
  4. Запустите Wireshark с помощью команды sudo wireshark -k -Y ‘!icmp && gsmtap’ -i lo, что автоматически запустит Wireshark в режиме loopback с активированным фильтром gsmtap. Возможна ошибка при открытии Wireshark, но её можно проигнорировать.
  5. Теперь вы должны увидеть, как данные GSM прокручиваются в Wireshark.

Старый метод с использованием Airprobe (Нажмите для развёртывания)

Дальнейшая работа с расшифровкой

Здесь мы не рассматриваем, как расшифровывать фактически зашифованные данные GSM, но это возможно сделать с сообщениями, отправляемыми на ваш собственный телефон, после того как вы извлечёте код шифрования для вашей SIM-карты.

Однако имейте в виду, что если вы захотите это сделать, вам понадобится серьёзное изучение и исследование того, как на самом деле работает GSM, прежде чем вы сможете подумать об этом. Заявление об ответственности: расшифровывать можно только сигналы, на которые у вас есть законное разрешение (например, от вашего собственного телефона) — чтобы не нарушать конфиденциальность.

Самый полный видеогид, вероятно, это YouTube-руководство от Crazy Danish Hacker, а наиболее полный веб-гайд — у Domonkos P. Tomcsanyi, доступный на его блоге здесь.

Один читатель сообщил нам информацию о получении TMSI и Kc-чисел, которая полезна, если вы хотите продолжить и фактически декодировать сообщения, поступающие с вашего собственного телефона. Он пишет:

По какой-то причине большинство публикаций в интернете, касающихся GSM-перехвата, приводят очень мало примеров того, как получить наши собственные TMSI и Kc-числа. Они опираются либо на инженерную панель BlackBerry, либо на использование считывателя SIM-карты (см., например http://domonkos.tomcsanyi.net/?p=369). Я знаю, что существуют и другие методы, например те, которые вы описали на www.rtl-sdr.com/rtl-sdr-cell-phone-imsi-tmsi-key-sniffer/.

Однако я редко видел что-либо, связанное с Android IMSI-Catcher Detector. Это приложение можно легко установить через стандартные репозитории и оно позволяет отправлять AT-команды к модему, если мы получим root-доступ к MS. Эта процедура работает на многих устройствах (я проверял её на Motorola Moto E).

Просто краткое напоминание о базовых AT-командах:

1. Извлечение IMSI -> AT+CRSM=176,28423,0,0,3.

2. Извлечение ключа шифрования Kc -> AT+CRSM=176,28448,0,0,9 (для SIM),
AT+CRSM=176,20256,0,0,9 (для USIM). Первые 16 записей.

3. Извлечение TMSI -> AT+CRSM=176,28542,0,0,11. Первые 8 записей.

Android IMSI-Catcher Detector предоставляет некоторые дополнительные интересные данные, такие как идентификатор клетки, к которой подключено устройство, LAI и т. д.

Мы отмечаем, что программное обеспечение вроде SimSpyII вместе с считывателем SIM-карт также можно использовать для лёгкого получения значения Kc.

Если вам понравилось это руководство, вам может понравиться наша книга, доступная на Amazon. Доступна в формате электронного и бумажного издания.

Источник:

Подбираете SDR под задачу?

Опишите, что и где хотите принимать, — подскажем подходящие модели и где их купить.

Похожие материалы

Весь блог