Хакерская SIM карта

Тема в разделе "Сотовая связь", создана пользователем Транклюкатор, 10 апр 2019.

Метки:
  1. Транклюкатор

    Транклюкатор Господин ПЖ

    [​IMG]

    В последнее время на Хабре и Гиктаймс появилось много статей (1, 2, 3, 4, 5, 6, 7) о SIM-карте, наделенной невиданными и неслыханными возможностями, что вызвало озабоченность и заинтересованность в различных кругах. Появилось множество скепсиса и споров, а затем различных теорий, порой потрясающих своей фантастичностью. Попробуем приоткрыть завесу тайны с технической стороны. Естественно, эти тесты не были бы возможны без данной SIM-карты, которую нам любезно предоставил MagisterLudi.

    Для тех, кто не хочет читать много букв, — резюмирую: принудительного шифрования нет, защиты от комплексов перехвата нет, подключения к второй по уровню сигнала БС нет, подмена номера есть, подмена голоса есть, биллинг есть, сокрытия IMSI нет, сокрытия местоположения нет.

    Начнем по порядку.
    первой статье. Вот как на самом деле выглядит HackerSIM:

    [​IMG]

    Тут мы решили не продолжать исследование — ведь в логотипе же и была главная фишка.

    [​IMG]

    Чья она?

    ICCID SIM-карты (напечатанный на ней) говорит нам следующее:

    [​IMG]

    Вставляем SIM-карту в телефон, и первое, что мы видим, — что мы находимся в роуминге, подключены к MTS, и третья строка, на которую невозможно не обратить внимание: AY Security — она сразу же говорит, чья это SIM на самом деле: www.aysecurity.co.uk/ru/aysim.html

    [​IMG]

    Занимательно, но в современном телефоне отображается совсем другая информация (остается загадкой, что значит «GT»):

    [​IMG]

    На сайте заявлены следующие «уникальные» фичи:

    • подмена номера звонящего,
    • принудительное шифрование,
    • защита от комплексов перехвата,
    • подмена голоса,
    • оптимизация расходов,
    • скрытие реального IMSI,
    • скрытие реального местоположения,
    • виртуальный номер.

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

    Принудительное шифрование

    «Данная функция запрещает Вашей SIM карте снижать уровень криптования и заставляет игнорировать команды, поступающие от операторов или комплексов перехвата на отключение алгоритма формирования ключей шифрования (А8), хранящегося в модуле SIM. Таким образом, все ваши разговоры шифруются по алгоритму А5.1.»
    На самом деле изначально вся передача ведется без использования шифрования, а включение шифрования осуществляется по команде от оператора Ciphering Mode Command. Вот пример из реальной сети (используется HackerSIM):

    [​IMG]

    Однако это точно так же работает на всех других SIM, поскольку шифрование обычно используется во всех российских сетях. Для проверки «запрета» работы без шифрования подключим к OpenBTS и попробуем позвонить:

    [​IMG]

    Сначала действительно складывается впечатление, что SIM-карта как-то прознала, что шифрования нет, и заблокировала звонок. (Но на деле все не так, об этом чуть ниже, а еще обратите внимание на окно «Calling…» внизу экрана.) Однако если попытаться позвонить несколько раз подряд (в нашем случае три раза), то вызов проходит:

    [​IMG]

    Входящие звонки проходят без проблем и разговор тоже без проблем происходит:

    [​IMG]

    [​IMG]

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

    Защита от комплексов перехвата

    Данная функция даёт абоненту возможность становиться невидимым для подвижных комплексов перехвата. Принцип действия комплекса перехвата основан на подмене собой реальной базовой станции, таким образом, становясь, по факту, приоритетной для всех телефонов в радиусе её действия. Телефон с нашим программным комплексом игнорирует базы с наивысшим уровнем сигнала.
    Вообще говоря, телефон выбирает не по уровню сигнала, а по параметру C2, который зависит от текущего уровня сигнала, от минимально допустимого сигнала для этой БС и от приоритета БС. Поэтому сама мысль, что это спасает от поддельной БС, — заблуждение. К примеру, OpenBTS, развернутая на SDR, имеет мощность порядка 100 мВт, что меньше, чем может сам телефон (до 1 Вт), и значительно меньше, чем стандартная базовая станция. Таким образом, перехват достигается не высоким уровнем мощности, а высоким приоритетом. И то, что телефон использует менее мощную БС, значит лишь то, что приоритет у нее выше.

    Для измерения мощности, параметров C1 и C2 мы использовали приложение Greenhead.

    Ну и немного скриншотов — список соседских и обслуживающих каналов (BCCH — arfcn, SC — serving cell, N1 — neigbour cell 1 и т. д.).

    1. HackerSIM на самой мощной и самой приоритетной БС

    [​IMG]

    2. HackerSIM на не самой мощной, но самой приоритетной БС

    [​IMG]

    3. Включаем «комплекс перехвата», и… HackerSIM спокойно к нему подключается, хотя, если быть точным, то это телефон подключается, так как выбором сот SIM-карта не управляет, и HackerSIM не исключение:

    [​IMG]

    4. Захватив телефон, поддельная сеть больше не сообщает о соседях, поэтому выбора у телефона нет, кроме как находиться в фейковой сети столько, сколько пожелает злоумышленник, либо пока не выйдет из зоны ее действия:

    [​IMG]

    Оптимизация расходов

    Этот пункт звучит весьма оригинально, с учетом стоимости как самой SIM-карты, так и ее обслуживания.

    Скрытие реального IMSI. Скрытие реального местоположения. Отсутствие биллинга. Виртуальный номер

    Заявляется об отсутствии биллинга, и именно поэтому якобы невозможно отследить данного абонента. Однако если нет биллинга, кто выдает вот эту информацию?

    [​IMG]

    Отслеживание местоположения осуществляется через сеть SS7 с помощью описанных нами атак [http://www.ptsecurity.ru/download/PT_SS7_security_2014_rus.pdf]. Для этого достаточно знать IMSI абонента. Обычно его узнают через номер телефона; нам неизвестен номер телефона нашей HackerSIM, и по инструкции с сайта он нам почему-то не показывается (тут должен быть еще DID, по которому можно нам позвонить):

    [​IMG]

    Мы не можем проверить «виртуальность» данного номера, потому что мы его не знаем. Но IMSI можно узнать из радиоэфира, например при подключении телефона к сети:

    [​IMG]

    [​IMG]

    Телефон отправляет Location Update Request, сеть запрашивает IMSI (Identity Request), телефон говорит свой IMSI (Identity Response), после чего вырабатываются сеансовые ключи (Authentication Request и Authentication Response), и только затем поступает команда на шифрование. Другими словами, IMSI можно перехватить в радиосети, даже не взламывая шифрования, но иначе быть и не может: так работает сотовая сеть.

    Остался еще один нерешенный момент, упомянутый на Хабре. При регистрации телефона в роуминговой сети делается запрос в домашнюю сеть, но затем все звонки должны проходить через гостевую сеть. Так каким же образом все исходящие звонки проходят через PBX? Ответ оригинален, но достаточно прост.

    Когда мы пытались звонить через Motorola C118, звонок сбрасывался, и никто в ответ не перезванивал. То же самое — при использовании утилиты mobile из пакета osmocom-bb:

    [​IMG]

    Кстати, SMS сбрасываются с еще более интересной причиной:

    [​IMG]

    Но вернемся к вопросу о том, почему в старой Motorola исходящий вызов не работает, а в современном телефоне он сбрасывается, а затем перезванивает PBX. Дамп радиоэфира раскрывает тайну:

    [​IMG]

    При исходящем звонке вместо сообщения установления вызова (Setup) телефон отправляет USSD с номером вызываемого абонента, который долгое время гуляет по миру, добираясь до домашних Нидерландов, потом приходит USSD-ответ с незамысловатой фразой Calling start, а затем уже идет входящий звонок с привычной последовательностью Setup, Call Confirmed, Assigned Command.

    [​IMG]

    Таким образом, для SIM-карты запрещены любые исходящие активности, кроме USSD, и запрещены они домашней сетью. А сам вызов перехватывается приложением на SIM-карте и подменяется на USSD с вызываемым номером, это уходит в домашнюю сеть, в это время приложение завершает вызов, выводит сообщение «Calling...» на экран и ждет ответа на USSD; так же она проверяет использование «шифрования» в сети. Если USSD неуспешно или не приходит ответ Calling start, она просто блокирует вызов (то, что мы видели в поддельной сети).

    Однако, видимо, производительность SIM-карты не позволяет перехватить все вызовы, и завалив ее вызовами, они начинают уходить напрямую.

    Мы пытались повторить такое в реальной сети, чтобы произвести звонок в обход PBX, но там все звонки «отбиваются» сетью, поскольку, как уже сказано выше, для HackerSIM запрещены все исходящие активности.

    Самые внимательные могли заметить на предыдущем скриншоте запрос Identity Request перед USSD-ответом. Это сообщение используется сетью для получения от телефона IMSI либо IMEI.

    [​IMG]

    [​IMG]

    Напомним, что IMEI — вообще необязательный идентификатор в сотовой сети и может не запрашиваться никогда. Так что кто-то собирает их и не случайно. Нет никакой анонимности при использовании HackerSIM: они знают — кто, куда, когда и где.

    Теперь, зная секрет исходящих вызовов, мы можем звонить и со старой Motorola, и с утилиты mobile пакета osmocom-bb.

    [​IMG]

    Multi IMSI/Ki

    Для пары смены IMSI/Ki необходимо использовать меню SIM-карты:

    [​IMG]

    Callback on/off — включает (выключает) приложение SIM-карты, подменяющие исходящие звонки на USSD.

    Menu — там ничего нет, кроме Exit.

    Reset sim profile — сбрасывает TMSI и Kc (сеансовый ключ).

    About —

    [​IMG]

    Select Location — выбор IMSI/Ki.

    [​IMG]

    Global — IMSI 22201xxxxxxxxxx, принадлежащий итальянскому оператору TIM.

    Global+ — IMSI 20404xxxxxxxxxx, принадлежащий голландскому оператору Vodafone Libertel.

    USA — IMSI 310630xxxxxxxxx, не принадлежит конкретному оператору, используется в различных Global SIM.

    Prime — IMSI 23418xxxxxxxxxx, принадлежащий британскому Cloud9/wire9 Tel.
    Все IMSI, кроме Global+, в России не регистрируются по одной из этих двух причин:

    [​IMG]

    [​IMG]

    В режиме Global+ тоже не все гладко.

    Список предпочтительных сетей (там, где точно будет работать):

    List of preferred PLMNs:

    MCC |MNC
    -------+-------
    234 |15 (Guernsey, Vodafone)
    262 |02 (Germany, Vodafone)
    208 |10 (France, SFR)
    222 |10 (Italy, Vodafone)
    214 |01 (Spain, Vodafone)
    505 |03 (Australia, Vodafone)
    228 |01 (Switzerland, Swisscom)
    206 |01 (Belgium, Proximus)
    404 |20 (India, Vodafone IN)
    404 |11 (India, Vodafone IN)
    404 |27 (India, Vodafone IN)
    404 |05 (India, Vodafone IN)
    404 |46 (India, 46)
    272 |01 (Ireland, Vodafone)
    202 |05 (Greece, Vodafone)
    232 |01 (Austria, A1)
    655 |01 (South Africa, Vodacom)
    286 |02 (Turkey, Vodafone)
    238 |01 (Denmark, TDC)
    268 |01 (Portugal, Vodafone)
    260 |01 (Poland, Plus)
    230 |03 (Czech Republic, Vodafone)
    250 |01 (Russian Federation, MTS)
    216 |70 (Hungary, Vodafone)
    226 |01 (Romania, Vodafone)
    244 |05 (Finland, Elisa)
    602 |02 (Egypt, Vodafone)
    219 |10 (Croatia, VIPnet)
    620 |02 (Ghana, Ghana Telecom Mobile / Vodafone)
    255 |01 (Ukraine, MTS)


    Запрещенных сетей нет, но при попытке зарегистрироваться в «Билайне» и «TELE2» прилетает отказ из домашней сети, «МегаФон» работает, «МТС» — предпочтителен (в SIM-карте)

    Вот что происходит при попытке подключиться в «Билайн»:

    [​IMG]

    Так что, если эта SIM и работает в любой стране мира, то точно не работает в любой сети мира.

    Выводы

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

    Никаких фантастических и хакерских свойств сама SIM-карта не имеет.

    Источник
     
    Izilda нравится это.
  2. Транклюкатор

    Транклюкатор Господин ПЖ

    «Зло не царит над миром безраздельно!» Гэндальф
    [​IMG]

    Пока кое-кто мешкал и сомневался реально ли все это, нескольким самым шустрым людям в Москве повезло поэксплоить уязвимость нулевого дня для функции подделки номера и результаты дали о себе знать. HackerSIM отключили функцию ручной подмены номера (подмена номера осталась, но номер выбирается рандомно).

    Нам прислали сценарий атаки, глянув на который, команда HackerSIM хором сказала «Да ну нафиг!».
    Побаловаться, конечно, прикольно, но основная задача HackerSIM — это цифровая неприкосновенность.
    Это единственное решение, которое на порядки затрудняет привязку «пользователь-местоположение» и «пользователь-списки контактов». А так же доставляет хлопоты кэтчерам и комплексам перехвата.

    «Вирусная» функция подмены номера наделала много шума (даже zyalt в своем блоге написал про это, но потом начитался комментариев и трухнул), но не она главная в HackerSIM.

    А для себя я выяснил, что есть два типа специалистов/экспертов по безопасности GSM:

    • У вас все неправильно и вы занимаетесь хренью, так быть не может, читайте мануалы
    • Вау! Дайте две. Хоть и звучит маловероятно, я хочу первым это попробовать и разобраться, как это работает.

    Факты налицо — hackerSIM`ом интересуются и спецслужбы, и белые хакеры, и черные хакеры.
    комменты «профессионала с опытом разработки с сфере мобильной связи»:
    Метаответ: если вы чего-то не знаете, это не значит, что этого не существует

    1.Статья озаглавлена «HackerSIM: подделка любого телефонного номера. CTF посоциальной инженерии». Никто не сможет своровать у вас номер или ваш идентификатор (IMSI). О безопасности мобильных сетей очень много написано и нет смысла это повторять. Главный постулат очень простой: пока СИМ у вас в кармане или в вашей трубке и в трубке нет никаких хакерских закладок, никто не сможет «своровать» номер. Следствие — никто не сможет за ваш счёт позвонить другому абоненту…

    Про звонить за чужой счет речь и не шла, а вот подмена номера звонящего не проблема на уровне оператора. Мы (и пентестеры-добровольцы, кто успел) сделали больше сотни звонков и получили «результат». А теперь на языке высших эльфов: MSC запрашивает MSISDN от HLR. И что вернет HLR, то он и использует в качестве номера для карточки.То есть если Вы управляете HLR, то Вы можете менять номер в любой момент. Те HLR с которыми я сталкивался имели команду Change MDN для заданного IMSI.

    Заменить номер возможно. Переложить затраты за звонки — нет.

    2.Как любая СИМ эта СИМ должна иметь как минимум виртуальную инфраструктуру со всеми вытекающими последствиями: роуминг, стоимость всех базовых услуг, наличие мобильного интернета и его стоимости. Я не говорю о том, что виртуальную инфраструктуру надо куда-то подключить, а все такие подключения жёстко регламентируются местными законами почти в любой стране. Если предположить, что найдётся такая страна, которая согласиться подключить такой виртуальный сервер к себе, это не значит, что Российский мобильный оператор согласится на роуминг со странной инфраструктурой.

    Виртуальный оператор может вообще ничего не иметь. То есть он всем пользуется чужим. Печатает свои карточки, свои тарифы и вперед. Другое дело, что и сделать никаких фокусов с карточкой он в этом случае не может. В нашем случае, имеется HLR, подключенный к какому-то оператору. Этот оператор предоставляет все роуминговые отношения. Насчет регламентации правда. Но так все легально. Виртуальные операторы разрешены. И их много. Никакой странной инфраструктуры нет. И если уже Вы смогли подключиться с этой карточкой в Москве, то значит с роумингом все в порядке, и согласие уже дали.

    3.Это всего-навсего сокрытие вашего номера телефона от оператора мобильной связи принимающего абонента. По поводу сокрытия номера принимающему абоненту — есть CLIR. По поводу скрытия IMSI и искажения голоса не будем говорить.

    См. пункт 1. Если мы управляем HLR и звонок приходит из за границы, то мы можем подставить любой номер и никакой CLIR вам не поможет.
    По поводу IMSI: на сим карте записаны множества профилей, каждый со своим IMSI. Искажения голоса: совсем не сложная задача для астерикса, и предназначена она для защиты от фонового мониторинга. Если за вас взялись целенаправленно, вас уже вряд ли что спасет.

    4. Выбор «соты».

    HackerSIM работает только с сотой уровень сигнала, которой является второй по своему значению. Данный алгоритм обеспечивает защиту от комплексов перехвата.

    Вот тут уж простите, сам телефон (трубка) занимается выбором сети и выбором конкретной «соты», с которой он собирается работать. СИМ никак не может повлиять на выбор «соты» внутри конкретного оператора, так как это прерогатива телефона и СИМ только может получить информацию об этом. Не верите? Учите матчасть и тут не забудьте.

    Можем показать на примере, вы осмелитесь?
    (На самом деле это тема для отдельной статьи, скоро будет, шоу продолжается)
    мини исследование
    Это не строгое доказательство (кстати, кто может предложить сценарий строгого доказательства, чтоб вопросы отпали насовсем?)
    Но проводили опыт несколько раз и результат всегда одинаковый — у HackerSIM всегда уровень сигнала ниже чем у обычной симки.

    [​IMG]
    Знакомьтесь, это волшебный телефон, который позволяет управлять подключениями к БС.
    Этот телефон был на конференции где выступала Меркель, и верещал как резанный, сообщая что мы все под колпаком фейковой станции.

    В нем одновременно 2 симки: обычная и HackerSIM.


    5.По поводу шифрования. В мобильной связи используется шифрование только до ближайшей базовой станции, а там всё в открытом виде. На принимающей стороне, соответственно, тоже может быть шифрование, только это уже зависит от принимающей сети. Шифрование end-to-end (между пользователями напрямую) возможно, но только через специальную трубку или правильнее сказать телефон со специальным внутренним софтом, который естественно не будет дешёвым. Поскольку мы всегда имеем связку «СИМ — инфраструктура», то алгоритм шифрования зависит от сети, в которой производится роуминг (или домашняя сеть) и набора алгоритмов, имеющихся в связке «СИМ — инфраструктура». А вот теперь самое главное: алгоритм А5/1 запрещён к использованию на столько, что все современные телефоны во время сертификации проверяются, что не поддерживают его. Это связано с тем, что его в своё время взломали, и сейчас его исходники можно найти в сети в качестве учебного материала. Не надо ничего и никого принуждать в мобильной связи, всё и так шифруется по возможности.

    Речь шла о понижении криптозащиты мобильными комплексами перехвата для облегчения их работы (чтобы не использовать обработчик A 5.1( 2,88 или 1,44 секунды).
    По поводу запрета алгоритма A5.1, мы промолчим.
     
    Izilda нравится это.