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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В сборе всё выглядит так. Убедившись, что шлейф не перегибается и не продавливается, ставим аккумулятор и насаживаем крышку.
Теперь традиционно самое сложное: установить и настроить софт. Для этого нам понадобится любой дистрибутив 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
После этого необходимое ПО вместе с его зависимостями будет установлено.

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

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

Отлично.
Ну что же, время пробовать!
Теперь очередь анализатора:
sudo simtrace2-sniff
Софт установит соединение с платой и будет ждать начала обмена данными.

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

Чтобы иметь возможность их просматривать в каком-то воспроизводимом формате, в отдельном окне консоли сразу включим запись:
sudo tcpdump -npi lo -w ~/simtrace.pcap udp port 4729
После этого всё, что будет происходить между телефоном и симкой, окажется в дампе, который мы позже просмотрим.

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

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

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

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

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

А вот такие пакеты отправляются, когда с телефона совершается звонок.
Перво-наперво, всё это позволяет на примере реальной симки и реальной сети увидеть, как происходит процесс аутентификации. Если есть SDR, можно даже скопировать перехваченный ключ Kc и попробовать расшифровать собственный трафик, как это детально описывалось тут [5], причём в этом случае какое-либо взаимодействие с модемом телефона (вроде отправки AT-команд) не будет требоваться вообще.
Как можно догадаться, SIMTrace2 — штука ещё более специфическая, чем оборудование для запуска базовой станции в лабораторных условиях.
Разумеется, на этом её функции не заканчиваются: например, помимо простого сниффера она также может работать как эмулятор карты, что открывает целый простор для разных опытов. Но об этом поговорим уже в отдельной статье.
Такие дела.
Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите на баланс.
Автор: 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
Нажмите здесь для печати.