- PVSM.RU - https://www.pvsm.ru -

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2

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

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 1

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

Суть такова

SIMTrace и всё о них

Есть такие девайсы как SIMTrace и его более актуальный собрат SIMTrace2.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 2

Оба этих устройства являются проектами небезызвестного Osmocom и представляют собой аппаратные анализаторы протоколов смарт-карт (вообще, SIMTrace предназначается в первую очередь для SIM-карт, но никто не мешает использовать его для любой другой смарт-карты типа ISO7816 T=0, к числу которых принадлежат симки).

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 3

Вот так выглядит тестовый стенд в сборе: SIM-карта вставляется в плату, а телефон подключается гибким шлейфом.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 4

Также на базе SIMTrace было создано ещё несколько интересных устройств. Во-первых, это ngff-cardem, по сути тот же SIMTrace, но со встроенным модемом.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 5

И, во-вторых, это sysmoQMOD, довольно специфический проприетарный девайс от Sysmocom в виде отладочной платы для четырёх модемов. Он позволяет разрабатывать и отлаживать такие интересные штуки как SIM-банки, резервированные сотовые модемы, тестовые стенды для сетей мобильной связи и тому подобные устройства.

Где достать SIMTrace2?

Так получилось, что в начале февраля со мной связался товарищ Elian [1], который рассказал, что некогда экспериментировал с такими платами и готов предоставить мне пару штук на обзор. Разумеется, я согласился, и уже в начале марта два собранных устройства с комплектом кабелей были у меня, за что выражаю огромную благодарность.
Но где же вообще можно найти такое устройство?

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 6

Если вы живёте в Европе, то у вас есть возможность просто взять и заказать [2] его у Sysmocom. Это самый простой, хотя и не совсем дешёвый вариант.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 7

Есть эта штука и на Али, однако цена совершенно неадекватная.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 8

Если возможности заказать где-то устройство в сборе нет (или есть, но по невменяемой цене), то его можно собрать самому, благо схемы и прошивки есть в открытом доступе [3]. Плата всего двухслойная, в теории можно даже попробовать сделать её фоторезистом (там нет какой-то сложной в установке и очень критичной к размерам элементной базы типа чипов в корпусе BGA), но проще всего будет заказать её в любой фирме по изготовлению печатных плат. Остаётся только установить детали и прошить микроконтроллер.

Обзор оборудования

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

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 9

А вот и сама плата. На ней микроконтроллер, слот для симки и разъём для шлейфа, кнопки сброса и активации загрузчика, светодиоды индикации обмена данными, UART для отладки (распиновка совпадает с таковой для «осмофонов» Motorola) и miniUSB для подключения к компьютеру.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 10

С обратной стороны список разработчиков.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 11

Также понадобятся шлейфы для подключения к разъёму SIM-карты на телефоне. Если вы заказывали плату у Sysmocom, то они будут в комплекте, в противном случае придётся искать их на Али.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 12

Они бывают в двух исполнениях — прямые и угловые.

Неожиданные трудности

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 13

На другой стороне шлейфа располагается разъём, которым шлейф втыкается в плату. И вот с ним вышла неожиданная проблема: у китайцев удалось найти только шлейф с отзеркаленной распиновкой.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 14

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

Подключение

Само собой, для полноценной работы платы нужен и телефон, а также активная симка.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 15

Поэтому идём в кладовку и достаём несколько трубок.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 16

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

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 17

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

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 18

Обычно во всех инструкциях к телефонам пишут, что использовать какие-то переходники не допускается, но тут nanoSIM шлейф засел в miniSIM-адаптер как влитой. Чтобы шлейф не выскочил, для надёжности сверху положил сложенный несколько раз кусок термобумаги.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 19

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

Ставим софт

Теперь традиционно самое сложное: установить и настроить софт. Для этого нам понадобится любой дистрибутив Linux. Если у вас установлены более старые версии софта Osmocom, то лучше использовать «чистую» установку, дабы ничего не сломать. Использовать какие-то специальные дистрибутивы вроде DragonOS очень не рекомендую: установленные там библиотеки (в частности, libosmocore) будут конфликтовать с новыми. Если же ранее на выбранной машине никакого ПО от Osmocom не стояло, то установка будет простой как никогда.

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

Итак, для начала добавим репозиторий Osmocom:

sudo apt install extrepo
sudo extrepo enable osmocom-nightly
sudo apt update

Теперь очередь самого софта:

sudo apt install simtrace2-utils

После этого необходимое ПО вместе с его зависимостями будет установлено.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 20

Также его можно собрать из исходников, о чём рассказывается тут [4].

Запуск

Ну что же, время пробовать!
SIMTrace2 работает в двух режимах: анализатор протокола и эмулятор карты. Сейчас поговорим о первом из них, второй затронем в следующий раз в отдельной статье.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 21

Итак, собираем всё воедино. Шлейф втыкаем в телефон, симку — в плату, плату — в компьютер. На плате загорятся два светодиода, а система обнаружит новое устройство.
Теперь вводим команду:

sudo simtrace2-list

Если устройство собрано и прошито правильно, система найдёт его:

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 22

Отлично.

Слушаем пакеты

Ну что же, время пробовать!
Теперь очередь анализатора:

sudo simtrace2-sniff

Софт установит соединение с платой и будет ждать начала обмена данными.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 23

Пойманные пакеты отправляются в UDP-порт 4729, дабы их можно было регистрировать или использовать в стороннем ПО.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 24

Чтобы иметь возможность их просматривать в каком-то воспроизводимом формате, в отдельном окне консоли сразу включим запись:

sudo tcpdump -npi lo -w ~/simtrace.pcap udp port 4729

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

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 25

Теперь на телефоне нажимаем кнопку включения и смотрим, что будет.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 26

Светодиодики на плате замигают, а в окне консоли посыпятся перехваченные пакеты.

Анализ

Теперь немного о том, что же делать с полученным дампом.
Как и в большинстве других случаев, его можно исследовать при помощи Wireshark (вообще, он и дальше будет неразрывно связан со всем, что как-либо связано с анализом работы сетей).

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 27

Открываем наш файл. Как видно, пакетов здесь весьма много: даже если телефон просто лежит и не используется, он всё равно активно обменивается данными с симкой.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 28

Вот так происходит запрос данных вроде IMSI, зашитого в симку номера или параметров SMS-центра: командой на чтение соответствующего файла из ФС карты.

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 29

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

Изучаем работу SIM-карт с помощью Osmocom SIMTrace2 - 30

А вот такие пакеты отправляются, когда с телефона совершается звонок.

Где это всё используется?

Перво-наперво, всё это позволяет на примере реальной симки и реальной сети увидеть, как происходит процесс аутентификации. Если есть SDR, можно даже скопировать перехваченный ключ Kc и попробовать расшифровать собственный трафик, как это детально описывалось тут [5], причём в этом случае какое-либо взаимодействие с модемом телефона (вроде отправки AT-команд) не будет требоваться вообще.

Что же в итоге?

Как можно догадаться, SIMTrace2 — штука ещё более специфическая, чем оборудование для запуска базовой станции в лабораторных условиях.

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

Такие дела.


Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк [6] на баланс.

Автор: MaFrance351

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/420577

Ссылки в тексте:

[1] Elian: https://habr.com/ru/users/elian/

[2] заказать: https://shop.sysmocom.de/SIMtrace2-Hardware-Kit/simtrace2-kit

[3] в открытом доступе: https://gitea.osmocom.org/sim-card/simtrace/src/branch/master

[4] тут: https://osmocom.org/projects/simtrace2/wiki

[5] тут: https://habr.com/ru/companies/ruvds/articles/731342/

[6] кэшбэк: http://got.by/2om2y8

[7] Источник: https://habr.com/ru/companies/timeweb/articles/908162/?utm_source=habrahabr&utm_medium=rss&utm_campaign=908162